1.传递函数
(1)一般形式
此时传递函数为:
其中,分子系数向量 ,分母系数向量 。在此,用 , 分别表示分子,分母参数向量。可简记为 形式。
(2)零极点型
此时传递函数为:
其中,系统零点向量 ,系统极点向量 。可简记为 形式。
(3)部分分式型
此时传递函数为:
其中,极点留数向量 ,系统极点向量 ,余式系数向量 。 ,且 时,原函数中分子阶次大于分母阶次,余式系统向量存在;当 时,该向量不存在。可简记为 形式。
2.状态空间表达式
表达式如下:
其中,A为系统系数矩阵,B为控制输入矩阵,C为系统输出矩阵,D为控制传输矩阵。可简记为 形式。
Matlab代码部分
可能需要用到的命令
1、模型之间的互换
[num,den]=ss2tf(A,B,C,D)
[A,B,C,D]=tf2ss(num,den)
一般型与状态空间表达式之间互化
[num,den]=zp2tf(z,p,k)
[z,p,k]=tf2ap(num,den)
一般型与零极点型之间互化
[num.den]=residue(R,P,H)
[R,P,H]=residue(num,den)
一般型型与部分分式型之间互化(在这里主要是利用residue函数求取极点的留数)
[z,p,k]=ss2tf(A,B,C,D)
[A,B,C,D]=tf2ss(z,p,k)
零极点型与状态空间表达式之间互化
2、关键参数提取
G=tf(num,den)
// G=tf(num,den,'inputdelay',tau) %增加参数为tao的延迟环节
G=zpk(Z,P,K)
G=ss(A,B,C,D)
以上几个命令可以通过关键参数,得到统一的系统模型,然后用于以下命令,快速得到其他参数向量。
[num,den]=tfdata(G)
[A,B,C,D]=ssdata(G)
[Z,P,K]=zpkdata(G)
Example 1
已知有一系统传递函数 ,求该传递函数一般形式,部分分式型和状态空间表达式。
clear all
%% 建立系统模型
Z=[];
P=[-1 -2 0];
K=10;
G=zpk(Z,P,K); %获得传递函数G
%% 求一般形式关键参数num和den
[num,den]=tfdata(G);
num=cell2mat(num);
den=cell2mat(den); %tfdata指令
得到的数据类型为cell,需要用
cell2mat转化为基础数据类型的普通数组
%% 求部分分式型关键参数R,P,H
[R,P,H]=residue(num,den);
%% 求状态空间表达式关键参数A,B,C,D
[A,B,C,D]=tf2ss(num,den);
%[A,B,C,D]=ssdata(G);
关于上述代码存在一个问题还没搞清楚,即tf2ss命令和ssdata命令所得到的状态空间模型四个矩阵不一致,水平有限,看不懂英文注释,在此选用tf2ss指令。
评论(0)
您还未登录,请登录后发表或查看评论