Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear
- R1=1e3;R2=1e3;R3=R2;R4=2.2e3;R5=R2;
- C1=1e-6;
- w=1000; % the frequency in rad/sec. for the input signal
- T=2*pi/w; Te=T/50; % sampling period
- sim('circuit1');
- % Experimental data vectors
- A_ss=[0.98,0.1401,0.1937,0.2262,0.4361,0.6843,0.8726,0.9535,0.9689,0.9802,0.9885];
- ty = [0.5655, 0.3954, 0.2827, 0.2262, 0.1131, 0.05655,0.02827, 0.1414, 0.01131, 0.008078, 0.00565];
- tu = [0.5828, 0.4079, 0.2919, 0.2337, 0.1173, 0.05894, 0.02962, 0.01486, 0.0119, 0.008507, 0.005959];
- final_t = tu-ty
- % vectorul cu pulsatiile
- wv=[100,143,200,250,500,1000,2000,4000,5000,7000,10000];
- Phase_deg_1 = final_t.*wv
- % reading data from simulink
- t=data.time; % simulation base
- u=data.signals(1,2).values; % input signal
- y=data.signals(1,1).values; % output signal
- plot(t,u,'r',t,y,'b');
- title(['Raspunsul circuitului la semnal u(t)=sin(',num2str(w),'t)'])
- legend('intrare','iesire');
- xlabel('Timp (sec.)')
- shg;grid
- %% NYQUIST
- %% comparatie cu diagrama obtinuta in Matlab
- %H=tf([0, R4*R2],[R1*R2*R3*C1,R1*R3]);
- %H=tf([-R4*C1 0],[C1*R2 1]); %Apropriat
- %H=tf(-R2/R1,[C1*R2 1]);
- %H=tf([C1*R2 0], [C1*R2 1]);
- %H=R4/R1*tf([R2*C1 2], [R2*C1 1])
- H=-1e-3*tf([1 0], [1e-3 1])
- nyquist(H); hold
- % click dreapta pe spatiu alb si debifati "Negative frequencies"
- %Phi_ss=[182.0745, 167.4428,166.0432,160.7290,146.5053,129.1447,111.5191,104.6908,99.5706,97.5792,87.6167];
- %Phi_ss_rad=deg2rad(Phi_ss);
- Phi_ss_rad = Phase_deg_1;
- [re_m,im_m]=pol2cart(Phi_ss_rad,A_ss);
- plot(re_m,im_m,'*r');hold;shg
- legend('diagrama bazata pe model','diagrama bazata pe masuratori')
- % Figura
- %% BODE
- close all
- H=tf(-R2/R1,[C1*R2 1]);
- A_ss=[1,0.97,0.96,0.95,0.88,0.69,0.44,0.22,0.18,0.13,0.12];
- Phi_ss=[182.0745, 167.4428,166.0432,160.7290,146.5053,129.1447,111.5191,104.6908,99.5706,97.5792,87.6167];
- % se transforma modulul in decibeli
- A_ss_dB=20*log10(A_ss);
- % faza ramane in grade
- % vectorul cu pulsatiile
- wv=[100,143,200,250,500,1000,2000,4000,5000,7000,10000];
- % vor fi 2 caracteristici separate
- subplot(211);title('Caracteristca de modul')
- semilogx(wv,A_ss_dB,'r*-');grid;hold
- subplot(212);title('Caracteristca de faza')
- semilogx(wv,Phi_ss,'r*-');grid;shg
- % comparatie cu caracteristica ideala
- hold
- wv_i=logspace(1,5,100);% generare pulsatii in scara logaritmica
- [modul_i,faza_i]=bode(H,wv_i);
- modul_i=squeeze(modul_i);faza_i=squeeze(faza_i);
- subplot(211);semilogx(wv_i,20*log10(modul_i));
- legend('masurata','simulata');
- subplot(212);semilogx(wv_i,faza_i);
- legend('masurata','simulata');
- hold
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement