一、实验目的
熟悉MATLAB进行控制系统频域分析与校正的相关函数及其使用。
掌握用MATLAB进行控制系统频域分析与校正的方法。
二、实验内容
运用MATLAB完成以下各题。
1.单位负反馈系统的开环传递函数为,绘制系统Bode图和Nyquist曲线。
>> num = [20 20 10];
>> den = [1 11 10 0];
>> tf(num,den)
Transfer function:
20 s^2 + 20 s + 10
-------------------
s^3 + 11 s^2 + 10 s
>> bode(num,den)
>> figure
>> nyquist(num,den)
2.系统开环传递函数为,绘制其极坐标图,并判定系统稳定性。
>> num=[10];
>> den=[1 4 -5];
>> nyquist(num,den)
>> grid
判断稳定性:
从上图看出,P=1, N=1
Z=P-N=0
所以系统是稳定的
3.已知单位负反馈系统的开环传递函数为。使用MATLAB设计超前校正网络,使系统的稳态速度误差系数,相位裕度不小于。描述设计步骤并设计程序。
1)已知稳态误差系数Kv = K=20,所以传函
Transfer function:
10
-------
s^2 + s
2)绘制系统校正前的Bode图和单位阶跃响应曲线,并计算校正前系统的增益裕度Gm和Pm,程序及Bode图如下:
>> s = tf('s');
>> G = 20/(s*(s+1));
>> margin(G)
Pm = 12.8<50,不满足要求;需要对系统进行超前校正;
3)求超前校正网络的传函。取Pm = 50,按照超前校正器的设计步骤,编写程序如下:
>> s = tf('s');
>> G = 20/(s*(s+1));
>> margin(G)
>> s = tf('s');
>> G = 20/(s*(s+1));
>> [mag,phase,w] = bode(G);
>> [Gm,Pm] = margin(G);
>> QWPm = 50;
>> FIm = QWPm - Pm +5;
>> FIm = FIm*pi/180;
>> alfa = (1-sin(FIm))/(1+sin(FIm));
>> adb = 20*log10(mag);am = 10*log10(alfa);
>> wc = spline(adb,w,am);
>> T = 1/(wc*sqrt(alfa));
>> alfa = alfa*T;
>> Gc = tf([T 1],[alfa 1])
Transfer function:
0.3379 s + 1
-------------
0.06623 s + 1
所以,上式传函Gc = (Ts+1)/(aTs+1)
4)校正后,系统的开环传函为Gc(s)G(s),根据该传函绘制Bode图,程序如下:
>> s = tf('s');
>> G = 20/(s*(s+1));
>> Gc = (0.3379*s+1)/(0.06623*s+1);
>> margin(Gc*G)
校正后系统单位阶跃响应程序及曲线如下:
>> s = tf('s');
>> G = 20/(s*(s+1));
>> Gc = (0.3379*s+1)/(0.06623*s+1);
>> step(feedback(Gc*G,1))
系统经过超前校正后,是稳定的。
三、实验心得
通过本次试验,我了解到了使用MATLAB进行控制系统频域分析与校正的相关函数及其使用的方法。并且掌握用MATLAB进行控制系统频域分析与校正的方法。
并且了解到了MATLAB功能的强大,不愧为数学问题解决的好帮手,虽然这可能是我最后一次做MATLAB实验,但我会为了今后的工作,继续探索MATLAB的使用方法。掌握这门数学工具。下载本文