1.连续系统
(1)使用系数矩阵获得传递函数
[num,den]=ss2tf(A,B,C,D);
(2)将传递函数写成因式分解(零极点)形式
[z,p,k]=ss2zp(A,B,C,D)
或者
[z,p,k]=tf2zp(num,den)
(3)将给定形式的状态空间方程变换成模态标准型
sysG=ss(A,B,C,D);
[sysGm,TI]=canon(sysG,'modal');
[Am,Bm,Cm,Dm]=ssdata(sysGm);//系统极点为Am对角线上的元素,部分分式展开式的分子项出现在Cm矩阵中
(4)计算极点
p=eig(A);
2.离散系统
(1)离散化
DL1=c2d(L1,Ts,'zoh');
Attention:这时候直接在命令行中把DL1输出来得到的系数矩阵仅显示4位小数,如果直接将这个数值输入到Simulink的离散状态空间模型中是不行的,这样会丢失一部分精度,导致离散状态空间模型的输出和直接将连续状态空间模型离散化得到的输出不同。因此要使用下一行命令得到离散化后的系数矩阵的变量名,直接调用。
或者将参数直接从Workspace中打开,在Variables选项卡中点击到那个参数,获得最大的16位有效数字。
或者在Command Window中 使用format更改显示精度
(2)获取离散化后的系数矩阵
[dA1,dB1,dC1,dD1,TS]=ssdata(DL1);