基于PID增量式算法的液位控制设计.doc

上传人:小飞机 文档编号:1602456 上传时间:2022-12-10 格式:DOC 页数:7 大小:111KB
返回 下载 相关 举报
基于PID增量式算法的液位控制设计.doc_第1页
第1页 / 共7页
基于PID增量式算法的液位控制设计.doc_第2页
第2页 / 共7页
基于PID增量式算法的液位控制设计.doc_第3页
第3页 / 共7页
基于PID增量式算法的液位控制设计.doc_第4页
第4页 / 共7页
基于PID增量式算法的液位控制设计.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《基于PID增量式算法的液位控制设计.doc》由会员分享,可在线阅读,更多相关《基于PID增量式算法的液位控制设计.doc(7页珍藏版)》请在三一办公上搜索。

1、基于PID增量式算法的液位控制设计摘要:本设计用VB实现液位控制的前台界面(一阶单容水箱液位控制),使用增量式PID算法构成单回路闭环控制,通过调节比例放大系数、积分时间、微分时间常数在允许的误差内来使系统稳定达到了期望的液位控制。矚慫润厲钐瘗睞枥庑赖賃軔朧碍鳝绢。关键字:增量式PID;VB;液位控制一 引言人们生活以及工业生产经常涉及到液位和流量的控制问题,例如饮料、食品加工,居民生活用水的供应,溶液过滤,污水处理,化工生产等多种行业的生产加工过程, 通常要使用蓄液池。蓄液池中的液位需要维持合适的高度,太满容易溢出造成浪费,过少则无法满足需求。因此,需要设计合适的控制器自动调整蓄液池的进出流

2、量,使得蓄液池内液位保持正常水平,以保证产品的质量和生产效益。这些不同背景的实际问题都可以简化为某种水箱的液位控制问题。因此液位是工业控制过程中一个重要的参数。特别是在动态的状态下,采用适合的方法对液位进行检测、控制,能收到很好的生产效果。水箱液位控制系统的设计应用非常广泛,可以把一个复杂的液位控制系统简化成一个水箱液位控制系统来实现。聞創沟燴鐺險爱氇谴净祸測樅锯鳗鲮。二PID控制的原理和特点在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术

3、之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。残骛楼諍锩瀨濟溆塹籟婭骒東戇鳖納。1.比例(P)控制比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)

4、。酽锕极額閉镇桧猪訣锥顧荭钯詢鳕驄。2.积分(I)控制在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。彈贸摄尔霁毙攬砖卤庑诒尔肤亿鳔简。3.微分(D

5、)控制在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控謀荞抟箧飆鐸怼类蒋薔點鉍杂篓

6、鳐驱。量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。厦礴恳蹒骈時盡继價骚卺癩龔长鳏檷。图1.连续模拟PID控制图三增量式PID控制原理当执行结构需要的是控制量的增量时,应采用增量式PID控制。根据递推原理可得:增量式PID控制算法:根据增量式PID原理,基于VB语言设计模型的程序如下:Dim invalve As IntegerDim outvalve As IntegerDim mode As IntegerDim error As IntegerDim supply As IntegerDim x As IntegerDim y

7、As IntegerDim Kp As LongDim Ti As LongDim Td As LongDim output As IntegerDim pv As LongDim pvgraph(100) As IntegerDim sp As LongPrivate Sub Command1_Click() 手动Shape14.FillStyle = 0Shape15.FillStyle = 1mode = 0HScroll2.Enabled = TrueEnd SubPrivate Sub Command2_Click() 自动Shape14.FillStyle = 1Shape15.F

8、illStyle = 0mode = 1HScroll2.Enabled = FalseEnd SubPrivate Sub Form_Load()VScroll1.Value = 0Shape13.Top = 4695 - VScroll1.ValueShape13.Height = VScroll1.ValueShape4.Top = (4695 - pv)Shape4.Height = pvText1.Text = VScroll1.Valuesupply = 2000HScroll1.Value = 0Label1.Caption = HScroll1.Valueinvalve = (

9、HScroll1.Value * (supply / 100) / 60outvalve = 0Label2.Caption = 0Text2.Text = pv Shape15.FillStyle = 1 Shape14.FillStyle = 0 mode = 0 HScroll2.Enabled = TrueKp = Val(Text3)Ti = Val(Text4)Td = Val(Text5)VScroll1.Value = 1000Shape13.Top = 4695 - VScroll1.ValueShape13.Height = VScroll1.ValueShape4.Top

10、 = 4695 - pvShape4.Height = pvText1.Text = VScroll1.Valuesp = VScroll1.ValuePicture1.ClsPicture1.ScaleMode = 3Picture1.ScaleHeight = 3105Picture1.ScaleWidth = 100Picture1.AutoRedraw = TruePicture1.ForeColor = vbBluePicture1.DrawStyle = 0Picture1.DrawWidth = 2End SubPrivate Sub HScroll1_Change()Label

11、1.Caption = HScroll1.Valueinvalve = (HScroll1.Value * (supply / 100) / 60End SubPrivate Sub HScroll2_Change()Label2.Caption = HScroll2.Valueoutvalve = (HScroll2.Value * 30) / 60End SubPrivate Sub Timer1_Timer()On Error Resume Next If Text3 100 Then Text3 = 100 End IfKp = Val(Text3) If Text4 200 Then

12、 Text4 = 200 End IfTi = Val(Text4) If Text5 120 Then Text5 = 120 End IfTd = Val(Text5) If pv 0 Then pv = pv - outvalve End IfText2.Text = pvtank If mode = 1 Then Shape18.FillStyle = 1 pidloop Picture1.Clspvgraph(100) = pvFor x = 0 To 99pvgraph(x) = pvgraph(x + 1) Picture1.PSet (x, 3000 - (pvgraph(x)

13、Next xPicture1.Line (0, 3000 - sp)-(100, 3000 - sp), vbGreen茕桢广鳓鯡选块网羈泪镀齐鈞摟鳎饗。 End If If Text2 2775 ThenShape18.FillStyle = 0HScroll1.Value = 0HScroll2.Value = 100End If End Sub Private Sub VScroll1_Change()Shape13.Top = 4695 - VScroll1.ValueShape13.Height = VScroll1.Valuesp = VScroll1.ValueText1.Tex

14、t = VScroll1.ValueEnd Sub Private Sub tank()If HScroll1.Value 0 Then Shape17.FillStyle = 0 Shape8.FillStyle = 0 Shape9.FillStyle = 0 Else: Shape17.FillStyle = 1 Shape8.FillStyle = 1 Shape9.FillStyle = 1End IfIf pv -1 Then Shape4.Top = 4695 - pvShape4.Height = pv End If If (pv 0) Or (HScroll1.Value 0

15、) Then Shape10.FillStyle = 0 Else: Shape10.FillStyle = 1 End If If (HScroll2.Value 0) And (pv 0) Then Shape11.FillStyle = 0 Else: Shape11.FillStyle = 1 End IfEnd SubPrivate Sub pidloop()Dim doutput As IntegerDim e As IntegerDim e1 As IntegerDim e2 As Integere = sp - pvdoutput = (Kp / 100) * (e - e1)

16、 + (gain / 100) * 60 / Ti) * e + (Kp / 100) * Td / 60) * (e - 2 * e1 + e2)鹅娅尽損鹌惨歷茏鴛賴縈诘聾諦鳍皑。e2 = e1e1 = eoutput = output + doutputIf output 100 Then clamp output valve between 0 and 100%籟丛妈羥为贍偾蛏练淨槠挞曉养鳌顿。 output = 100End IfIf output 0 Then output = 0End IfHScroll2.Value = 100 - output Change slider value (AUTO MODE)預頌圣鉉儐歲龈讶骅籴買闥龅绌鳆現。Label2.Caption = HScroll2.ValueEnd Sub1.仿真曲线如下:2.增大Kp.随着比例放大系数的增大,系统快速性变好且余差稍减小。四.结论通过仿真图像可以看到液位基本达到预期的效果,通过整定得到Kp=0.2,Ti=150,Td=10时液位控制较好些。存在不足的地方是液位在设定值附近震荡,这是未解决的问题。渗釤呛俨匀谔鱉调硯錦鋇絨钞陉鳅陸。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号