基于LabVIEW與MATLAB的模糊參數(shù)自整定PID控制
1 引言
傳統(tǒng)的PID控制器結(jié)構(gòu)簡單,穩(wěn)定性好,可靠性高,制造技術(shù)成熟,已廣泛應(yīng)用于工業(yè)生產(chǎn)過程的控制中。但它主要適用于控制具有確切模型的線性過程,而對(duì)于具有非線性、大滯后和時(shí)變不確定的系統(tǒng),則無法達(dá)到理想的控制效果。人工智能的興起和快速發(fā)展為控制領(lǐng)域提供了全新的方法。模糊控制是人工智能控制的一個(gè)重要分支,它是運(yùn)用模糊數(shù)學(xué)的基本理論和方法,把規(guī)則的條件、操作用模糊集表示,并把這些模糊控制規(guī)則及有關(guān)信息作為知識(shí)存入計(jì)算機(jī)知識(shí)庫中,然后計(jì)算機(jī)根據(jù)控制系統(tǒng)的實(shí)際響應(yīng)情況,運(yùn)用模糊推理決定系統(tǒng)控制量的大小。將模糊理論與PID控制策略相結(jié)合,可實(shí)現(xiàn)對(duì)PID參數(shù)在線自適應(yīng)調(diào)整,使系統(tǒng)既具有模糊控制的靈活、適應(yīng)性強(qiáng)的優(yōu)點(diǎn),又具有PID控制精度高的特點(diǎn)。模糊控制器是當(dāng)前控制領(lǐng)域的研發(fā)熱點(diǎn)之一,其研發(fā)的方法不盡相同。本文闡述了利用LabVIEW與MATLAB混合編程技術(shù)將MATLAB中的模糊邏輯工具箱(FIS Toolbox)與LabVIEW虛擬儀器開發(fā)軟件集成,研制出模糊參數(shù)自整定PID虛擬控制器,并實(shí)現(xiàn)了對(duì)非線性系統(tǒng)的實(shí)時(shí)測(cè)控。
2 Fuzzy-PID控制策略
模糊參數(shù)自整定PID控制器以系統(tǒng)偏差E和偏差變化EC作為輸入,可以滿足不同時(shí)刻的E和EC對(duì)PID參數(shù)自整定的要求。利用模糊控制規(guī)則在線對(duì)PID參數(shù)進(jìn)行修改,便可構(gòu)成模糊參數(shù)自整定PID控制系統(tǒng)(以下稱Fuzzy-PID控制系統(tǒng)),其結(jié)構(gòu)如圖1所示:
3 控制器設(shè)計(jì)
模糊控制設(shè)計(jì)的核心是總結(jié)工程設(shè)計(jì)人員的技術(shù)知識(shí)和實(shí)際操作經(jīng)驗(yàn),建立合適的模糊規(guī)則表,并組建一個(gè)推理結(jié)構(gòu),實(shí)現(xiàn)模糊規(guī)則。
3.1 模糊規(guī)則表的建立
3.2 FIS 推理結(jié)構(gòu)的編輯
在MATLAB中,對(duì)于FIS結(jié)構(gòu)的編輯方法有兩種,一種是直接編程,另外一種是利用FIS編輯器。本文采用FIS編輯器與Simulink相結(jié)合的方法。
在MATLAB命令窗口中輸入Fuzzy,打開基本FIS編輯器,編輯步驟如下:
3.4 模糊控制器的設(shè)計(jì)
LabVIEW與MATLAB在應(yīng)用領(lǐng)域方面?zhèn)戎攸c(diǎn)不同,各有優(yōu)勢(shì)領(lǐng)域。因此,在工程中利用兩者間的混合編程優(yōu)勢(shì)互補(bǔ),對(duì)于開發(fā)功能更為強(qiáng)大的智能化虛擬儀器具有巨大的推動(dòng)作用。本文利用LabVIEW內(nèi)部集成的MATLAB Script Node實(shí)現(xiàn)兩者混合編程,完成模糊參數(shù)自整定PID的設(shè)計(jì),控制器的設(shè)計(jì)程序如圖5所示。
Fuzzy-PID的程序框圖由一個(gè)while循環(huán)組成,在while循環(huán)內(nèi)實(shí)現(xiàn)手自動(dòng)切換、偏差處理、參數(shù)調(diào)整、控制器初始化、調(diào)用模型動(dòng)態(tài)鏈接庫文件等功能。這個(gè)while循環(huán)每次被調(diào)用時(shí)只執(zhí)行一次。這里使用循環(huán)的目的是利用while循環(huán)的移位寄存器來保存數(shù)據(jù)。移位寄存器可用于將上一次循環(huán)的值傳遞至下一次循環(huán),因此可以借助移位寄存器記錄程序的運(yùn)行狀態(tài)和中間結(jié)果,它們?cè)诔绦蛟俅伪徽{(diào)用時(shí)將被用到。上圖中的移位寄存器第一個(gè)作為手動(dòng)輸出的保持器保持保存手動(dòng)輸出值,第二個(gè)寄存器記錄控制器的運(yùn)行狀態(tài)。兩個(gè)結(jié)合起來實(shí)現(xiàn)控制器的手自動(dòng)無擾動(dòng)切換。
4 控制器的應(yīng)用
為了檢驗(yàn)Fuzzy-PID控制器的實(shí)際控制效果,本文以北京華晟A3000高級(jí)過程控制實(shí)驗(yàn)系統(tǒng)中的非線性液位過程作為被控對(duì)象,用研華公司生產(chǎn)的ADAM4000 I/O模塊將所設(shè)計(jì)的控制器與被控對(duì)象連接,構(gòu)成了具有模糊自整定PID參數(shù)的控制系統(tǒng),并將該系統(tǒng)在受到干擾作用時(shí)的控制品質(zhì)與常規(guī)PID控制系統(tǒng)的控制品質(zhì)進(jìn)行比較。兩系統(tǒng)的控制效果如圖6所示。
由圖6可見,當(dāng)系統(tǒng)設(shè)定值或干擾發(fā)生較大的階躍變化時(shí),F(xiàn)uzzy-PID控制系統(tǒng)的抗干擾能力、跟蹤效果、控制品質(zhì)明顯優(yōu)于常規(guī)PID控制。
5 結(jié)論
在MATLAB環(huán)境下,使用模糊邏輯工具箱(FIS)搭建虛擬控制器的Fuzzy-PID算法,利用LabVIEW來設(shè)計(jì)人機(jī)界面、信號(hào)采集、數(shù)據(jù)處理與存儲(chǔ)等工程應(yīng)用中所需的其他功能,并通過運(yùn)用LabVIEW內(nèi)部所集成的“MATLAB Script Node”將LabVIEW與MATLAB混合編程,實(shí)現(xiàn)上述兩部分設(shè)計(jì)的集成,完成模糊自整定PID參數(shù)控制器的整機(jī)設(shè)計(jì)。Fuzzy-PID控制系統(tǒng)的實(shí)控結(jié)果表明,所設(shè)計(jì)的虛擬控制器對(duì)非線性特性較為嚴(yán)重的被控對(duì)象的控制,具有較強(qiáng)的自適應(yīng)能力和魯棒性,其控制品質(zhì)優(yōu)于常規(guī)PID控制器。