專利名稱:一種模糊PID算法ActiveX控件的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種模糊PID算法Active X控件的實(shí)現(xiàn)方法,屬于先進(jìn)控制方法的實(shí)現(xiàn)及應(yīng)用技術(shù)領(lǐng)域。
背景技術(shù):
Active X控件通過事件(單擊控件、鍵盤輸入等)觸發(fā)控件操作,方法和屬性則提供了控件為控件容器所使用的輸入輸出接口,并利用組態(tài)軟件對Windows標(biāo)準(zhǔn)ActiveX控件的協(xié)議支持,實(shí)現(xiàn)算法模塊與組態(tài)界面的數(shù)據(jù)連接,從而方便的調(diào)用控制算法。模糊PID算法作為一種先進(jìn)的智能控制算法,與常規(guī)PID控制相比具有無需建立被控對象的數(shù)學(xué)模型,對被控對象的時(shí)滯、非線性和時(shí)變性具有一定的適應(yīng)能力等優(yōu)點(diǎn),同時(shí)對噪聲也具有較強(qiáng)的抑制能力,即魯棒性較好,在工業(yè)、民用等眾多領(lǐng)域的應(yīng)用已初具規(guī) 模。目前,編寫模糊PID算法程序一般參照圖I所示的程序流程圖,主要包括輸入變量量化、模糊控制表運(yùn)算合成以及控制量輸出計(jì)算。圖I中,e為實(shí)際值與設(shè)定值的偏差,ec為偏差的變化量,Escope為e的基本論域即偏差范圍,Ecscope為ec的基本論域即偏差變化范圍,E為e的模糊集論域,EC為ec的模糊集論域,Δ ΚΡ,Δ K1^A Kd分別為P、I、D參數(shù)的調(diào)整量。首先,根據(jù)被控對象,給定程序采樣周期、E、EC、Escope、Ecscope、PID參數(shù)初始值、目標(biāo)設(shè)定值,以及Λ ΚΡ>Δ K1 >Δ Kd的基本論域KPscope、K1Scope' KDscope即控制量的實(shí)際調(diào)整范圍,計(jì)算e和ec并將計(jì)算值限定在各自的基本論域范圍內(nèi);然后,根據(jù)E和EC將e和ec的計(jì)算值模糊化并編寫模糊控制規(guī)則,經(jīng)模糊推理得到PID參數(shù)調(diào)整量的模糊值;最后,采用加權(quán)平均法將PID參數(shù)調(diào)整量解模糊至Λ Κρ,Δ Ki^AKd的基本論域中去,疊加到上一個(gè)程序掃描周期計(jì)算出的PID參數(shù)值上形成新的PID參數(shù),并應(yīng)用增量式PID算法公式計(jì)算輸出到被控對象的最終控制量。虛線框部分模糊控制表的運(yùn)算合成以及輸出控制量的計(jì)算,是算法程序開發(fā)的重點(diǎn)和難點(diǎn)。每次采樣并經(jīng)模糊控制算法給出的控制量,不能直接控制對象,必須將其轉(zhuǎn)換到控制對象能接受的基本論域中去,計(jì)算公式如下Δ Kp = Cp · kp,Δ K1 = C1 · ki, Δ Kd = Cd · kd其中,參數(shù)的調(diào)
kpkp D μ
整量;Cp、^、Cd為PID參數(shù)各調(diào)整量的比例系數(shù);kp、ki、kd為ΛΚΡ、AK1, Λ Kd在模糊集論域中由模糊控制規(guī)則判決得到的模糊值。最后,根據(jù)得到的PID參數(shù)調(diào)整量,按照增量式PID算法求出最終的控制量。因此,當(dāng)控件調(diào)用控制算法時(shí)必然造成計(jì)算機(jī)計(jì)算量大,負(fù)荷較重,容易引起系統(tǒng)的超調(diào)和振蕩,從而影響模糊PID算法對被控對象的在線、實(shí)時(shí)控制效果和控制精度。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決輸入變量量化、模糊控制表運(yùn)算合成以及控制量輸出計(jì)算在內(nèi)的模糊PID算法程序的開發(fā)工程繁復(fù),計(jì)算量大的問題,利用Matlab模糊控制工具箱的GUI工具將模糊控制表的運(yùn)算合成以及輸出控制量的計(jì)算進(jìn)行簡化,提出了一種模糊PID算法Active X控件的簡化實(shí)現(xiàn)方法。一種模糊PID算法Active X控件的實(shí)現(xiàn)方法,包括以下幾個(gè)步驟步驟I):設(shè)置變量、變量的隸屬度函數(shù)、模糊推理方法和反模糊化方法;步驟2):設(shè)置推理規(guī)則,確定e和ec的模糊值,得到PID輸出變量反模糊化后的 精確值kp、ki、kd,建立模糊控制決策查詢表;步驟3):通過VB,編寫模糊PID算法,并且創(chuàng)建Active X控件;本發(fā)明的優(yōu)點(diǎn)在于控件開發(fā)時(shí)不再需要編寫模糊推理過程的邏輯運(yùn)算程序,也不需要按照加權(quán)平均法計(jì)算PID參數(shù)的模糊調(diào)整量對應(yīng)于基本論域的輸出值ΛΚΡ、AK1,△ KD,不僅簡化了程序結(jié)構(gòu),程序的執(zhí)行周期也大大縮短,有利于加快系統(tǒng)的響應(yīng)速度。
圖I是本發(fā)明背景技術(shù)中的模糊PID算法的程序流程圖;圖2是本發(fā)明的方法流程圖;圖3是本發(fā)明模糊PID的模糊推理系統(tǒng)界面;圖4是本發(fā)明模糊PID的推理規(guī)則界面;圖5是本發(fā)明模糊PID的模糊推理規(guī)則觀察器界面;圖6是本發(fā)明基于VB環(huán)境的模糊PID控制器Active X控件開發(fā)界面。
具體實(shí)施例方式下面將結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。本發(fā)明采用Matlab⑶I工具的控件簡化實(shí)現(xiàn)方法,利用Matlab模糊控制工具箱的GUI工具,將模糊控制表的運(yùn)算合成以及輸出控制量的計(jì)算步驟離線完成,只需在程序中建立Λ ΚΡ、Δ K1, Δ Kd輸出查詢表,根據(jù)不同時(shí)刻模糊輸入變量E和EC的情況,查到相應(yīng)的ΛΚΡ、AK1, Λ Kd值,疊加到上一采樣周期計(jì)算出的PID參數(shù)上,得到新的PID參數(shù),進(jìn)而根據(jù)增量式PID算法公式計(jì)算出針對不同時(shí)刻,算法控件需要輸出到被控對象的控制量。本發(fā)明是一種模糊PID算法Active X控件的實(shí)現(xiàn)方法,流程如圖2所示,包括以下幾個(gè)步驟步驟I):設(shè)置變量、變量的隸屬度函數(shù)、模糊推理方法和反模糊化方法;在Matlab命令窗口輸入“Fuzzy”,彈出模糊推理系統(tǒng)編輯器窗口。在其Edit菜單中加入輸入變量e、ec和輸出變量kp、ki、kd,并為輸入變量、輸出變量選擇隸屬度函數(shù)。e為實(shí)際值與設(shè)定值的偏差,ec為偏差的變化量,kp、ki、kd為ΛΚΡ、AK1, AKd在模糊集論域中由模糊控制規(guī)則判決得到的模糊值,Λ ΚΡ、Λ K1,Δ Kd分別為P、I、D參數(shù)的調(diào)整量,模糊推理的“And”選為最小法,“Or”選為最大法,反模糊化方法選為加權(quán)平均法,如圖3所示。步驟2):設(shè)置推理規(guī)則,確定e和ec的模糊值,得到PID輸出變量反模糊化后的精確值kp、ki、kd,建立模糊控制決策查詢表;
在Edit菜單中選擇Rules,設(shè)置推理規(guī)則,如圖4所示。選擇View菜單中的Rules命令,在彈出的“Rule Viewer”窗口中,如圖5所示,根據(jù)被控對象的特性和控制要求,輸入偏差e和偏差的變化量ec的模糊值,如[O O],則可得到PID輸出變量反模糊化后的精確值kp、ki、kd。通過步驟I)和步驟2),利用 Matlab的⑶I工具可以自動(dòng)離線完成控制量輸出的計(jì)算,輸入E、EC后,得到其對應(yīng)的PID輸出變量反模糊化后的精確值,根據(jù)不同的輸入E、EC,得到其對應(yīng)的kp、ki、kd,生成模糊控制決策查詢表。步驟3):通過VB,編寫模糊PID算法,并且創(chuàng)建Active X控件;進(jìn)入VB編程環(huán)境,新建“Active X控件”工程1,Visual Basic將為新控件提供一個(gè)窗口,創(chuàng)建Active X控件的背景,在背景上創(chuàng)建模糊PID算法控制器的控件界面,如圖6所示,在控制界面上設(shè)置文本框,其中,“比例初值”、“積分初值”、“微分初值”是模糊PID算法的PID初始參數(shù)值;“設(shè)定值”為被控對象的控制目標(biāo)值;“測量值”為被控物理量的實(shí)際值;“誤差基本論域”、“誤差變化基本論域”分別為模糊PID算法輸入e和ec的實(shí)際變化范圍;“比例增量基本論域”、“積分增量基本論域”、“微分增量基本論域”分別為Active X控件輸出ΛΚΡ、ΛΚρ AKd的實(shí)際變化范圍;“比例終值”、“積分終值”、“微分終值”分別為模糊PID算法最終輸出的PID參數(shù)值;時(shí)鐘是為調(diào)用模糊PID算法的定時(shí)器。采用周期定時(shí)的方式調(diào)用模糊PID算法??丶姓{(diào)用的定時(shí)器時(shí)間間隔參數(shù)與控件的采樣時(shí)間應(yīng)保持一致。時(shí)間間隔太短,計(jì)算機(jī)計(jì)算量大,負(fù)荷較重,容易引起系統(tǒng)的超調(diào)和振蕩;如果時(shí)間間隔太長,控制緩慢系統(tǒng)的調(diào)節(jié)時(shí)間會加長。為創(chuàng)建的每個(gè)文本框添加屬性、事件和方法,VB菜單欄中選擇“工程”,然后“添加用戶控件”,然后“VB Active X控件界面向?qū)А?,為控件添加屬性、事件和方法。由于算法用在工程?shí)際中的控制對象不同,所配置算法的“比例初值”、“積分初值”、“微分初值”、“設(shè)定值”、“誤差基本論域”、“誤差變化基本論域”、“比例增量基本論域”、“積分增量基本論域”、“微分增量基本論域”都不同,這些參數(shù)需要用戶根據(jù)自己的實(shí)際情況進(jìn)行設(shè)置;而“測量值”、“比例終值”、“積分終值”、“微分終值”是控件根據(jù)模糊PID算法得到的實(shí)際輸出值,因此,將這些參數(shù)都設(shè)為控件的屬性,并且添加屬性值的讀取/賦值代碼,通過文本框給屬性賦值并顯示檢測置和控制量的輸出值,而模糊PID算法設(shè)為控件的方法,以便調(diào)用。根據(jù)模糊PID算法得到“測量值”、“比例終值”、“積分終值”、“微分終值”,最后得到控制量,將控制量輸出給被控對象,對被控對象進(jìn)行控制。所述的模糊PID算法具體為用戶根據(jù)實(shí)際情況設(shè)置“比例初值”、“積分初值”、“微分初值”、“設(shè)定值”、“誤差基本論域”、“誤差變化基本論域”、“比例增量基本論域”、“積分增量基本論域”、“微分增量基本論域”,通過上述參數(shù),得到e和ec的值,對模糊控制決策查詢表進(jìn)行查詢,得到得到其對應(yīng)的 kp、ki、kd 值。步驟4):注冊Active X控件。執(zhí)行Windows系統(tǒng)“開始\運(yùn)行”命令,在出現(xiàn)的對話框中輸入“regSvr32〈控件所在路徑>\模糊PID算法控件.ocx”,注冊該Active X控件。根據(jù)被控對象的特性和控制要求,在GUI工具中對輸入變量e (實(shí)際值與設(shè)定值的誤差)、ec (實(shí)際值與設(shè)定值的誤差變化率)、輸出變量P (比例)、1 (積分)、D (微分)進(jìn)行模糊量化等級劃分,選擇各變量的隸屬度函數(shù),并針對各模糊量化等級編制相應(yīng)的模糊控制規(guī)則。這樣,GUI工具即可自動(dòng)完成控制量輸出的計(jì)算工作,用戶可在模糊推理規(guī)則觀察器中查詢不同e和ec輸入時(shí)P、I、D參數(shù)的相應(yīng)輸出精確量。因此,只需在Active X控件的VB開發(fā)程序中建立相應(yīng)的模糊控制決策查詢表,當(dāng)程序同時(shí)滿足模糊化后的某個(gè)e和ec數(shù)值時(shí),查模糊控制決策表,即可得到相應(yīng)時(shí)刻、相應(yīng)狀態(tài)的P、I、D三個(gè)參數(shù)的輸出精確量,然后根據(jù)增量式PID公式計(jì)算出對被控對象的控制輸出量。至此,模糊PID算法的Active X控件開發(fā)完畢。利用Matlab模糊控制工具箱的GUI工具離線計(jì)算相應(yīng)時(shí)刻、相應(yīng)狀態(tài)的PID輸出精確量,簡化了控件開發(fā)過程中的程序量和運(yùn)行過程中計(jì)算機(jī)的執(zhí)行量,不僅簡化了程序結(jié)構(gòu),程序的執(zhí)行周期也大大縮短,有利于加快系統(tǒng)的響應(yīng)速度,提高被控對象的控制精度和控制效果。目前,組態(tài)軟件基本都支持通用控件的嵌入使用,因此將控制算法設(shè)計(jì)成控件的形式,在組態(tài)軟件中嵌入使用,其數(shù)據(jù)傳輸是程序內(nèi)部的數(shù)據(jù)通訊,實(shí)時(shí)性好??丶惶峁┧惴丶慕涌?,在執(zhí)行控制策略的畫面中,用戶只須調(diào)用這些算法控件,輸入必要的參數(shù) 和數(shù)據(jù)連接即可方便快捷地完成相應(yīng)的控制策略。
權(quán)利要求
1.ー種模糊PID算法Active X控件的實(shí)現(xiàn)方法,其特征在于,包括以下幾個(gè)步驟 步驟I):設(shè)置變量、變量的隸屬度函數(shù)、模糊推理方法和反模糊化方法; 在Matlab命令窗ロ輸入“Fuzzy”,彈出模糊推理系統(tǒng)編輯器窗ロ ;在其Edit菜單中加入輸入變量e、ec和輸出變量kp、ki、kd,并為輸入變量、輸出變量選擇隸屬度函數(shù);e為實(shí)際值與設(shè)定值的偏差,ec為偏差的變化量,kp、ki、kd為ΛΚΡ、AK1, AKd在模糊集論域中由模糊控制規(guī)則判決得到的模糊值,Δ Kp,Δ K1.Λ Kd分別為P、I、D參數(shù)的調(diào)整量,模糊推理的“And”選為最小法,“Or”選為最大法,反模糊化方法選為加權(quán)平均法; 步驟2):設(shè)置推理規(guī)則,確定e和ec的模糊值,得到PID輸出變量反模糊化后的精確值kp、ki、kd,建立模糊控制決策查詢表; 在Edit菜單中選擇Rules,設(shè)置推理規(guī)則;選擇View菜單中的Rules命令,在彈出的“Rule Viewer”窗ロ中,根據(jù)被控對象的特性和控制要求,輸入偏差e和偏差的變化量ec的模糊值,得到PID輸出變量反模糊化后的精確值kp、ki、kd ; 通過步驟I)和步驟2),利用Matlab的⑶I工具可以自動(dòng)離線完成控制量輸出的計(jì)算,輸入E、EC后,得到其對應(yīng)的PID輸出變量反模糊化后的精確值,根據(jù)不同的輸入E、EC,得到其對應(yīng)的kp、ki、kd,生成模糊控制決策查詢表; 步驟3):通過VB,編寫模糊PID算法,并且創(chuàng)建Active X控件; 進(jìn)入VB編程環(huán)境,新建“Active X控件”工程,Visual Basic將為新控件提供ー個(gè)窗ロ,創(chuàng)建Active X控件的背景,在背景上創(chuàng)建模糊PID算法控制器的控件界面,在控制界面上設(shè)置文本框,其中,“比例初值”、“積分初值”、“微分初值”是模糊PID算法的PID初始參數(shù)值;“設(shè)定值”為被控對象的控制目標(biāo)值;“測量值”為被控物理量的實(shí)際值;“誤差基本論域”、“誤差變化基本論域”分別為模糊PID算法輸入e和ec的實(shí)際變化范圍;“比例増量基本論域”、“積分增量基本論域”、“微分増量基本論域”分別為Active X控件輸出ΛΚΡ、AK1.AKd的實(shí)際變化范圍;“比例終值”、“積分終值”、“微分終值”分別為模糊PID算法最終輸出的PID參數(shù)值;時(shí)鐘是為調(diào)用模糊PID算法的定時(shí)器;采用周期定時(shí)的方式調(diào)用模糊PID算法;控件中調(diào)用的定時(shí)器時(shí)間間隔參數(shù)與控件的采樣時(shí)間應(yīng)保持一致; 為創(chuàng)建的每個(gè)文本框添加屬性、事件和方法,VB菜單欄中選擇“工程”,然后“添加用戶控件”,然后“ VB Active X控件界面向?qū)А?,為控件添加屬性、事件和方法;由于算法用在エ程?shí)際中的控制對象不同,用戶根據(jù)自己的實(shí)際情況進(jìn)行設(shè)置算法的“比例初值”、“積分初值”、“微分初值”、“設(shè)定值”、“誤差基本論域”、“誤差變化基本論域”、“比例増量基本論域”、“積分増量基本論域”、“微分増量基本論域”;而“測量值”、“比例終值”、“積分終值”、“微分終值”是控件根據(jù)模糊PID算法得到的實(shí)際輸出值,因此,將這些參數(shù)都設(shè)為控件的屬性,并且添加屬性值的讀取/賦值代碼,通過文本框給屬性賦值并顯示檢測置和控制量的輸出值,而模糊PID算法設(shè)為控件的方法,以便調(diào)用;根據(jù)模糊PID算法得到“測量值”、“比例終值”、“積分終值”、“微分終值”,最后得到控制量,將控制量輸出給被控對象,對被控對象進(jìn)行控制; 所述的模糊PID算法具體為 根據(jù)用戶設(shè)置的“比例初值”、“積分初值”、“微分初值”、“設(shè)定值”、“誤差基本論域”、“誤差變化基本論域”、“比例増量基本論域”、“積分增量基本論域”、“微分増量基本論域”,得到e和ec的值,對模糊控制決策查詢表進(jìn)行查詢,得到得到其對應(yīng)的kp、ki、kd值。
2.根據(jù)權(quán)利要求I所述的ー種模糊PID算法Active X控件的實(shí)現(xiàn)方法,其特征在干,還包括步驟4):注冊Active X控件 執(zhí)行Windows系統(tǒng)“開始\運(yùn)行”命令,在出現(xiàn)的對話框中輸入“regSvr32く控件所在路徑>\模糊PID算法控件.ocx”,注冊■該Active X控件。
全文摘要
本發(fā)明公開了一種模糊PID算法ActiveX控件的實(shí)現(xiàn)方法,包括以下幾個(gè)步驟步驟1)設(shè)置變量、變量的隸屬度函數(shù)、模糊推理方法和反模糊化方法;步驟2)設(shè)置推理規(guī)則,確定e和ec的模糊值,得到PID輸出變量反模糊化后的精確值kp、ki、kd,建立模糊控制決策查詢表;步驟3)通過VB,編寫模糊PID算法,并且創(chuàng)建Active X控件;通過本發(fā)明的控件實(shí)現(xiàn)方法,開發(fā)時(shí)不再需要編寫模糊推理過程的邏輯運(yùn)算程序,也不需要按照加權(quán)平均法計(jì)算PID參數(shù)的模糊調(diào)整量對應(yīng)于基本論域的輸出值ΔKP、ΔKI、ΔKD,不僅簡化了程序結(jié)構(gòu),程序的執(zhí)行周期也大大縮短,有利于加快系統(tǒng)的響應(yīng)速度。
文檔編號G05B11/42GK102707617SQ20121021053
公開日2012年10月3日 申請日期2012年6月20日 優(yōu)先權(quán)日2012年6月20日
發(fā)明者劉松斌, 王勇, 穆慧靈, 肖鐵妹, 陳小磊, 陳飛 申請人:北京金自天正智能控制股份有限公司, 北京金自能源科技發(fā)展有限公司