Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.46 KB | None | 0 0
  1. clear
  2. R1=1e3;R2=1e3;R3=R2;R4=2.2e3;R5=R2;
  3. C1=1e-6;
  4. w=1000; % the frequency in rad/sec. for the input signal
  5. T=2*pi/w; Te=T/50; % sampling period
  6. sim('circuit1');
  7. % Experimental data vectors
  8. A_ss=[0.98,0.1401,0.1937,0.2262,0.4361,0.6843,0.8726,0.9535,0.9689,0.9802,0.9885];
  9. ty = [0.5655, 0.3954, 0.2827, 0.2262, 0.1131, 0.05655,0.02827, 0.1414, 0.01131, 0.008078, 0.00565];
  10. tu = [0.5828, 0.4079, 0.2919, 0.2337, 0.1173, 0.05894, 0.02962, 0.01486, 0.0119, 0.008507, 0.005959];
  11. final_t = tu-ty
  12. % vectorul cu pulsatiile
  13. wv=[100,143,200,250,500,1000,2000,4000,5000,7000,10000];
  14. Phase_deg_1 = final_t.*wv
  15. % reading data from simulink
  16. t=data.time; % simulation base
  17. u=data.signals(1,2).values; % input signal
  18. y=data.signals(1,1).values; % output signal
  19. plot(t,u,'r',t,y,'b');
  20. title(['Raspunsul circuitului la semnal u(t)=sin(',num2str(w),'t)'])
  21. legend('intrare','iesire');
  22. xlabel('Timp (sec.)')
  23. shg;grid
  24. %% NYQUIST
  25. %% comparatie cu diagrama obtinuta in Matlab
  26. %H=tf([0, R4*R2],[R1*R2*R3*C1,R1*R3]);
  27. %H=tf([-R4*C1 0],[C1*R2 1]); %Apropriat
  28. %H=tf(-R2/R1,[C1*R2 1]);
  29. %H=tf([C1*R2 0], [C1*R2 1]);
  30. %H=R4/R1*tf([R2*C1 2], [R2*C1 1])
  31. H=-1e-3*tf([1 0], [1e-3 1])
  32. nyquist(H); hold
  33. % click dreapta pe spatiu alb si debifati "Negative frequencies"
  34. %Phi_ss=[182.0745, 167.4428,166.0432,160.7290,146.5053,129.1447,111.5191,104.6908,99.5706,97.5792,87.6167];
  35. %Phi_ss_rad=deg2rad(Phi_ss);
  36. Phi_ss_rad = Phase_deg_1;
  37. [re_m,im_m]=pol2cart(Phi_ss_rad,A_ss);
  38. plot(re_m,im_m,'*r');hold;shg
  39. legend('diagrama bazata pe model','diagrama bazata pe masuratori')
  40. % Figura
  41.  
  42. %% BODE
  43. close all
  44. H=tf(-R2/R1,[C1*R2 1]);
  45. A_ss=[1,0.97,0.96,0.95,0.88,0.69,0.44,0.22,0.18,0.13,0.12];
  46. Phi_ss=[182.0745, 167.4428,166.0432,160.7290,146.5053,129.1447,111.5191,104.6908,99.5706,97.5792,87.6167];
  47. % se transforma modulul in decibeli
  48. A_ss_dB=20*log10(A_ss);
  49. % faza ramane in grade
  50. % vectorul cu pulsatiile
  51. wv=[100,143,200,250,500,1000,2000,4000,5000,7000,10000];
  52. % vor fi 2 caracteristici separate
  53. subplot(211);title('Caracteristca de modul')
  54. semilogx(wv,A_ss_dB,'r*-');grid;hold
  55. subplot(212);title('Caracteristca de faza')
  56. semilogx(wv,Phi_ss,'r*-');grid;shg
  57. % comparatie cu caracteristica ideala
  58. hold
  59. wv_i=logspace(1,5,100);% generare pulsatii in scara logaritmica
  60. [modul_i,faza_i]=bode(H,wv_i);
  61. modul_i=squeeze(modul_i);faza_i=squeeze(faza_i);
  62. subplot(211);semilogx(wv_i,20*log10(modul_i));
  63. legend('masurata','simulata');
  64. subplot(212);semilogx(wv_i,faza_i);
  65. legend('masurata','simulata');
  66. hold
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement