资源描述:
《PID仿真实验2016》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验1闭环控制系统仿真实验——PID控制算法仿真一、实验目的1.掌握PID控制规律及控制器实现。2.掌握用Simulink建立PID控制器及构建系统模型与仿真方法。二、实验设备计算机、MATLAB软件三、实验原理在模拟控制系统中,控制器中最常用的控制规律是PID控制。PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。PID控制规律写成传递函数的形式为式中,为比例系数;为积分系数;为微分系数;为积分时间常数;为微分时间常数;简单来说,PID控制各校正环节的作用如下:(1)比例环节:成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。(2)积分
2、环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。(3)微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。四、实验过程1、在MATLAB命令窗口中输入“simulink”进入仿真界面。2、构建PID控制器:(1)新建Simulink模型窗口(选择“File/New/Model”),在SimulinkLibraryBrowser中将需要的模块拖动到新建的窗口中,根据PID控制器的传递函数构建出如下模型:各模块如下:MathOperati
3、ons模块库中的Gain模块,它是增益。拖到模型窗口中后,双击模块,在弹出的对话框中将‘Gain’分别改为‘Kp’、‘Ki’、‘Kd’,表示这三个增益系数。Continuous模块库中的Integrator模块,它是积分模块;Derivative模块,它是微分模块。MathOperations模块库中的Add模块,它是加法模块,默认是两个输入相加,双击该模块,将‘ListofSigns’框中的两个加号(++)后输入一个加号(+),这样就改为了三个加号,用来表示三个信号的叠加。Ports&Subsystems模块库中的In1模块(输入端口模块)和Out1模块(输出端口模块)。(2)将上述结
4、构图封装成PID控制器。①创建子系统。选中上述结构图后再选择模型窗口菜单“Edit/CreatSubsystem”②封装。选中上述子系统模块,再选择模型窗口菜单“Edit/MaskSubsystem”③根据需要,在封装编辑器对话框中进行一些封装设置,包括设置封装文本、对话框、图标等。本次试验主要需进行以下几项设置:Icon(图标)项:“Drawingcommands”编辑框中输入“disp(‘PID’)”,如下上图示:Parameters(参数)项:创建Kp,Ki,Kd三个参数,如下图示:至此,PID控制器便构建完成,它可以像Simulink自带的那些模块一样,进行拖拉,或用于创建其它系
5、统。3、搭建一单回路系统结构框图如下图所示:所需模块及设置:Sources模块库中Step模块;Sinks模块库中的Scope模块;CommonlyUsedBlocks模块库中的Mux模块;Continuous模块库中的Zero-Pole模块。Step模块和Zero-Pole模块设置如下:4、构建好一个系统模型后,就可以运行,观察仿真结果。运行一个仿真的完整过程分成三个步骤:设置仿真参数、启动仿真和仿真结果分析。选择菜单“Simulation/ConfiurationParameters”,可设置仿真时间与算法等参数,如下图示:其中默认算法是ode45(四/五阶龙格-库塔法),适用于大多
6、数连续或离散系统。5、双击PID模块,在弹出的对话框中可设置PID控制器的参数Kp,Ki,Kd:设置好参数后,单击“Simulation/Start”运行仿真,双击Scope示波器观察输出结果,并进行仿真结果分析。比较以下参数的结果:(1)Kp=8.5,Ki=5.3,Kd=3.4(2)Kp=6.7,Ki=2,Kd=2.5(3)Kp=4.2,Ki=1.8,Kd=1.76、以Kp=8.5,Ki=5.3,Kd=3.4这组数据为基础,改变其中一个参数,固定其余两个,以此来分别讨论Kp,Ki,Kd的作用。7、分析不同调节器下该系统的阶跃响应曲线(1)P调节Kp=8(2)PI调节Kp=5,Ki=2(
7、3)PD调节Kp=8.5,Kd=2.5(4)PID调节Kp=7.5,Ki=5,Kd=3五.实验曲线及数据处理把实验曲线记录下来,并分析不同参数下的变化情况。六.总结1、P控制规律控制及时但不能消除余差,I控制规律能消除余差但控制不及时且一般不单独使用,D控制规律控制很及时但存在余差且不能单独使用。2、比例系数越小,过渡过程越平缓,稳态误差越大;反之,过渡过程振荡越激烈,稳态误差越小;若Kp过大,则可能导致发散振荡。Ti越大,积分作用