首先普及一下LTI各類對象之間可以進行相互轉換,下面列出這些轉換函數的調用格式。
1) sys=tf(sys) %将sys對象轉換為TF模型
2) sys=zpk(sys) %轉換為ZPK模型
3)sys=ss(sys) %轉換為SS模型
4)sys=frd(sys,frequency) %轉換為FRD模型
步入正題。
第一種方法設系統的矩陣分别為A=[2,0,0;0,4,1;0,0,4];B=[1,0,1]';C=[1,1,0];D=0求取該系統的TF模型,如下圖
例1
實現程序如下:
A=[2,0,0;0,4,1;0,0,4];B=[1,0,1]';C=[1,1,0];D=0;
[num,den]=ss2tf(A,B,C,D);
G=tf(num,den)
結果如下圖:
結果
第二種方法依舊借用例1,實現的程序如下:
A=[2,0,0;0,4,1;0,0,4];B=[1,0,1]';C=[1,1,0];D=0;
gss=ss(A,B,C,D);
gtf=tf(gss);
結果同方法一結果一樣。
第三種方法最後一種方法利用自控原理線性系統的傳遞函數公式求取,公式為:C*inv(SI-A)*B
此方法可以用來驗證上述兩種方法求取的傳遞函數正确性,對比此方法與上述兩種方法有什麼區别。
實現程序如下:
syms s GG gg;
A=[2,0,0;0,4,1;0,0,4];B=[1,0,1]';C=[1,1,0];D=0;
G=C*inv(s*eye(3)-A)*B
gg=simplify(GG);
結果如下圖;
結果
經過通分之後,可以發現此結果與前兩種方法一樣。
經過上面的分析,上面三種方法根據各自喜好選擇,各有各的優點。
另外再補充幾個LTI各對象之間的轉換調用格式
[z,p,k]=tf2zp(num,den) %将TF對象的屬性轉換為ZPK對象的屬性
[A,B,C,D]=tf2ss(num,den) %将TF對象的屬性轉換為SS對象屬性
[num,den]=zp2tf(z,p,k) %将ZPK對象的屬性轉換為TF對象的屬性
[A,B,C,D]=zp2ss(z,p,k) %将ZPK對象的屬性轉換為SS對象的屬性
[z,p,k]=ss2zp(A,B,C,D,iu) %将SS對象的屬性轉換為ZPK對象的屬性
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!