2.5 系统的离散化和连续化
利用MATLAB控制系统工具箱中提供的函数可将连续系统的模型离散化,也可将离散系统的模型连续化,而且可将系统离散化后的模型按另一采样周期重新离散化。相关函数如表2-4所示。
表2-4 系统的连续化和离散化函数
1.连续系统的离散化
已知连续系统的状态空间表达式
在采样周期T下离散化后的状态空间表达式可表示为
其中,G =eAT,。
在MATLAB中,若已知连续系统的状态模型∑(A,B)和采样周期T,便可利用函数
[G,H] =c2d(A,B,T)
方便地求得系统离散化后的系数矩阵G和H。
对具有输入纯延时τ的连续时间状态系统
在采样周期T下,离散后的状态空间表达式也可表示为
相应地,MATLAB的转换函数c2dt()的调用格式为
[G,H,Cd,Dd] =c2dt(A,B,C,D,T,tau)
其中,A,B,C,D为连续系统的系数矩阵;T为采样周期;tau为输入纯延时τ;返回值G,H,Cd,Dd为离散化后的系数矩阵。
MATLAB控制系统工具箱中还给出了功能更强的求取连续系统离散化矩阵的函数c2dm(),其调用格式为
[G,H,C,D] =c2dm(A,B,C,D,T,′选项′)
或 [numd,dend] =c2dm(num,den,T,′选项′)
式中,选项如表2-5所示;num,den为连续系统传递函数的分子分母系数;numd,dend为离散化后脉冲传递函数的分子分母系数;其余参数定义同前。可见此函数既可用于状态空间形式又可用于传递函数。
表2-5 离散化变换方式选项
【例2-22】 对连续系统
在采样周期T=0.1时进行离散化。
解 利用以下MATLAB命令,可对系统按4种方法进行离散化。
>>K=6;Z=[ -3];P=[ -1;-2;-5];T=0.1;[A,B,C,D] =zp2ss(Z,P,K) >>[G1,H1] =c2d(A,B,T),[G2,H2,C2,D2] =c2dm(A,B,C,D,T,′zoh′) >>[G3,H3,C3,D3] =c2dm(A,B,C,D,T,′foh′), >>[G4,H4,C4,D4] =c2dm(A,B,C,D,T,′tustin′)
【例2-23】 已知系统如图2-11所示。利用MATLAB求系统在 T=1s时的开环脉冲传递函数G(z)。
解 MATLAB命令及其执行结果如下
图2-11 单位反馈系统结构图
2.离散函数的连续化
在MATLAB中也提供了从离散化系统转换为连续系统各系数矩阵求取的功能函数,其调用格式分别如下
[A,B] =d2c(G,H,T)
或
[A,B,C,D] =d2cm(G,H,C,D,T,′选项′)
其中选项见表2-5。
3.离散时间系统重采样
在MATLAB中也提供了将系统离散化后模型按另一采样周期重新离散化的功能函数,其调用格式如下
sys1=d2d(sys,T)
或
sys1=d2c(sys,[ ],N)
其中,第一式将离散时间LTI对象sys(关于LTI对象的定义见第9章)重采样,从而构成新的离散时间系统sys1,采样周期为T,单位s。该调用等价于命令:
sys1=c2d(d2c(sys,T))
第二式将给离散时间LTI对象sys加入输入延时。输入延时必须是采样周期的整数倍,它由N给出。如果N为标量,则各输入通道具有相同的输入延时;如果N为向量,则分别定义各输入通道的输入延时。
【例2-24】 离散时间系统在采样周期T=0.1s时为
现将以上离散时间系统在采样周期T=0.05s时进行重新采样。
解 MATLAB命令如下
>>K=1;Z=[0.7];P=[0.5];T=0.1;sys=zpk(Z,P,K,T),sys1=d2d(sys,0.05)
结果显示: