基于atmega32單片機(jī)專家系統(tǒng)的智能PID控制方案解析
本系統(tǒng)以AVR系列的atmega32單片機(jī)為核心,通過設(shè)置atmega32的PWM控制寄存器產(chǎn)生脈寬可調(diào)的PWM波,對(duì)比例電磁閥的輸入電壓進(jìn)行調(diào)制,從而實(shí)現(xiàn)了對(duì)氣體流量的變量控制。單片機(jī)通過均速管流量計(jì)采集實(shí)際流量信號(hào),根據(jù)該信號(hào)在其內(nèi)部采用數(shù)字PID算法對(duì)PWM控制寄存器的值進(jìn)行修改,從而達(dá)到精確的變量控制。為了防止外界干擾信號(hào)進(jìn)入控制系統(tǒng),單片機(jī)和均速管之間采用光電隔離,提高了系統(tǒng)的可靠性。
由均速管流量計(jì)對(duì)氣體額流量進(jìn)行監(jiān)測,該種流量計(jì)屬差壓式流量計(jì),由單點(diǎn)測速的皮托管演變發(fā)展而來,基于流體力學(xué)能量守衡原理,遵從伯努利定律,控制氣體流量采用比例電磁閥。通過4×4鍵盤和128×64液晶模塊實(shí)現(xiàn)人機(jī)對(duì)話,便于用戶操作。
流量控制算法
考慮氣動(dòng)泵泵氣過程的非線性等因素,采用了人類專家的知識(shí)和求解問題的啟發(fā)式規(guī)則來構(gòu)造專家控制器,從而實(shí)現(xiàn)流量的智能控制,保證氣動(dòng)泵供氣的穩(wěn)定性。
1 基于專家系統(tǒng)的智能PID控制簡介
專家系統(tǒng)主要有五部分:知識(shí)庫、數(shù)據(jù)庫、推理機(jī)、解釋部分和知識(shí)獲取部分。本系統(tǒng)的被控對(duì)象具有比較大的非線性、滯后性等特性,考慮到對(duì)其控制性能、可靠性、實(shí)時(shí)性的要求,將專家系統(tǒng)簡化,不設(shè)人機(jī)自然語言對(duì)話,將知識(shí)庫、規(guī)則集縮小,于是專家系統(tǒng)變成了專家控制器,從而能使專家系統(tǒng)在控制器上實(shí)現(xiàn)。
基于專家系統(tǒng)的智能PID控制器。專家知識(shí)庫是根據(jù)熟練操作工或?qū)<业慕?jīng)驗(yàn)和知識(shí),把各種工況下被控對(duì)象特性所對(duì)應(yīng)的PID參數(shù)記錄在數(shù)據(jù)庫中而形成;數(shù)據(jù)庫存放被控對(duì)象的輸入和輸出信號(hào)、給定信號(hào)(即獲得了偏差和偏差變化率);邏輯推理機(jī)則從數(shù)據(jù)庫中取出實(shí)際運(yùn)行數(shù)據(jù),根據(jù)給出的推理機(jī)制,從專家知識(shí)庫中選擇合適的參數(shù),實(shí)現(xiàn)參數(shù)自整定PID控制。
2 流量的專家PID控制
在軍工業(yè)生產(chǎn)中,當(dāng)我們不完全了解一個(gè)系統(tǒng)和被控對(duì)象,或被控對(duì)象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模型時(shí),這個(gè)時(shí)候往往采用PID控制技術(shù)最為方便。PID算法以其結(jié)構(gòu)簡單、穩(wěn)定性好、工作可靠、高速方便而成為工業(yè)控制的主要技術(shù)之一。PID控制器就是根據(jù)系統(tǒng)的誤差,利用比例、積分、微分計(jì)算出控制量進(jìn)行控制的。系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須通過經(jīng)驗(yàn)和現(xiàn)場調(diào)試來確定。
模擬PID控制器的控制規(guī)律為:
(1)
式中,KP—比例系數(shù);TI—積分常數(shù);TD—微分常數(shù);u0—控制常量。
由于單片機(jī)控制是一種采樣控制,它只能根據(jù)采樣時(shí)刻的偏差值計(jì)算控制量,而不能像模擬控制那樣連續(xù)輸出控制量,進(jìn)行連續(xù)控制;并且,單片機(jī)處理數(shù)據(jù)的量有限,綜合考慮該系統(tǒng)采用增量式PID控制,其算式為:
u(k)=u(k-1)+Δu(k) (2)
Δu(k)=KP[e(k)-e(k-1)]+KIe(k) +KD[e(k)-2e(k-1)+e(k-2)] (3)
氣體流量值經(jīng)過比例換算之后作為氣泵的給定值,通過PID控制器的輸出來控制氣泵的流量。e(k)為氣泵給定流量與實(shí)際測量值的偏差;e(k-1)為上一時(shí)刻的誤差值;e(k-2)為上一采樣時(shí)刻的誤差值。KP是解決幅值震蕩,KP大了會(huì)出現(xiàn)幅值震蕩的幅度大,但震蕩頻率小,系統(tǒng)達(dá)到穩(wěn)定時(shí)間長;KI是解決動(dòng)作響應(yīng)速度快慢的,KI大了響應(yīng)速度慢,反之則快;KD是消除靜態(tài)誤差的,一般KD設(shè)置都比較小,而且對(duì)系統(tǒng)影響比較小。
由于氣體流量測量的特殊性以及氣體控制過程中的非線性、時(shí)變、滯后等特性,采用上述PID控制算法不能達(dá)到令人滿意的效果,由此采用輔以專家控制規(guī)則來進(jìn)行補(bǔ)償控制。根據(jù)氣泵偏差及其變化率,本文提出的控制器按以下6種情況進(jìn)行設(shè)計(jì):
①當(dāng)|e(k)|>M1(PWM波的幅值)時(shí),說明誤差絕對(duì)值已經(jīng)很大。不論誤差變化趨勢如何,都應(yīng)考慮控制器的輸出應(yīng)按最大(或最?。┹敵觯赃_(dá)到迅速調(diào)整誤差,使誤差絕對(duì)值以最大速度減小。
Δu(k)=Δumax或者Δu(k)= -Δumax (4)
此時(shí),系統(tǒng)相當(dāng)于實(shí)施開環(huán)控制。
②當(dāng)e(k)·Δe(k)≥0時(shí),誤差在朝絕對(duì)值增大方向變化,或誤差為常值,未發(fā)生變化。如果此時(shí)|e(k)|>M2(設(shè)定的誤差界限),說明誤差也較大,可考慮由控制器實(shí)施較強(qiáng)的控制作用,以達(dá)到使誤差絕對(duì)值朝減小方向變化,并迅速減小誤差的絕對(duì)值,調(diào)節(jié)器輸出可為
Δu(k)=KI{KP[e(k)-e(k-1)]+KIe(k)+KD[e(k)-2e(k-1)+e(k-2)]} (KI>1) (5)
如果|e(k)| ③當(dāng)e(k)·Δe(k)<0、Δe(k)·Δe(k-1)>0或者e(k)=0時(shí),說明誤差在朝減小的方向變化,或者已經(jīng)達(dá)到平衡狀態(tài)。此時(shí)可考慮采取保持控制器的輸出不變,輸出為 Δu(k)=0 (6) ④當(dāng)e(k)·Δe(k)<0、Δe(k)·Δe(k-1)<0時(shí),誤差處于極值狀態(tài),系統(tǒng)出現(xiàn)振蕩現(xiàn)象。如果此時(shí)誤差的絕對(duì)值較大,即|e(k)|≥M2,則采用較強(qiáng)的控制作用。 Δu(k)=K2KPe(k) (K2<1) (7) 反之則考慮實(shí)施較弱的控制作用。 Δu(k)=K3KPe(k) (K3<1)(8) ⑤當(dāng)|e(k)|<&epSILon;,ε為一任意小的正數(shù),可取為0.001。此時(shí)誤差很小,考慮加入積分環(huán)節(jié),減少穩(wěn)態(tài)誤差。控制算法為普通比例加積分控制 Δu(k)=KP[e(k)-e(k-1)] +KIe(k) (9) ⑥當(dāng)e(k)=0時(shí),說明系統(tǒng)已經(jīng)達(dá)到平衡狀態(tài),此時(shí)可考慮維持當(dāng)前控制量不變。調(diào)試發(fā)現(xiàn)當(dāng)誤差達(dá)到控制精度要求后可維持當(dāng)前控制量不變,從而避免小范圍的波動(dòng)使被控對(duì)象更快穩(wěn)定下來。 綜上所述,系統(tǒng)調(diào)節(jié)器控制規(guī)律實(shí)際相當(dāng)于變結(jié)構(gòu)PID控制器,根據(jù)誤差及誤差變化情況選擇不同的控制規(guī)律,以便使系統(tǒng)迅速達(dá)到給定流量值。 硬件部分 1PWM控制原理 PWM控制功率輸出級(jí)為開關(guān)型結(jié)構(gòu),功耗小。在功率驅(qū)動(dòng)放大電路中需要將PWM輸出的電壓信號(hào)轉(zhuǎn)換為比例電磁鐵的電流控制信號(hào)。因此,可采用大功率場效應(yīng)晶體管IRF540,它能夠提供足夠大的電流驅(qū)動(dòng)比例閥的比例電磁鐵等效線圈,通過調(diào)整單片機(jī)的PWM波就可以實(shí)現(xiàn)電磁閥輸入電壓占空比的調(diào)節(jié),從而實(shí)現(xiàn)對(duì)流量的調(diào)節(jié)。 PWM控制系統(tǒng)是非線性、非連續(xù)控制系統(tǒng)。其控制原理:先給被控參數(shù)設(shè)定一個(gè)期望值,接著該參數(shù)與測得的實(shí)際值經(jīng)比較環(huán)節(jié)得出誤差信號(hào),誤差信號(hào)再與一個(gè)三角波信號(hào)經(jīng)比較器進(jìn)行比較,當(dāng)誤差信號(hào)大于三角波信號(hào)時(shí),就輸出脈沖,反之不輸出,因此,比較器輸出一系列等振幅不等寬的矩形波,其脈沖寬度與誤差信號(hào)成線性關(guān)系。根據(jù)該原理,采用PWM控制器輸出的脈沖去觸發(fā)開關(guān),開關(guān)再去觸發(fā)執(zhí)行機(jī)構(gòu),執(zhí)行機(jī)構(gòu)按脈沖寬度的時(shí)間動(dòng)作,從而達(dá)到自動(dòng)控制參數(shù)的目的。 式中,M為PWM波的幅值;T為PWM的脈沖周期;Tk為PWM波的采樣時(shí)間,k=0,1,2,3,…;b為比例系數(shù)。 2 比例電磁閥 比例電磁閥在20世紀(jì)60年代末就已經(jīng)得到了應(yīng)用,最初是用于液壓控制系統(tǒng),隨著單片機(jī)和集成電路的發(fā)展,其逐漸應(yīng)用到各種氣體的流量控制中。比例型電磁鐵的工作原理如下:線圈通電后,軛鐵和銜鐵內(nèi)部產(chǎn)生磁通并產(chǎn)生電磁吸力,將銜鐵吸向軛鐵,同時(shí)銜鐵上的彈簧受到壓縮,當(dāng)銜鐵上的電磁力和彈簧力平衡時(shí),銜鐵停止位移。比例型電磁鐵的銜鐵運(yùn)動(dòng)時(shí),氣隙保持恒定,即銜鐵在有效行程范圍內(nèi),吸力保持恒定,而電磁鐵的吸力在有效行程范圍內(nèi)和線圈的電流大小成正比。目前,過程控制用比例電磁閥均為單級(jí)閥,和普通單級(jí)電磁閥區(qū)別不大,如圖4所示。控制信號(hào)進(jìn)入控制器放大后,在比例電磁鐵線圈的兩端加上一定的電壓,轉(zhuǎn)換成一定的電流信號(hào),驅(qū)動(dòng)銜鐵(即閥芯)開啟,閥芯上的電磁力和彈簧力平衡后,閥門的開度不變;輸入信號(hào)變化,閥門的開度也發(fā)生變化,從而達(dá)到控制所需參數(shù)的目的。 軟件部分 1 PWM波的產(chǎn)生 設(shè)計(jì)采用單片機(jī)atmega32產(chǎn)生PWM信號(hào)。atmega32的定時(shí)/計(jì)數(shù)器的PWM模式可以分成快速PWM和頻率(相位)調(diào)整PWM兩大類。本設(shè)計(jì)采用快速PWM模式,快速PWM可以得到比較高頻率的PWM輸出,響應(yīng)比較快,因此具有很高的實(shí)時(shí)性。此時(shí)計(jì)數(shù)器僅工作在單程正向計(jì)數(shù)方式,計(jì)數(shù)器的上限值決定PWM的頻率,而比較匹配寄存器的值決定了占空比的大小??焖貾WM模式的控制寄存器設(shè)置如下: //輸出端口初始化 PORTD=0x44; DDRD=0x20; //T/C1初始化 TCCR1A=0xC3;/*比較匹配時(shí)OC