自动控制理论中常用MATLAB函数
第一部分 建立数学模型
在MATLAB中,线性定常(linear time invariant, 简称为 LTI)系统可以用4种数学模型描述,即传递函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型以及SIMULINK结构图。前三种数学模型是用数学表达式表示的,且均有连续和离散两种类型,通常把它们统称为LTI模型。
1.传递函数模型(TF 模型)
令单输入单输出线性定常连续和离散系统的传递函数分别为
(1-1)
和
(1-2)
在MATLAB中,连续系统和离散系统的传递函数都用分子/分母多项式系数构成的两个行向量num和den表示,即
,
系统的传递函数模型用MATLAB提供的函数tf( )建立。函数tf ( )不仅能用于建立系统传递函数模型,也能用于将系统的零极点增益模型和状态空间模型转换为传递函数模型。该函数的调用格式如下:
G=tf(num,den) 返回连续系统的传递函数模型。
G=tf(num,den,Ts) 返回连续系统的传递函数模型。
其中,Ts为采样周期,当Ts=-1或者Ts=[ ]时,系统的采样周期未定义。
Gtf=tf(G) 可将任意的LTI模型转换为传递函数模型。
例1-1 已知一个系统的传递函数为
建立传递函数模型。
在命令窗中运行下列命令
>>num=6;den=[1 6 11 6];G=tf (num, den)
返回
Transfer function:
6
----------------------
s^3 + 6 s^2 + 11 s + 6
2.零极点增益模型(ZPK模型)
系统的零极点增益模型是传递函数模型的一种特殊形式。令线性定常连续和离散系统的零极点形式的传递函数分别为
(1-3)
和
(1-4)
在MATLAB中,连续和离散系统的零点和极点都用行向量和表示,即
,。
系统的零极点增益模型用MATLAB提供的函数zpk ( )建立。函数zpk( )不仅能用来建立系统零极点增益模型,也能用于将系统的传递函数模型和状态空间模型转换为零极点增益模型。该函数的调用格式如下:
G=zpk(z,p,k) 返回连续系统的传递函数模型。
G=zpk(z,p,k,Ts) 返回离散系统的零极点增益模型。
Ts为采样周期,当Ts=-1或者Ts=[]时,系统的采样周期未定义。
Gzpk=zpk(G) 可将任意的LTI模型转换为零极点增益模型。
例1-2 已知系统的传递函数为
建立系统的零极点增益模型。
在命令窗中运行下列命令
>> z=[ ];p=[-1 -2 -3];k=6;G=zpk(z,p,k)
返回
Zero/pole/gain:
6
-----------------
(s+1) (s+2) (s+3)
注意:无零点时,设z为空。
3.状态空间模型(SS模型)
令多输入多输出线性定常连续和离散系统的状态空间表达式分别为
(1-5)
和
(1-6)
在MATLAB中,连续系统和离散系统的状态空间模型都用MATLAB提供的函数ss ( )建立。函数ss ( )不仅能用于建立系统的状态空间模型,也能用于将系统的传递函数模型和零极点增益模型转换为状态空间模型。该函数的调用格式如下:
G=ss(A,B,C,D) 返回连续系统的状态空间模型。
G=ss(A,B,C,D,Ts) 返回离散系统的状态空间模型。
Ts为采样周期,当Ts=-1或者Ts=[]时,系统的采样周期未定义。
Gss=ss(G) 可将任意的LTI模型转换为状态空间模型。
例1-3 已知系统的状态空间表达式为
建立系统的状态空间模型。
在命令窗中运行下列命令
>> A=[0 1 0;0 0 1;-6 -11 -6];B=[0;0;1];C=[6 0 0];