北华大学《MATLAB仿真》课程设计姓名:班级学号:实习日期:辅导教师:前言科学技术的发展使的各种系统的建模与仿真变得日益复杂起来。
如何快速有效的构建系统并进行系统仿真,已经成为各领域学者急需解决的核心问题。
特别是近几十年来随着计算机技术的迅猛发展,数字仿真技术在各个领域都得到了广泛的应用与发展。
而MATLAB作为当前国际控制界最流行的面向工程和科学计算的高级语言,能够设计出功能强大、界面优美、稳定可靠的高质量程序,而且编程效率和计算效率极高。
MATLAB环境下的Simulink是当前众多仿真软件中功能最强大、最优秀、最容易使用的一个系统建模、仿真和分析的动态仿真环境集成工具箱,并且在各个领域都得到了广泛的应用。
本次课程设计主要是对磁盘驱动读取系统校正部分的设计,运用自动控制理论中的分析方法,利用MATLAB对未校正的系统进行时域和频域的分析,分析各项指标是否符合设计目标,若有不符合的,根据自动控制理论中的校正方法,对系统进行校正,直到校正后系统满足设计目标为止。
我组课程设计题目磁盘驱动读取系统的开环传递函数为是设计一个校正装置,使校正后系统的动态过程超调量δ%≤7%,调节时间ts≤1s。
电锅炉的温度控制系统由于存在非线性、滞后性以及时变性等特点,常规的PID控制器很难达到较好的控制效果。
考虑到模糊控制能对复杂的非线性、时变系统进行很好的控制, 但无法消除静态误差的特点, 本设计将模糊控制和常规的PI D控制相结合, 提出一种模糊自适应PID控制器的新方法。
并对电锅炉温度控制系统进行了抗扰动的仿真试验, 结果表明, 和常规的PI D控制器及模糊PI D复合控制器相比,模糊自适应PI D控制改善了系统的动态性能和鲁棒性, 达到了较好的控制效果。
目录1未校正前系统的分析 (3)1.1时域分析 (3)1.2根轨迹分析 (3)1.3频域分析 (5)2串联校正及校正后系统分析 (6)2.1校正原理 (6)2.2校正过程 (6)2.2.1选择增益系数 (6)2.2.2校正环节 (6)2.3校正后系统验证系统性能 (7)2.3.1时域分析 (7)2.3.2频域分析 (8)3校正装置的实现 (9)3.1无源校正装置 (9)3.2有源校正装置 (10)4对校正后的系统利用连续系统按环节离散化的数字进行仿真 (10)4.1连续系统按环节离散化仿真原理 (10)4.2Matlab实现仿真过程 (11)5实习总结 (14)6附录 (15)7参考文献 (19)1未校正前系统的分析衡量一个系统的好坏主要是通过性能指标,而其中最主要的分析方法是时域分析、根轨迹和频域分析。
1.1 时域分析时域分析法是根据系统的微分方程, 以拉氏变换为工具,直接解出控制系统的时间响应,根据响应表达式及响应曲线来分析系统的稳定性、快速性、准确性等。
我们的题目是磁盘驱动读取系统的开环传递函数为Gk(s)=1/s(s+20)(s+10),对这个函数进行展开得到Gk(s)=1/s^3+30s^2+200s 。
运用MATLAB 的step()函数对此系统进行仿真,得到系统单位阶跃响应曲线如1-1所示。
未校正系统阶跃响应Time (sec)A m p l i t u d e0500100015000.20.40.60.81System: sysSettling Time (sec): 782System: sysTime (sec): 1.27e+003Amplitude: 0.998图1-1 单位阶跃响应曲线M 文件如下:num0=1;den0=conv([1,0],conv([1,20],[1,10])); [numb,denb]=cloop(num0,den0); step(numb,denb);title('未校正系统阶跃响应');由以上分析,得到系统的时域指标δ%=0%,ts=782s 。
从调节时间上看,远远地不符合设计要求。
1.2 根轨迹分析根轨迹法是根据反馈控制系统开环和闭环传递函数之间的关系提出的一种由开环传递函数求闭环特征根的简便方法,它是分析和设计线性定常控制系统的图解方法,使用十分简便,在工程上获得了广泛的应用。
运用根轨迹分析法,可以对系统的稳定性进行分析而这又为系统的校正提供依据。
在调用rlocus()函数之后,调用根轨迹增益函数rlocfind(),可得出系统的根轨迹曲线如1-2所示。
未校正前系统根轨迹Real AxisI m a g i n a r y A x i s-80-60-40-202040-50-40-30-20-10010203040500.20.420.580.720.830.910.960.990.20.420.580.720.830.910.960.9920406080图1-2 根轨迹曲线MATLAB 的程序为; num0=1;den0=[1,30,200,0]; axis equal;rlocus(num0,den0);[K,poles]=rlocfind(num0,den0); title('未校正前系统根轨迹'); 执行以上程序,并移动鼠标到根轨迹与虚轴的交点处单击鼠标左键后可得到如下结果:selected_point = 0 +14.0727iK =5.9413e+003 poles =-29.9464-0.0268 +14.0853i-0.0268 -14.0853i由此可见,根轨迹与虚轴交点处的增益K=5941.3这说明,K<1.6时系统稳定;当K>941.6时系统不稳定。
利用rlocfind()函数可找出根轨迹从实轴上的分离点处的增益K=384,说明当0<K<384系统为单调衰减稳定,当384<K<5941.3时,系统为振荡衰减稳定。
1.3 频域分析频域分析法是应用频域特性分析线性系统的方法。
它是以传递函数为基础的一种图解分析法,对与高阶系统的分析非常实用,它同时也适用于系统的设计。
而此次的系统为三阶系统,所以对系统的频域分析就显得尤为重要。
系统的bode 图可用函数bode(num,den)生成,而频域指标幅值裕量、相位裕量、相位穿越频率和幅值穿越频率通过[Gm,Pm,Wcg,Wcp]=margin(num,den)获得。
所编写的MATLAB 程序为: num0=1;den0=[1,30,200,0]; g = tf(num0,den0); bode(g);[Gm,Pm,Wcg,Wcp]=margin(g); title('未校正前系统伯德图');执行后得如下数据及如图1-3所示的bode 图Gm =6.0000e+003 Pm =89.9570 Wcg =14.1421 Wcp =0.0050-200-150-100-50050M a g n i t u d e (d B)10-310-210-110101102103-270-225-180-135-90P h a s e (d e g )未校正前系统伯德图Frequency (rad/sec)图1-3 系统bode图从图中可以看出相位裕量γ=89.9570度,即裕量为正,开环系统稳定,还有较好的动态性能指标。
2串联校正及校正后系统分析自动控制系统是由被控对象和控制器两大部分组成的,当被控对象被确定后,对系统的设计实际上就是对控制器的设计,这就称为对控制系统的校正。
由于控制系统不满足控制质量的要求,需根据系统预先给定的性能指标重新设计一个满足性能要求的控制系统,具体任务是选择校正方式,确定校正装置的类型以及计算出具体参数等。
2.1校正原理校正装置是为了改善系统控制性能而人为的引入的控制部分根据校正装置在控制系统中的位置不同,可分为串联校正和并联校正两类基本形式。
串联校正分为超前校正、滞后校正、滞后-超前校正三种结合目前的分析方法对串联校正的选择方法又可分为bode图法、根轨迹法和频率特性法。
根据他们各自的特点和本次设计的要求最后选择了频率特性法来进行校正装置的设计。
结合前面对系统性能指标的分析,我们得出系统的调节时间过长,主要是增益过小导致的,所以进行校正前的首要任务是确定系统的增益系数。
确定了增益系数之后就可以借助于频域特性法来设计校正装置。
2.2校正过程2.2.1选择增益系数根据增益系数对系统稳定性影响的特点以及前面对系统根轨迹分析得出的系统稳定时增益的范围(0<k<5941.3),所以编写了MATLAB程序对K值由大到小的变化对系统的稳定性影响,最终选择了K=300最接近于期望值。
2.2.2校正环节选择了K=300之后,观察到系统的动态响应的快速性仍有待提高,所以就选择了串联超前校正。
接下来我们根据串联校正编写了MATLAB程序:num0=300;den0=conv([1,0],conv([1,20],[1,10]));g=tf(num0,den0);[mag1,phase1]=bode(g);[Gm,Pm,Wcg,Wcp]=margin(g);r=62;w=logspace(-3,1);%给定期望系统的相位域量for epsilon=5:15r0=(-180+r+epsilon);[i1,ii]=min(abs(phase1-r0));wc=w(ii);alpha=mag1(ii);T=5/wc;numc=[T,1];denc=[alpha*T,1];[num,den]=series(num0,den0,numc,denc);[Gm,Pm,Wcg,Wcp]=margin(g);if(Pm>=r);break;end;endprintsys(numc,denc);printsys(num,den);g=tf(numc,denc);figure(1);bode(g) %画出校正环节伯德图title('校正环节伯德图');%[mag2,phase2]=bode(g);g=tf(num0,den0);figure(3);bode(g); %画出有增益未校正系统伯德图title('有增益未校正系统bode图');g=tf(num,den);figure(2);bode(g); %画出校正后环节伯德图title('有增益已校正系统bode图');%[mag,phase]=bode(g);%未校正前figure(3);subplot(2,1,1);[numb,denb]=cloop(num0,den0);step(numb,denb); %有增益未校正阶跃响应曲线title('未校正加入增益前系统单位阶跃响应曲线');%校正后subplot(2,1,2);[numb,denb]=cloop(num,den);step(numb,denb); %有增益已校正阶跃响应曲线title('校正后系统单位阶跃响应曲线');经过多次调试得到校正环节的传递函数Gc=(359.8428 s + 1)/ (201.3615 s + 1)。