Matlab控制系统工具箱中包括一些有用的命令,它们使线性系统的一种数学模型转换成另外一种数学模型。这些线性系统变换对于求解控制工程模型十分有用。
(1)从传递函数到状态空间
命令
[A,B,C,D]=tf2ss(num,den)
可以把传递函数形式表示的系统
变换成状态空间形式
(2)从状态空间到传递函数
如果系统是单输入/单输出系统,则命令
[num,den]=ss2tf(A,B,C,D)
将给出传递函数Y(s)/U(s)。
如果系统是多输入/多输出系统,利用以下命令
[num,den]=ss2tf(A,B,C,D,iu)
将计算出状态空间表达式
对应的传递函数Y(s)/Ui(s)
下标“i”表示系统的第i个输入量。
例M-1 考虑两输入单输出系统的状态空间描述
试求传递函数Y(s)/U1(s)和Y(s)/U2(s)。
解 Matlab程序及运行结果如下
由Matlab输出,得到
(3)传递函数的部分分式展开
考虑下列传递函数
式中,a(1)≠0,但是a(i)和b(j)中某些量可能为零。
行向量num和den表示传递函数的分子和分母的系数,即
num=[b(1)b(2) b(n)]
den=[a(1)a(2)⋯a(n)](www.xing528.com)
命令
[r,p,k]=residue(num,den)
将求出两个多项式B(s)和A(s)之比的部分分式展开的留数、极点和直接项。B(s)/A(s)的部分分式由下式给出
例M-2 试求以下传递函数的部分分式表达式
解 此时对应的num和den分别为
num=[2 5 3 6]
den=[1 6 11 6]
相应的Matlab命令
[r,p,k]=residue(num,den)
运行结果如下
由此可得上述问题的解为
命令
[num,den]=residue(r,p,k)
将把部分分式展开式转换回多项式B(s)/A(s)之比。式中,r,p,k意义同前。
(4)从连续时间系统转换到离散时间系统
命令
[G,H]=c2d(A,B,Ts)
在零阶保持器作用于输入量的假设前提下,可以将状态空间模型从连续时间转换成离散时间。命令中Ts为采样周期(s)。这就是说,可以将
转换成
x(k+1)=Gx(k)+Hu(k)
例M-3 求下列连续状态空间模型
在采样周期Ts=0.05s时的离散状态空间模型。
解利用命令[G,H]=c2d(A,B,Ts),可以求得一个等效的离散时间模型,相应的Matlab程序和运行结果如下
由此可得等效离散时间状态空间模型为
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。