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