自动控制相关的Matlab命令

1. 建立控制系统的模型

tf(num,den,…); % 生成传递函数模型;
zpk(z,p,k,…); % 生成零极点增益模型;
ss(a,b,c,d,…); % 生成状态空间模型;
sys=series(SA,SB); % 两个环节级联
sys=parallel(SA,SB); % 两个环节并联
S=feedback(SA,SB); % A环节前向,B环节反馈
[num,den]=ss2tf(A,B,C,D); % 状态空间方程转传递函数
[A,B,C,D]=tf2ss(num,den); % 传递函数转状态空间方程

2. 控制系统的时域分析

[u,t]=gensig(‘type’,tau); % 按照指定的类型typetypetype和周期tautautau生成特定类型的激励信号uuu,其中typetypetype可以选择sinsinsin(正弦)、squaresquaresquare(方波)、pulsepulsepulse(脉冲);
impulse(sys);  % 单位脉冲响应
step(sys);  % 单位阶跃响应
lsim(sys,u,T);  % LTI模型的任意输入响应函数,计算线性时不变系统sys在任意输入u持续时间T的作用下的输出y(只返回图形)。

简单的使用方法如下:

[u,t]=gensig(‘square’,6,12,0.1);
plot(t,u,’-.’);hold on;
sys=tf([1 1],[1 2 5]);
lsim(sys,u,t)

3. 控制系统的根轨迹

pzmap(sys);  % 绘制系统的零极点图
z=tzero(sys);  % 求系统的传输零点
[K,polesl=rlocfind(sys);  % 计算给定根轨迹增益
[K,poles]=rlocus(sys);  % 求系统根轨迹
[Wn,Z]=damp(sys);  % 求系统极点的固有频率和阻尼系统
P=pole(sys);  % 求系统的极点
k=dcgain(sys);  % 求系统的直流(稳态)增益
s=dsort(p);  % 离散系统极点按幅值降序排列
s=esort(p);  % 连续系统极点按实部降序排列

4. 控制系统的频域分析

bode(sys);  % Bode图绘制
nichols(sys);  % Nichols图绘制
Nyquist(sys);  % Nyquist图绘制
Sigma(sys);  % 系统奇异值Bode图绘制
fresp=evalfr(sys,x);  % 计算系统单个复频率点的频率响应
dbode(a,b,c,d,Ts,iu);  % 绘制离散系统的Bode图
dnichols(num,den,ts);  % 绘制离散系统的Nichols图
dnyquist(num,den,ts);  % 绘制离散系统的Nyquist图
ngrid;  % Nichols网格图绘制
[gm,pm,wcg,wcp]=margin(sys);  % 绘制离散系统的Bode图
h=freqresp(sys,w);  % 计算系统在给定实频率区间的频率响应

5. 一些常见的具体任务所用到的Matlab函数

5.1 分析系统的稳定性

eig(G);  % 求出所有极点 看有没有在右半平面的极点,如果有系统不稳定,反之稳定
pole(G); %同为求系统极点

isstable(G);  % 稳定返回1,不稳定返回0

pzmap(G);   % 画出零极点图,判断方式同eig

nyquist(GH);
pzmap(1+GH);  %使用nyquist稳定性判据判断反馈系统的稳定性

6. 其他可能会用到的函数

conv(u,v);  % 如果 u 和 v 是多项式系数的向量,对其卷积与将这两个多项式相乘等效。
发布了45 篇原创文章 · 获赞 1 · 访问量 2443

猜你喜欢

转载自blog.csdn.net/amnesiagreen/article/details/105227410