雷世恒+++李淑清
摘 要:利用模糊控制方法對一階倒立擺進行了控制。利用Matlab對線性矩陣不等式方法控制的算法模型進行了仿真,并從中提取數據用于模糊控制。在模糊控制方法[1]中,設計了一種模糊集長度從兩側至中間遞減的模糊集,并針對不同模糊數量時的控制結果進行了仿真對比,最后,對比了不同模糊控制方法的響應曲線及效果分析。
關鍵詞:模糊控制;控制參數;置信度;響應曲線
1 方法概述
一階倒立擺為雙輸入單輸出控制系統,輸入量為角度及角速度,輸出量為力,用于調整擺的角度。本文使用經典的Mamdani模糊系統[2]。輸入采用三角形模糊器[3],采用中心解模糊器構造模糊系統[4]。用于規則提取的數據來源于T-S fuzzy模糊控制[5]。
2 參數提取
由Matlab仿真得到用于提取規則的參數,該方法使用線性矩陣不等式,求解控制參數。采集該方法的控制量、角速度及角度,采集時要保證采集數據的范圍足夠廣闊,避免出現置信度很低的規則。求解線性方程組,得到仿真數據,為保證數據的范圍足夠廣,要多次修改初值以確保提取大量的數據。
3 創建模糊集
本文設計的模糊劃分是非等距的對稱三角形模糊劃分,中間點距離近,兩側節點距離大。模糊劃分的論域為:訓練數據的最大絕對值的1.01倍。模糊集的設計思路如下:以7個模糊集為例,產生7個模糊集需要在X軸坐標上設計9個點,從左向右,依次每4個點生成一個模糊集,4個點中的2、3兩點重合。因此,設計模糊集的任務就變成了設計X軸上的9個坐標點,設計方式如圖1所示:
圖1中僅僅畫出坐標軸正半軸,負半軸部分將與正半軸部分對稱。從圖中可以看出,由坐標點所截出的相鄰線段的長度之差為d,針對這種劃分方式,可以抽象出計算坐標點的公式,如下:
其中,L表示X軸正方向上的模糊集的長度,N為設計的模糊集數量。根據計算得到的d,計算每個點的坐標值。生成節點后,利用節點生成模糊集。
利用FuzzPara函數,輸入需要的模糊集數量,并以提取到的數據的1.01倍作為模糊集的邊界,生成模糊集。
4 提取規則
規則提取首先需要對訓練數據進行模糊化,并利用三維矩陣的思路完成規則的提取。利用trimf函數將訓練數據在每一個模糊集的三角形隸屬函數下模糊化,并擴充成一維數組。在計算好3個模糊化的數組后,采用乘積推理機[6]的思路:
Ri(x1,x2,y)=(Ai1(x1)·Ai2(x2))·Bi(y)
上式為向量乘法,結果是一個三維矩陣,這個矩陣的意義在于:矩陣中大部分數據為零,小部分數據非零,非零數據表示三個輸入數據的模糊關系的強弱,接近1表示模糊關系強,非零數據的三維坐標表示所對應的三個模糊集在模糊劃分中的位置。
對全部輸入數據進行計算,每次都得到一個三維矩陣,將先后兩次計算得到的矩陣中,對應位置的元素進行比較,并保留最大值。對最終得到的三維矩陣下降成2個2維矩陣。最終將得到2個二維矩陣,一個矩陣表示關系的強弱,另一個二維矩陣為規則表。
這個規則表示2個輸入1個輸出的關系規則,表中數字表示模糊劃分中的一個模糊集的位置坐標。實際上,在后文用到的規則表中,用到的是三角形隸屬函數的頂點坐標信息,因此需要將表中的坐標信息轉換成對應的隸屬函數峰點數值。
5 控制器設計
控制器的主要任務是輸入數據的模糊化,進行模糊推理,去模糊化,所采用的模糊化方法為三角形模糊化方法,去模糊化使用中心法。同樣使用trimf函數進行模糊化,并將得到的隸屬度順序擴充成向量。根據中心法去模糊化的方法:
用向量和矩陣操作很容易可以實現這個公式,將輸入數據模糊化得到的兩個向量相乘,得到一個二維矩陣,Zij表示隸屬函數的峰點,因此將二維矩陣與峰點規則表對應位置相乘即可,并對得到的矩陣的全部元素求和,分子部分就計算完成。分母分的計算類似。利用這個公式去模糊化得到的結果為控制量。
6 結果對比分析
在本部分進行了一系列對比仿真,主要包括:7模糊集、13模糊集、19模糊集、25模糊集、33模糊集情況下,一階倒立擺的仿真結果。如圖2、圖3和圖4所示,從仿真結果可以明顯看出,在模糊集數量越少時,控制效果越差,尤其是角速度曲線,出現了明顯的衰減的震蕩,角度曲線這種狀況不明顯。理論上,這種現象是由于在模糊集原點附近,模糊集劃分不夠細致所導致。通過增多模糊集數量后來減弱這種現象,當模糊集增加到19個時,角速度曲線波動幅度非常小。另一方面,由于模糊集增多,算法的計算量相應地迅速增加。在實際應用中,過多的模糊集可能會導致不能滿足實時性的要求,因此,需要權衡考慮。并且從圖4和圖5中可以看出,在模糊集數量達到一定程度后,如果繼續增加模糊集的數量,實際上起到的效果已經不明顯,也說明模糊集的數量不是越多,效果就越好。
圖5給出了19模糊集控制與T-S控制的曲線對比。其中,實線為模糊控制曲線,可以看出模糊控制曲線響應更快一些,相比之下,T-S控制曲線更平滑,另外,對于算法的運算量,本文并未進行實驗,但是通過對代碼的簡單分析,可以發現,T-S控制器的運算量是遠小于模糊控制的,這一點利于實際應用。
7 結束語
本文利用模糊控制方法對一階倒立擺進行了控制。并且得到了與T-S控制算法的近似的控制曲線。對比結果表明,模糊集的數量的增加可以提升控制效果,但是,并不是模糊集數量越多控制效果越好。在模糊集數量達到一定的數量后,如果繼續增加模糊集,將大幅度增加算法計算量,其仿真結果的提升程度卻不明顯。同時,發現用于提取規則的數據集合十分關鍵,只有提取出置信度高的規則矩陣才能達到控制效果。因此,數據集合一定要有代表性,能夠代表可能出現的全部狀況。此外,根據仿真過程中的現象,可以推測模糊集的形狀,對控制效果應該也是有影響的。
參考文獻
[1]王述彥,師宇,馮忠緒.基于模糊PID控制器的控制方法研究[J].機械科學與技術,2011.
[2]阮俊瑾,丁肇紅.基于Mamdani分離變量法的倒立擺模糊控制系統設計[J].上海應用技術學院學報(自然科學版),2008.
[3]王宏志,陶玉杰,王貴軍.基于三角形模糊數的非線性T-S模糊系統的峰值點和分量半徑優化[J].浙江大學學報(理學版),2016.
[4]張釗.模糊系統的推理及其穩定性分析[D].天津大學,2004.
[5]王寧,孟憲堯.輸入采用一般模糊劃分的T-S模糊控制系統穩定性分析[J].自動化學報,2008.
[6]游文虎,王茂,施佳.PIE+MOM的Mamdani模糊系統通用逼近性充要條件[J].哈爾濱工業大學學報,2014.