文章目录
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 是多项式系数的向量,对其卷积与将这两个多项式相乘等效。