pid算法仿真
① 基于matlab的pid控制系统仿真的建模具体步骤
1. PID 控制系统原理及算法
当我们不能将被控对象的结构和参数完全地掌握,或者是不能得到精确的数学模型时,在这种情况下最便捷的方法便是采用PID 控制技术。为了使控制系统满足性能指标要求,PID 控制器一般地是依据设定值与实际值的误差,利用比例(P)、积分(I)、微分(D)等基本控制规律,或者是三者进行适当地配合形成相关的复合控制规律,例如,PD、PI、PID 等。
图1 是典型PID 控制系统结构图。在PID 调节器作用下,对误差信号分别进行比例、积分、微分组合控制。调节器的输出量作为被控对象的输入控制量。
图1 典型PID控制系统结构图
PID 控制器主要是依据给定值r(t)与实际输出值y(t)构成控制偏差,用公式表示即e(t)=r(t)-y(t),它本身属于一种线性控制器。通过线性组合偏差的比例(P)、积分(I)、微分(D),将三者构成控制量,进而控制受控对象。控制规律如下:
其传递函数为:
式中:Kp--比例系数; Ti--积分时间常数; Td--微分时间常数。
2. PID 控制器的MATLAB 仿真
美国MathWorks 公司推出的MATLAB 是一套具备高性能的数值计算和可视化软件。由于MATLAB 可以将矩阵运算、图形显示、信号处理以及数值分析集于一体,构造出的用户环境使用方便、界面友好,因此MATLAB 受到众多科研工作者的欢迎。本文利用MATLAB 仿真工具箱Simulink 的功能,在基于仿真环境Matlab/Simulink 工具上用图形化方法直接建立仿真系统模型,启动仿真过程,将结果在示波器上显示出来。
3. 仿真实例分析
3.1 建立数学建模
设被控对象等效传递函数为
3.2 仿真建模
仿真建模的目的就是将数学模型转换成计算机能够执行的模型,运用Simulink 可以达到此目的。图2 是综合图1 和给定计算公式运用Simulink 建立的PID 控制的连续系统的仿真模型(建模步骤略)。
图2 Simulink仿真建模
3.3 仿真实验
在传统的PID 调节器中,参数的整定问题是控制面临的最主要的问题,控制系统的关键之处便是将Kp、Ti、Td三个参数的值最终确定下来。而在工业过程控制中首先需要对PID 控制中三参量对系统动态性的影响进行实际深入地了解,才能确定怎样将三参数调节到最佳状态。在本实验中,对各参量单独变化对系统控制作用的影响进行讨论,其中在对一个参量变化引发的影响进行讨论时,需要将其余两个参数设定为常数。
3.3.1 P 控制作用分析
分析比例控制作用。设Td= 0、Ti=∞、Kp= 3 ~ 10.输人信号阶跃函数,分别进行仿真,如图3 所展示的系统的阶跃响应曲线。
图3 显示的仿真结果表明:系统的超调量会随着Kp值的增大而加大,系统响应速度也会会随Kp值的增大而加快。但是系统的稳定性能会随着Kp的增大而变差。
图3 单闭环调速系统P控制阶跃响应曲线
3.3.2 比例积分控制作用的分析
设比例积分调节器中Kp= 1,讨论Ti= 0.01 ~ 0.05 时。输人信号阶跃函数,分别进行仿真,如图4 所展示的系统的系统的阶跃响应曲线。
图4 单闭环调速系统PI控制阶跃给定响应曲线
系统的超调量会随着Ti值的加大而减小,系统响应速度随着Ti值的加大会略微变慢。
3.3.3 微分调节作用的分析
设Kp= 1、Ti= 0.01,讨论Td= 10 ~ 100 时对系统阶跃响应曲线的影响。输人信号阶跃函数,分别进行仿真,如图5 所展示的系统的阶跃响应曲线。
图5 单闭环调速系统PID控制阶跃给定响应曲线
图5 所显示的仿真结果表明:根据单闭环调速系统的参数配合情况,起始上升段呈现较尖锐的波峰,Kp= 1、Ti= 0.01不变时,随着Td值的加大,闭环系统的超调量增大,响应速度变慢。
4 .结论
(1)对于PID 参数采用MATLAB 进行整定和仿真,使用起来不仅快捷、方便,而且更为直观,同时也避免了传统方法反复修改参数调试。
(2)系统的响应速度会随Kp值的增大而加快,同时也有助于静差的减小,而Kp值过大则会使系统有较大超调,稳定性变坏;此外,系统的动作会因为过小的Kp值减慢。
(3)超调的减小、振荡变小以及系统稳定性的增加都取决于积分时间Ti的增大,但是系统静差消除时间会因为Ti的增大而变长。
(4)增大微分时间Td对于系统的稳定性、系统响应速度的加快以及系统超调量的减小都会有所帮助。但是如果Td过大,则会使得调节时间较长,超调量也会增大;如果Td过小,同样地也会发生以上状况。
(5)总之PID 参数的整定必须考虑在不同时刻三个参数的作用以及彼此之间的作用关系。
5.结语
PID 控制应用领域极为广泛,可将其应用于电力、化工、轻工、冶金以及机械等工业过程控制中。通常情况下,最适合采用PID 控制技术的条件是:当我们对目标系统或被控对象的内部特征不完全清楚时,或者是系统的全部参数不能经过有效的测量手段来获取,同时必须依赖于经验和现场调试来确定系统控制器的结构参数情况下采用该技术。
② 温控PID算法的具体实现(一)
经过本人发表的上一篇文章《几种温度算法的比较与总结》可知,分段式PID算法既可以提高温控系统的响应速度,又可以提高温控系统的控温精度,现将以增量式PID算法为例总结一下其具体的实现步骤或过程,希望能够给奋颤培袜战在PID算法的同仁们提供一些有价值的内容。
一、温控模型的建立
是选择一阶延迟控温系统还是选择二阶延迟控温系统,需要根据自己的实际控温系统来确定;
二、温控模型中K、T、τ的确定
茄激 温控模型一旦确定,接下来就是确定K、T、τ的值。温控模型中K、T、τ等值的确定方法有以下几种方法:
1、系统辨识法
设定采集数据的时间间隔,PWM波形的占空比等参数后,记录随时间变化的温度数据(注意:是在开环状态下),温度数据量越多越好,根据测试的数据利用Matlab的系统辨识工具箱进行辨识求得K、T、τ的值。
2、公式计算法1
对温控系统输入固定占空比的PWM波,以固定时间间隔(比如1s)采集记录温度数据,然后利用两点法计算公式计算出K、T、τ的值。
K = (y(∞) - y(0))/(Δu);
T = 1.5*(t(0.632) - t(0.28));
τ = 1.5 * ( t(0.28) - t(0.632)/3)。
注意:(1)、y(0)为室温值,y(∞)温度稳定后的温度值。
(2)、Δy = y(∞) - y(0)。
(3)、 t(0.28)为室温升温至y(0) +0.28* Δy的时间值。
(4)、t(0.632)为室温升温至y(0) +0.632* Δy的时间值。
3、公式计算法2
原理同公式计算法1,只不过选中缺取的参考点不同,这里选取的参考点是t(0.39)和t(0.632),K的计算公式同公式计算法1,以下是T和τ的计算公式:
T = 2*(t(0.632) - t(0.28));
τ = 2* t(0.28) - t(0.632)。
三、P、I、D参数的确定
1、Matlab仿真试验法
通过在Matlab中输入温控模型和建立PID控制模块,然后仿真查看温控的曲线情况确定PID参数。
2、公式计算法
根据以上测得的温度数据,由Z-N或C-C公式算出PID参数。
3、现场调试法
根据调试人员对PID参数整定的经验调试PID参数,通过现场PID的控温情况确定PID参数值。
通过以上三种PID参数整定方法的比较,当然还有其他的有待验证其可行性的PID参数整定方法,个人觉得综合以上三种PID参数整定方法,最好的PID参数整定方法是:先用公式计算法计算出PID参数值,然后在Matlab中验证整定的PID参数情况,最后再根据现场的实际控温情况进行微调,最终确定PID参数的值。
③ 如何用matlab进行增量型PID仿真
在MATLAB命令窗口中键入Simulink命令;
在Simulink的浏览工具条选择“新建”按钮,打开一个空白的模型创建窗口;
在Simulink库浏览器中单击Source库,选中Step模块,单击Step模块并将其拖入到新建的模型窗口中,然后释放,完成;
按照步骤3选择Continuous库添加Transport Delay模块,Derivative模块,Integrator模块,Transfer Fcn模块;选择Math Operations库添加三个Gain模块,两个Add模块;
用鼠标定位在模块的端口,按住鼠标左键将相连的模块连线;
设置各个模块的参数,将双击Add模块,出现参数对话框,在Main中的list of
Signs中内容设置为“+-”,同理Add1模块设置为“+++”双击Transfer Fcn模块,在Numerator coefficients中添加[8],在denominator coefficients中添加[360 1]则传递函数为8/(360s+1),延时模块时间设置为10;
保存Simulink模型。
2)对刚刚建立的模型进行仿真
在Simulation菜单下的Configuration Parameters命令,打开参数的对话框设置仿真参数,start time设置为0,终止时间设置为500;
Type参数设置为Variable—step,Solver参数设置为ode45(Domand-Prince),其他参数默认值即可。
设置Gain三个模块的值
在Simulation菜单下选择Start,通过Scope模块观察输出波形;
④ 用算法优化PID参数时都要用matlab与simulink结合吗
不一定。虽然Matlab和Simulink是常用的PID算法设计和仿真工具,但也可以使用其他编程语言和仿真软件进行PID算法设计和优化。
Matlab和Simulink具有以下优点:
丰富的PID工具箱和库:Matlab提供了丰富的PID算法工具箱和库,包括自动调节工具、系统辨识工具和PID控制工具。这些工具可以帮助设计师更快迟兆速、更精确地设计和优化PID参数。
仿真环境:Simulink提供了一个直观的仿真环境,可以方便地建立模型、仿真、调试和分析PID控制器的性能。
易于使用:Matlab和Simulink的用户界面友好,容易上手,且具有广泛的社区支持和学习资源。
但是,其他编程语言和仿真软件亮旦纳也可以用于PID算法的设计和优化。例如,Python具有强大的科学计算库和机器学习工具,可以用于PID参数自适应控制器的设计和优化。同时,仿真软件如LabVIEW、Ansys、OpenModelica等也可以用于PID控制器的建模和仿敬没真。
因此,是否使用Matlab和Simulink进行PID算法优化取决于具体应用场景和工程师的个人喜好和熟练程度。