广义预测控制+经典PID控制如何用matlab编程实现在工业上如何实现控制(硬件平台)请这方面的高手帮助

广义预测控制+经典PID控制如何用matlab编程实现在工业上如何实现控制(硬件平台)请这方面的高手帮助,第1张

广义预测控制需要实现四个功能:1、参数估计,可以用递推最小二乘法实现;2、使用丢番图方程对模型分解,分解为当前状态和历史输入对模型未来输出值的作用公式,未来输入对模型未来输出值的作用公式;推导过程过于繁琐,可以直接套用公式计算。3、参考轨迹生成,可以使用下面公式递推得到:r(n)=(1-k)y(n-1)+k(s-y(n-1)),其中k为时间常量,决定系统的调节速度,s为设定值。4、最优值计算,可以直接套用公式。实现过程:首先辨识系统模型,然后使用丢番图方程对辨识得到的模型进行分解,计算参考轨迹,最后把参考估计和分解后的系统模型带入公式得到最优输出值(其实是次优解),如此反复即可实现预测控制。

经典PID计算:可以使用增量式的公式:y(n)=y(n-1)+Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)+e(n-2)-2e(n-1)]

需要说明广义预测控制和PID控制输出都需要设置输出值限幅。

工业实现:可以用c语言编写程序作为控制软件的控制代码,硬件平台可以是一台工控机或者PLC,另外也有这方面的软件包,不过很贵。

组态王Pid控件使用方法

KingviewPid控件是组态王提供的用于对过程量进行闭环控制的专用控件。通过该控件,用户可以方便的制作PID控制。一、控件功能:1.pid控制算法:标准型,分为增量型输出和反向作用。2.显示过程变量的精确值,显示范围[-99999999~99999999]。3.以百分比显示设定值(SP)、实际值(PV)和手动设定值(M)。4.开发状态下可设置控件的总体属性、设定/反馈范围和参数设定。5.运行状态下可设置PID参数和手动自动切换。二、使用说明:1.在画面中插入控件:组态王画面菜单中编辑\插入通用控件,或在工具箱中单击“插入通用控件”按钮,在d出的对话框中选择 “Kingview Pid Control”,单击确定。2.按下鼠标左键,并拖动,在画面上绘制出表格区域。图1 控件画面3.设置动画连接:双击控件或选择右键菜单中动画连接,在d出的属性页中设置控件名称等信息。(1)常规:图2 动画连接属性—常规设置控件名称:应符合组态王中关于名称定义的规定,例如:PIDCtrl0。优先级:是控件的 *** 作优先级,范围在1~999。安全区:安全区只允许选择。 (2)属性 类型 关联对象:图3动画连接属性—属性SP:FLOAT,控制器的设定值。PV:FLOAT,控制器的反馈值。YOUT:FLOAT,控制器的输出值。Type:LONG,PID的类型。CtrlPeriod:LONG,控制周期。FeedbackFilter:BOOL,反馈加入滤波。FillterTime:LONG,滤波时间常数。CtrlLimitHigh:FLOAT,控制量高限。CtrlLimitLow:FLOAT,控制量低限。InputHigh:FLOAT,设定值SP的高限。InputLow:FLOAT,设定值SP的低限。OutputHigh:FLOAT,反馈值PV的高限。OutputLow:FLOAT,反馈值PV的低限。Kp:FLOAT,比例系数。Ti:LONG,积分时间常数。Td:LONG,微分时间常数。Tf:LONG,滤波时间常数。ReverseEffect:BOOL,反向作用。IncrementOutput:BOOL,是否增量型输出。DeadBandLow:Long,无效。Status:BOOL,手自动状态。M:FLOAT,手动设定值。PercentRange:float,手动时调节的调节幅度,默认是1,(可以在运行时,点击参数按钮在手动调节比率里面调节此参数)。新增功能。注意:在使用变量关联时,只有控件所处的画面处于激活状态,控制功能才会执行。 (3)命令语言中的使用A、在使用变量关联时:此时,只有控件所处的画面处于激活状态,控制功能才会执行,如果工程中存在多个画面,并且PID控件画面并不总是处于激活状态,则应该采用命令语言的方式使用PID控件。即,在控件所处画面的画面命令语言中,使用赋值的方式,显示地交换PID控制值。选择画面命令语言中的控件,如下所示:图4控件属性和方法在属性或方法中选择相应的选项,在存在时出现命令语言,如我们选择SP双击,则如下显示:图5画面命令语言显示时:当画面由隐含变为显示时,则“显示时”编辑框中的命令语言就被执行一次。存在时:只要该画面存在,则“存在时” 编辑框中的命令语言就反复按照设定的时间周期执行。隐含时:当画面由显示变为隐含或关闭时,则“隐含时”编辑框中的命令语言就被执行一次。输入命令语言,如下: 图6画面命令语言 其中,SP为设定变量,PV为反馈变量,YOUT为控制器输出变量。B、在使用工程浏览器的应用程序命令语言时:应用程序语言可以在程序启动时执行、关闭时执行或在程序运行期间定 期执行。(1)打开工程浏览器:图7应用程序命令语言应用程序命令语言的运行时编写同上面。程序如下:图8应用程序命令语言4.设置控件属性:选择控件右键菜单中“控件属性”。d出控件固有属性页,可分别设置如下属性:(1)总体属性:图9 总体属性控制周期:PID的控制周期,为大于100的整数。且控制周期必须大于系统的采样周期。反馈滤波:Pv值在加入到PID调节器之前可以加入一个低通滤波器。输出限幅:控制器的输出限幅Yout的值。 (2)设定/反馈变量范围:图10 设定/反馈变量范围输入变量:设定值sp或者反馈值pv对应的最大值(100%)和最小值(0%)的实际值。 设定值sp与反馈值pv一般最大值、最小值相同。输出变量:输出值Yout对应的最大值(100%)和最小值(0%)的实际值。(3)参数选择:图11 参数选择PID类型:选择使用标准型。比例系数Kp:设定比例系数。一般取值范围:1-10积分时间Ti:设定积分时间常数,就是积分项的输出量每增加与比例项输出量相等的值所需要的时间。一般取值范围:1000-5000ms 微分时间Td:设定微分时间常数,就是对于相同的输出调节量,微分项超前于比例项响应的时间。一般取值为0反向作用:输出值取反。 增量型输出:控制器输出为增量型。 5、运行时的 *** 作:手动/自动,自动时,控制器调节作用投入。手动时,控制器输出为手动设定值经过量程转换后的实际值。手动设定为M,是YOUT的值。手动值设定(上/下),每次点击手动设定值增加/减少1%6、运行时的参数设置:如图12所示标准型PID参数:比例系数、积分常数、微分常数,PID的常规参数反向作用:输出值取反手动情况下设定手动调节比率:图12 PID参数设置三、目前不支持的功能:1、增量型对象暂时不易实现。2、控制周期不能低于采样周期。

基本的PID可以用运放+电容组成比例积分-比例微分电路即可,可以自己计算,计算误差不大。缺点是不方便改变参数。

现代新的方案一般采用单片机用数字化方式实现PID,这可以增加很多新功能,例如积分限幅/积分分离/自整定/人工智能等等

首先,熟悉你所用的单片机或其他控制芯片的硬件资源和性能,确定好控制精度,然后将采样值PID通过算法转化为PWM的占空比输出。其实只要写个程序实现PID的计算式即可,PID难的是调参数……例如:signed int PIDCalcOnce(signed int InputValue, signed int Target)

{

signed int Value;

signed int Excursion,D;Excursion=Target-InputValue;// 偏差I+=Excursion; // 积分

if(I>Integral_MAX)I=Integral_MAX;

if(I<-Integral_MAX)I=-Integral_MAX;//积分上限D=InputValue-OldInputValue;// 当前微分

OldInputValue=InputValue;Value = ExcursionPx+IIx-DDx;

if(Value>MAX_Adjust)Value=MAX_Adjust;

if(Value<-MAX_Adjust)Value=-MAX_Adjust;//最大调节限制

return (Value);}只是算法别照搬……增量式的PID自己下去多查查吧

原因在于这几句:

if u(k)>164

u(k)=164;

end

你对PID的控制量做了限制,也就是PID最大输出164,得加大PID输出才能跟上你的设定值2

从传递函数上看你这个系统的增益很大,稳定性很差,从根轨迹图上看离散系统就不是稳定系统,虽然连续系统是稳定的。所以这个PID的控制量稍微一大系统就发散掉了,故程序对控制量做了限制。

去掉上面那几句之后,我粗调了一个Kp=4,Ki=005,如下图,控制效果不好,最后能稳定。主要还是控制系统几乎是处于临界稳定状态。

以上就是关于广义预测控制+经典PID控制如何用matlab编程实现在工业上如何实现控制(硬件平台)请这方面的高手帮助全部的内容,包括:广义预测控制+经典PID控制如何用matlab编程实现在工业上如何实现控制(硬件平台)请这方面的高手帮助、组态王里面的PID控制怎么弄的、PID算法是否通过程序上通过设定P、I和D的值来实现比例积分微分环节,而非硬件上加入PID环节等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9855286.html

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

发表评论

登录后才能评论

评论列表(0条)

保存