matlab中如何计算转置矩阵值(MATLAB中系数矩阵转换为传递函数三种方法)

首先普及一下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模型,如下图

matlab中如何计算转置矩阵值(MATLAB中系数矩阵转换为传递函数三种方法)(1)

例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)

结果如下图:

matlab中如何计算转置矩阵值(MATLAB中系数矩阵转换为传递函数三种方法)(2)

结果

第二种方法

依旧借用例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);

结果如下图;

matlab中如何计算转置矩阵值(MATLAB中系数矩阵转换为传递函数三种方法)(3)

结果

经过通分之后,可以发现此结果与前两种方法一样。

经过上面的分析,上面三种方法根据各自喜好选择,各有各的优点。

另外再补充几个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对象的属性

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页