時域分析

zylyehuo發表於2023-10-28

部落格地址:https://www.cnblogs.com/zylyehuo/

1、【MATLAB繪圖】繪製對應曲線圖,在legend圖注處標明對應曲線的w_n、zeta取值;高階零極點的數值;

繪製4張欠阻尼二階系統不同係數變化下的對比圖,觀察四種變化造成的單位階躍響應的變化

繪製高階系統對比圖,觀察零極點變化下的單位階躍響應的區別

  • !

2、【文字描述】對比分析各曲線圖中引數、零極點配置等變化時,對系統的影響;

4張欠阻尼二階系統不同係數變化下的對比圖

  • w_n越大,t_p越小,t_s越小,超調量越小
  • zeta越小,t_p越大,t_s越大,超調量越大

高階系統對比圖

  • 閉環零點:減少峰值時間,減緩系統響應速度,增大超調量,等價於減小系統阻尼;
  • 如果系統存在極點位於右半平面或存在多個極點位於虛軸上,那麼系統就是不穩定的;
  • 零點可以起到穩定化系統的作用,當零點和極點相互抵消時,可以使系統更加穩定;
  • 極點會對系統的響應速度、穩態誤差以及超調量等產生影響。

3. 【MATLAB程式碼】附全部程式碼。

demo01.m

clc;
clear;
close all;
w_n=3; 
w_n0=3;
w_n1=5;
w_n2=3;
w_n3=5;
t_final=50;
zeta=0.5;G_2order = tf([w_n^2],[10 2*zeta*w_n w_n^2]);
zeta=0.707;G_2order0 = tf([w_n0^2],[10 2*zeta*w_n0 w_n0^2]);
zeta=0.3;G_2order1 = tf([w_n1^2],[10 2*zeta*w_n1 w_n1^2]);
zeta=0.3;G_2order2 = tf([w_n2^2],[10 2*zeta*w_n2 w_n2^2]);
zeta=0.5;G_2order3 = tf([w_n3^2],[10 2*zeta*w_n3 w_n3^2]);

figure;
subplot(2,2,1);step(G_2order,G_2order0,t_final);grid on;hold on;legend('欠阻尼-原圖','欠阻尼-對比圖1 w_n=3; zeta=0.707');
subplot(2,2,3);step(G_2order,G_2order1,t_final);grid on;hold on;legend('欠阻尼-原圖','欠阻尼-對比圖2 w_n=5; zeta=0.3');
subplot(2,2,2);step(G_2order,G_2order2,t_final);grid on;hold on;legend('欠阻尼-原圖','欠阻尼-對比圖3 w_n=3; zeta=0.3');
subplot(2,2,4);step(G_2order,G_2order3,t_final);grid on;hold on;legend('欠阻尼-原圖','欠阻尼-對比圖4 w_n=5; zeta=0.5');

demo02.m

clc;
clear;
close all;

w_n=4;
t_final=30;
zeta=0.2;

num1 = [1.05];
den1 = [1,1,1];
sys1 = tf(num1,den1);

num2 = [1];
den2 = [0.5,1];
sys2 = tf(num2,den2);

num3 = [1];
den3 = [0.125,1];
sys3 = tf(num3,den3);

sys4 = series(sys1,sys2);

num5 = [0.4762,1];
den5 = [1];
sys5 = tf(num5,den5);

num6 = [1,1];
den6 = [1];
sys6 = tf(num6,den6);

[num4,den4] = series(num1,den1,num2,den2);
[num,den] = series(num3,den3,num4,den4);

num8 = [1];
den8 = [0.25,1];
sys10 = tf(num8,den8);
sys11 = series(sys4,sys5);

sys7 = series(sys3,sys4);
sys8 = series(sys5,sys7);
sys9 = series(sys6,sys7);
sys12 = series(sys10,sys11);

% 無閉環零點
ps=roots(num);
zs=roots(den);
subplot(132);
plot(real(zs),imag(zs),'x',real(ps),imag(ps),'o','markersize',8);
axis([-8,4,-1,1]);
grid;%繪製網格線
hold on;
legend('極點','零點');
subplot(133);
pzmap(den,num);
axis([-8,4,-1,1]);
hold on;

% 遠離虛軸的閉環零點
[num8, den8] = tfdata(sys8, 'v');
ps=roots(num8);
zs=roots(den8);
subplot(132);
plot(real(zs),imag(zs),'x',real(ps),imag(ps),'o','markersize',8);
axis([-8,4,-1,1]);
grid;%繪製網格線
hold on;
legend('極點','零點');
subplot(133);
pzmap(den8,num8);
axis([-8,4,-1,1]);
hold on;

% 靠近虛軸的閉環零點
[num9, den9] = tfdata(sys9, 'v');
ps=roots(num9);
zs=roots(den9);
subplot(132);
plot(real(zs),imag(zs),'x',real(ps),imag(ps),'o','markersize',8);
axis([-8,4,-1,1]);
grid;%繪製網格線
hold on;
legend('極點','零點');
subplot(133);
pzmap(den9,num9);
axis([-8,4,-1,1]);
hold on;

% 非主導閉環極點
[num12, den12] = tfdata(sys12, 'v');
ps=roots(num12);
zs=roots(den12);
subplot(132);
plot(real(zs),imag(zs),'x',real(ps),imag(ps),'o','markersize',8);
axis([-8,4,-1,1]);
grid;%繪製網格線
hold on;
legend('極點','零點');
subplot(133);
pzmap(den12,num12);
axis([-8,4,-1,1]);
hold on;

% 非主導閉環極點
[num11, den11] = tfdata(sys11, 'v');
ps=roots(num11);
zs=roots(den11);
subplot(132);
plot(real(zs),imag(zs),'x',real(ps),imag(ps),'o','markersize',8);
axis([-8,4,-1,1]);
grid;%繪製網格線
hold on;
legend('極點','零點');
subplot(133);
pzmap(den11,num11);
axis([-8,4,-1,1]);
hold on;

% 零極點對消
ps=roots(num1);
zs=roots(den1);
subplot(132);
plot(real(zs),imag(zs),'x',real(ps),imag(ps),'o','markersize',8);
axis([-8,4,-1,1]);
grid;%繪製網格線
hold on;
legend('極點','零點');
subplot(133);
pzmap(den1,num1);
axis([-8,4,-1,1]);
hold on;

G_2order0 = sys7;%無閉環零點
G_2order1 = sys8;%遠離虛軸的閉環零點
G_2order2 = sys9;%靠近虛軸的閉環零點
G_2order3 = sys12;%非主導閉環極點
G_2order4 = sys11;%非主導閉環極點
G_2order5 = sys1;%零極點對消

subplot(1,3,1);step(G_2order0,G_2order1,G_2order2,G_2order3,G_2order4,G_2order5,t_final);grid on;hold on;legend('無閉環零點','遠離虛軸的閉環零點','靠近虛軸的閉環零點','非主導閉環極點','非主導閉環極點','零極點對消');

相關文章