文章目录
- 建立控制系统的模型
- 控制系统的时域分析
- 控制系统的根轨迹
- 控制系统的频域分析
- 一些常见的具体任务所用到的Matlab函数
- 分析系统的稳定性
建立控制系统的模型
1 2 3 4 5 6 7 8 | 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); % 传递函数转状态空间方程 |
控制系统的时域分析
1 2 3 4 | [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(只返回图形)。 |
简单的使用方法如下:
1 2 3 4 | [u,t]=gensig(‘square’,6,12,0.1); plot(t,u,’-.’);hold on; sys=tf([1 1],[1 2 5]); lsim(sys,u,t) |
控制系统的根轨迹
1 2 3 4 5 6 7 8 9 | 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); % 连续系统极点按实部降序排列 |
控制系统的频域分析
1 2 3 4 5 6 7 8 9 10 11 | 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); % 计算系统在给定实频率区间的频率响应 |
一些常见的具体任务所用到的Matlab函数
分析系统的稳定性
1 2 3 | eig(G); % 求出所有极点 看有没有在右半平面的极点,如果有系统不稳定,反之稳定 isstable(G); % 稳定返回1,不稳定返回0 pzmap(G); % 画出零极点图,判断方式同eig |