Advertisement
OtavioMonteiro

LabControleExp1

Aug 25th, 2020
568
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.86 KB | None | 0 0
  1. % Preâmbulo
  2. clc;
  3. clf;
  4. clear;
  5. format long;
  6.  
  7. % Lendo dados do primeiro ensaio
  8. load('KKt_data.mat');
  9.  
  10. % Separando a região sem saturação
  11. [length width] = size(Vm);
  12. Vmb = Vm(4:length-4);
  13. Vtb = Vt(4:length-4);
  14.  
  15. % Gráfico Vm x Vt completo
  16. figure(1);
  17. plot(Vm,Vt,'- .r');
  18. hold;
  19. grid on;
  20. xlabel('V_{m}');
  21. ylabel('V_{t}');
  22. title('Curva V_{m} x V_{t}');
  23. hold;
  24.  
  25. % Gráfico Vm x Vt sem saturação
  26. figure(2);
  27. plot(Vmb,Vtb,'- .b');
  28. hold;
  29. grid on;
  30. xlabel('V_{m}');
  31. ylabel('V_{t}');
  32. title('Curva V_{m} x V_{t} sem saturação');
  33. hold;
  34.  
  35. % Resolve o sistema Vmb * KKt = Vtb
  36. % Nesse processo, é feito um ajuste linear e KKt é o coef. angular da reta
  37. KKt = Vmb\Vtb
  38.  
  39. % Gráfico da curva comparada com o ajuste linear
  40. figure(3);
  41. plot(Vm,Vt,'- .k', Vm, KKt*Vm,'-g');
  42. hold;
  43. grid on;
  44. xlabel('V_{m}');
  45. ylabel('V_{t}');
  46. title('Ajuste linear para determinar KK_{t}');
  47. legend('Curve experimental','Curva ajustada');
  48.  
  49. % Calcula-se omega_m com base nas medições feitas pelo display
  50. ohmega_p = DisplayRPM*(2*pi/60);
  51. n = 1/3;
  52. ohmega_m = ohmega_p/n.^2;
  53.  
  54. % Determina-se o valor de Kt com um ajuste linear da curva omega_m x Vt
  55. Kt = ohmega_m\Vt
  56.  
  57. % Gráfico comparativo dos dados com o ajuste
  58. figure(4);
  59. plot(ohmega_m,Vt, '- .g',ohmega_m, ohmega_m*Kt,'-b');
  60. hold;
  61. grid on;
  62. xlabel('Omega_{m}');
  63. ylabel('V_{t}');
  64. title('Ajuste linear para determinar K_{t}');
  65. legend('Curva experimental', 'Curva teorica');
  66.  
  67. % Lendo dados do segundo ensaio
  68. load('Kp_data.mat');
  69.  
  70. % Gráfico da forma de onda do sinal Vt para determinar Kp
  71. figure(5);
  72. plot(t,Vp,'- .r');
  73. hold;
  74. xlabel('t');
  75. ylabel('V_{p}');
  76. grid on;
  77. legend('Curva experimental');
  78. title('Sinal V_{p}');
  79.  
  80. % Escolhendo pontos extremos de uma parte linear da onda dente de serra
  81. Vmin = -4.850463867187500;
  82. Vmax = 4.897155761718750;
  83. ta = 14.780000000000001;
  84. tb = 15.910000000000000;
  85.  
  86. % Aplicando as equações do Anexo B para determinação de Kp
  87. phi_p = tb - ta;
  88. ta_plus_deltaT = 15.950000000000001;
  89. deltaT = ta_plus_deltaT - ta;
  90. delta_phi = 2*pi*(tb - ta)/(deltaT);
  91. Kp = (Vmax - Vmin)/delta_phi
  92.  
  93. % Lendo dados do terceiro ensaio
  94. load('T_data.mat');
  95.  
  96. % Montando gráfico da resposta do sistema ao degrau
  97. figure(6);
  98. Vtb = Vt(800:1001); % Selecionando parte de Vt sem o transitório
  99. Vtinf = mean(Vtb); % Média de Vt sem transitório
  100. Vminf = 2.5; % Tensão do degrau
  101. Vtinf_ref = Vtinf*ones(1,1001); % Criando degrau com o valor de Vtinf
  102. Tr = 1.2800000000; % Instante em que Vt vale 0,63 * Vtint
  103. T = Tr - 1 % Considerando que o degrau ocorre em t = 1
  104. Tref= Tr*ones(1,1001);
  105. % Plotando o gráfico
  106. plot(t,Vt,'- .r',t,Vm,'- .b',t,Vtinf_ref,'--g',t,(1-exp(-1))*Vtinf_ref,'--k',Tref,Vt,'--m');
  107. hold;
  108. grid on;
  109. xlabel('t');
  110. ylabel('V');
  111. legend('V_{t}','V_{m}','V_{t}(inf)','63%V_{t}(inf)','T');
  112. title('Resposta do sistema ao degrau');
  113.  
  114. % Calculando, finalmente, o valor de K
  115. K = Vtinf/(Kt*Vminf)
  116.  
  117. % Fim
  118. clear;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement