1.动态系统数学模型
1),传递函数: sys = tf(num,den)
2),状态空间模型:sys=ss(A,B,C,D)
3),多项式展开:[r,p,k] = residue(num,den)
4),采用s的多项式的比来显示num/den:printsys(num,den,‘s’)
传递函数→状态空间:[A,B,C,D] = tf2ss(num,den)
状态空间→传递函数:[num,den] = ss2tf(A,B,C,D) %默认为1个输入
状态空间→零极点:[z,p,K] = ss2zp(A,B,C,D,iu) %iu为输入个数
零极点→状态空间:[A,B,C,D] = zp2ss(z,p,K)
传递函数→零极点:[z,p,K] = tf2zp(num,den)
零极点→传递函数:[num,den] = zp2tf(z,p,K)
连续时间→离散时间:[G,H] = c2d(A,B,Ts) %Ts是以秒为单位表示的采样周期
2.框图形式系统的表达方式
串联 sys = series(sys1,sys2)
并联 sys = parallel(sys1,sys2)
反馈 sys = feedback(sys0,H) %默认为负反馈 1负反馈 -1正反馈
零极点对消 sys_min = minreal(sys)
3.瞬态响应
单位阶跃响应:step(sys) %响应持续时间自动确定,或step(sys,t)
单位脉冲响应:impulse(sys) %或impulse(sys,t)
斜坡响应:在MATLAB中没有关于斜坡响应的命令,所以采用step命令或lsim命令
任意输入的响应:lsim(sys,u,t) %给定t = 0:Δt:T,u是关于t的输入函数
任意初始条件的响应:initial(sys,[initial condition],t)
4.根轨迹分析
绘制根轨迹:rlocus(num,den,K)和rlocus(A,B,C,D,K)
%在同一幅图上绘制两个或多个图形可以用命令hold进行
求根轨迹上任意点的增益K:[K,r]=rlocfind(num,den)或[K,r]=rlocfind(A,B,C,D) %其中r是闭环极点
5.频域响应分析
绘制Bode图:bode(num,den,w) %频率向量w=logspace(-2,3,100),0.01~1000rad/s范围内产生100个对数均匀分布的频率点
绘制Nyquist图:nyquist(num,den)或nyquist(A,B,C,D) %[re,im,w]=nyquist(num,den)
绘制Nichols图:nichols(num,den)或nichols(A,B,C,D) %[mag,phase,w]=nyquist(num,den)
增益裕度和相角裕度:[Gm,Pm,wcp,wcg]=margin(sys) %Gm是增益裕度,Pm是相角裕度,wcp是相角穿越频率,wcg是增益穿越频率。
6.空间状态极点配置
计算反馈增益矩阵K:
① K=acker(A,B,J) %单输入系统,基于艾克曼公式,期望的闭环极点可以包含多重极点(位于同一位置的几个极点)。
② K=place(A,B,J) %多输入系统,使系统稳定裕度最大化,鲁棒极点配置。
%矩阵J由期望闭环极点组成
参考书籍:控制理论MATLAB教程/(美)Katsuhiko Ogata著;王诗宓,王峻译