控制系统仿真常用的matlab函数

控制常用matlab函数

c=conv(a,b):以a和b作为系数的多项式相乘。

d=poly©:将c作为根展开行列式

d=poly(c,a)计算行列式为a是的值

sys=tf(a,b):以ab作为系数建立传递函数

c,d=tfdata(sys):根据传递函数求分子分母系数

sys=zpk(a,b,5)以a为零点,b为极点,5为增益建立传递函数

[z, p, k]=tf2zp(num, den) %提取传递函数的零极点和增益

[r, p, k]=residue(num, den) %求取系统部分分式表示,r为零点,p为极点,k为余数
控制系统仿真常用的matlab函数_第1张图片

zpk为零极点模型,ss为状态控制空间模型,tf为传递函数

[num, den]=series(num1, den1, num2, den2):模型串联

[num, den]=parallel(num1, den1, num2, den2)并联

[num, den]=feedback(num1, den1, num2,den2, sign):反馈,1为开环传递系统,2为反馈系统,sign标志正负反馈为正负1。输出为传递函数分子和分母系数

[numc, denc]=cloop(num, den, sign):闭环连接,即让反馈系统为1

[A,B,C,D]=linmod(‘Samples_4_14’); %提取Simulink模型的线性状态空间模型

y=step(num, den, t),单位阶跃响应

dc=dcgain(num, den),求系统稳态值

y=impulse(num, den, t),脉冲函数

pzmap(sys)获得零极点图

[y, x, t]=impulse(A, B, C, D, iu, t),同样为脉冲函数,iu为输入变量序号

[Y,T,X]=initial(sys,x0,t)零输入响应函数,x0为初始状态。不给输出时直接绘图

[Y,T,X]=lsim(sys2,u,t,x0),求取任意输入,u为输入

当采用[y,t]=step(G):[Y,k]=max(y) %求出y的峰值及相应的时间;timetopeak=t(k) %获得峰值时间

超调量等其他参数需要自己计算,超调量:

C=dcgain(G) %求取系统的终值

[Y,k]=max(y) %求出y的峰值及相应的时间

percentovershoot=100*(Y-C)/C %计算超调量

当然也可以绘出曲线,在曲线上获得参数

图形用户界面LTI Viewer分析控制系统的时域、频域响应

根轨迹

rlocus(sys, k)绘制增益为k时的闭环极点。

rlocus(sys1, sys2,…)在同一个复平面中画出多个SISO系统的根轨迹,为区分各个系统的根轨迹,可以用不同的颜色和线型来显示

[k, poles]=rlocfind(sys)执行后,在根轨迹图形窗口中显示十字形光标,当用户在根轨迹上选择一点时,其相应的增益由k记录,与增益相关的所有极点记录于poles中。

sgrid( )在连续系统根轨迹图绘制等阻尼系数与自然振荡角频率曲线。

zgrid( )在离散系统根轨迹图上加等阻尼线和等自然振荡角频率线

系统根轨迹分析与设计的工具rltool,可以进行图形化操作

在频率法中

nyquist(a, b, c, d):绘制系统的一组Nyquist曲线,a,b,c,d也可改为num和den。当带输出变量[re, im, w]引用函数时,可得到系统频率特性函数的实部re、虚部im以及角频率点w矢量(为正的部分);可用plot(re, im)绘制出w从负无穷到零变化的对应部分

bode(a, b, c, d):绘制系统的一组Bode图

[As, Bs, Cs, Ds, Ts]=canon(A, B, C, D, ‘mod’)参数‘‘mod’’表示转化成对角型,As、Bs、Cs和Ds是变换后的对角型,Ts表示所做的线性变换。

[A1,B1,C1,D1]=ss2ss(A,B,C,D,T)线性变换,T为变换矩阵

expm(At),求矩阵A的指数 e A t e^{At} eAt

M= ctrb(A , B)结合求M秩的函数rank(M),判断系统的能控性。

N= obsv (A, C)结合求N秩的函数rank(N),判断系统的能观性。

[Ac,Bc,Cc]=ctrbf(A,B,C)能空性分解A、B和C是变换前系统矩阵,Ac、Bc和Cc是能控性分解后的矩阵。

[Ao,Bo,Co]= obsvf (A,B,C)其中,A、B和C是变换前系统矩阵,Ao、Bo和Co是能观测性分解后的矩阵。其输入也可直接为sys

P=lyap(A, Q),其中输入参数A是已知系统的状态矩阵,Q是给定的正定对称矩阵,输出量P是李雅普诺夫方程AP+PA T+Q=0的解,即正定实对称矩阵P。

P=lyap2(A, Q)与P=lyap(A, Q)函数相同,但计算速度快,采用特征值分解计算。对于离散系统,相应的函数为P=dlyap(A, Q)

[K,prec,message]=place(A,B,p)(A,B)为系统状态方程模型,p为包含期望闭环极点位置的列向量,返回变量K为状态反馈行向量。prec为闭环系统的实际极点与期望极点p的接近程度,prec中的每个量的值为匹配的位数。如果闭环系统的实际极点偏离期望极点10%以上,那么message将给出警告信息。

K=acker(A,B,P) (A,B)为系统状态方程模型,p为包含期望闭环极点位置的列向量,返回变量K为状态反馈行向量。acker()只适用于单输入系统,希望的极点可以包括多重极点

你可能感兴趣的:(matlab)