如何用matlab进行增量型PID仿真?

如何用matlab进行增量型PID仿真?,第1张

在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的增量与位置形式。只是把PID整个元件的传递函数写出来然后加上就行了,我做模型时侯,PID的传递函数参数是用微分方程组的拉斯赫尔维茨判据判断的,没有用闭环传递函数来判断。PID参数Kp,Ki等参数应该根据稳定性来选取吧。至于示波器,你要看你想看什么的变化情况,如果是房间温度变化你应该加如图

PID参数的设定调节如下:

1、PID就是通过系统误差利用比例、积分、微分计算出控制量进行控制的。不同厂家的公式稍有不同,但是基本上都离不开三个参数:比例、积分时间、微分时间。

2、采样周期。在进行PID调节之前要先设定好PID的采样周期,采样周期设定主要根据被控对象的特性决定。

被控对象变化快的(如:流量),可将采样周期设定在100ms左右,采样周期变化慢的(如:液位)可将采样周期设定在1000ms,对于特别缓慢的(如:温度)可设置成5-10S。简单的理解是多长时间比较一次采样值与设定值。

当然需要注意的是,采样周期必须大于程序的执行周期(PLC的运行周期)。

3、比例。比例作用是依据偏差的大小来动作.比例有时又被称为增益用Gain表示,当控制量与被控量成正比例关系时(例如:阀位与流量)增益为正数;

当控制量与被控量成反比例关系时(例如:液位与频率)增益为负数。比较简单的理解是如果设定值与反馈值有偏差时一次调整多少。

当然比例参数设定是还要考虑被控值的性质,对于变频器来说,单次变化可以为0.01但是对于阀门来说最小变化为0.2比较好。因为阀门的精度较低。

4、积分。积分作用是依据偏差是否存在来动作的,在系统中起着消除余差的作用。

在调节时可以先设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡之后在反过来,逐渐加大Ti,直至系统振荡消失。

记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间可以简单的理解成调整的频率(只是为了方便理解)。

5、微分。微分的作用是依据偏差变化速度来动作的,在系统中起着超前调节的作用。很多情况下微分是不需要调节的。若要设定,与确定P和Ti的方法相同,取不振荡时的30%。微分可以简单理解为超前控制。

6、死区。死区在PID调节是一个非常重要的量,可以人为地增加控制回路的稳定性,设置好死区甚至可以减少大量的调整过程。

通俗的理解死区就是你所能接受的最大偏差。死区的大小一般要大于反馈值的波动范围。死区的设置应该在其它参数的设置基础上进行,否则会导致系统失去控制。 PID参数的设定调节技巧基本上就是这样了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11245232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存