楊 楊,竹晨曦,魏祥森,葉 多
(1.南京郵電大學(xué) 自動(dòng)化學(xué)院、人工智能學(xué)院,江蘇 南京 210023;2.南京市職業(yè)教育(成人)教學(xué)研究室 江蘇 南京 210018)
自動(dòng)控制原理作為自動(dòng)化專業(yè)的核心課程,集成了線性代數(shù)、高等數(shù)學(xué)、復(fù)變函數(shù)、信號(hào)與系統(tǒng)等課程的相關(guān)知識(shí),是自動(dòng)化專業(yè)重要的專業(yè)基礎(chǔ)課。該課程的任務(wù)不僅是研究和學(xué)習(xí)控制系統(tǒng)相關(guān)的概念、學(xué)習(xí)控制算法及穩(wěn)定性分析方法等理論知識(shí),更重要的是培養(yǎng)學(xué)生綜合運(yùn)用所掌握的理論知識(shí)來(lái)解決工程實(shí)際問(wèn)題的能力。在實(shí)際工程中,通過(guò)理論知識(shí),改善控制系統(tǒng)的各項(xiàng)性能以滿足生產(chǎn)的需要是教學(xué)的目標(biāo),這就使教學(xué)過(guò)程不僅需要包含理論教學(xué)環(huán)節(jié),還需要大大強(qiáng)化實(shí)踐教學(xué)環(huán)節(jié),但受限于人力條件、實(shí)驗(yàn)設(shè)備等關(guān)鍵因素,教學(xué)目標(biāo)往往難以實(shí)現(xiàn),而教學(xué)演示平臺(tái)[1,2]則不受這些時(shí)間、地點(diǎn)因素的限制。
本文以柔性機(jī)械臂作為被控對(duì)象,利用MAT?LAB/Simulink系統(tǒng)仿真工具箱實(shí)現(xiàn)友好的圖形用戶界面[3-5](Graphical User Interface,GUI),設(shè)計(jì)了可視化的柔性機(jī)械臂控制教學(xué)演示平臺(tái)。學(xué)生可根據(jù)實(shí)驗(yàn)需要在線調(diào)整仿真系統(tǒng)各控制參數(shù),通過(guò)點(diǎn)擊人機(jī)交互界面上各按鈕實(shí)現(xiàn)功能模塊的仿真運(yùn)行[6],可形象地演示柔性機(jī)械臂控制系統(tǒng)控制原理;通過(guò)參數(shù)設(shè)置及修改,可了解到各個(gè)參數(shù)對(duì)控制系統(tǒng)產(chǎn)生的影響[7],并直觀地看到仿真的結(jié)果及各個(gè)控制參數(shù)實(shí)時(shí)狀態(tài)。本文設(shè)計(jì)的系統(tǒng)節(jié)約教育成本的同時(shí)提高了學(xué)生的學(xué)習(xí)興趣;與實(shí)物系統(tǒng)相比,安全可靠,避免了機(jī)械臂參數(shù)設(shè)計(jì)不合理而導(dǎo)致的實(shí)物系統(tǒng)故障、損壞及人身安全等問(wèn)題。
本教學(xué)演示平臺(tái)總體結(jié)構(gòu)分為三個(gè)層級(jí)。具體來(lái)說(shuō),第一層級(jí)為教學(xué)演示平臺(tái)主界面,該界面為教學(xué)演示平臺(tái)啟動(dòng)時(shí)的初始界面,包含四個(gè)控制算法GUI界面的跳轉(zhuǎn)按鈕;第二層級(jí)為各個(gè)子控制算法GUI界面,主要包括:非魯棒狀態(tài)反饋、非魯棒輸出反饋、魯棒狀態(tài)反饋和魯棒輸出反饋界面等;第三層級(jí)為教學(xué)演示平臺(tái)的數(shù)據(jù)處理系統(tǒng),負(fù)責(zé)數(shù)學(xué)仿真和仿真數(shù)據(jù)存儲(chǔ),總體結(jié)構(gòu)如圖1所示。整套系統(tǒng)通過(guò)主界面的跳轉(zhuǎn)按鈕啟動(dòng)子控制算法界面,通過(guò)操作子界面上的按鈕實(shí)現(xiàn)數(shù)據(jù)處理系統(tǒng)的啟動(dòng)、暫停和數(shù)據(jù)傳輸工作。
圖1 教學(xué)演示平臺(tái)結(jié)構(gòu)示意圖
教學(xué)演示平臺(tái)的主界面(如圖2所示),設(shè)計(jì)有四個(gè)子GUI界面的調(diào)用按鈕及其預(yù)覽圖顯示區(qū)域,用于預(yù)覽子控制算法GUI界面的基本樣式,并完成當(dāng)前界面向各子控制算法GUI界面的切換。
圖2 平臺(tái)主界面
圖3 狀態(tài)反饋(非魯棒控制)界面
圖4 輸出反饋(非魯棒控制)界面
魯棒控制算法子界面,包含魯棒狀態(tài)反饋和魯棒輸出反饋控制算法GUI界面,界面的設(shè)計(jì)與相同控制算法對(duì)應(yīng)的非魯棒GUI界面設(shè)計(jì)相同。魯棒控制算法中增加了擾動(dòng)量,并對(duì)控制器、觀測(cè)器部分進(jìn)行了調(diào)整。通過(guò)曲線顯示界面實(shí)時(shí)監(jiān)測(cè)機(jī)械臂的運(yùn)動(dòng)狀態(tài)、控制律和跟蹤誤差。
本文實(shí)現(xiàn)的四個(gè)GUI子界面均設(shè)計(jì)“繪圖”、“暫?!焙汀胺祷刂鹘缑妗辈僮靼粹o,分別負(fù)責(zé)操作教學(xué)演示平臺(tái)的啟動(dòng)、暫停及返回演示平臺(tái)主界面。參數(shù)修改對(duì)曲線顯示的圖形產(chǎn)生了影響,說(shuō)明GUI界面與Simulink仿真環(huán)境的鏈接是有效的。
基于MATLAB/Simulink環(huán)境,搭建柔性機(jī)械臂的魯棒及非魯棒仿真控制系統(tǒng),GUI人機(jī)交互界面設(shè)置仿真系統(tǒng)的各項(xiàng)參數(shù)并傳遞給仿真系統(tǒng)各個(gè)運(yùn)算模塊,運(yùn)算后將仿真數(shù)據(jù)保存在內(nèi)存中。GUI人機(jī)交互界面從內(nèi)存中獲取保存的數(shù)據(jù)并在顯示區(qū)域繪制仿真曲線,完成可視化教學(xué)演示功能。
本文使用了兩種參數(shù)傳遞方法:(1)利用Set_param()命令實(shí)現(xiàn)對(duì)MATLAB/Simulink各SFunction模塊參數(shù)的直接賦值。(2)通過(guò)執(zhí)行指令將設(shè)置的參數(shù)保存在內(nèi)存中,由MATLAB/Simu?link調(diào)用內(nèi)存數(shù)據(jù)完成參數(shù)賦值。
在MATLAB/Simulink仿真系統(tǒng)中增加Scope控件及To Workspace控件,將仿真數(shù)據(jù)輸出至MAT?LAB Workspace內(nèi)存空間,GUI人機(jī)交互界面從內(nèi)存中獲取仿真數(shù)據(jù),并在曲線顯示區(qū)域?qū)崿F(xiàn)仿真數(shù)據(jù)的坐標(biāo)化。
本文所設(shè)計(jì)的教學(xué)演示平臺(tái)具有參數(shù)初始化功能,執(zhí)行該功能可將系統(tǒng)的各項(xiàng)參數(shù)設(shè)置為預(yù)設(shè)的默認(rèn)值。
GUI人機(jī)交互界面獲取保存在MATLAB Work?space內(nèi)存中的仿真數(shù)據(jù),使用for循環(huán)語(yǔ)句嵌套plot()指令,將獲取的仿真數(shù)據(jù)以二維坐標(biāo)曲線的形式進(jìn)行表示并實(shí)現(xiàn)仿真曲線的動(dòng)態(tài)繪制。利用datestr(now,31)指令保存當(dāng)前系統(tǒng)時(shí)間格式,使用Xticklabel()函數(shù)將仿真曲線的橫坐標(biāo)格式設(shè)置為保存的時(shí)間格式。
本文所述的教學(xué)演示平臺(tái)由演示平臺(tái)主界面和四個(gè)控制算法GUI界面組成。為了在使用過(guò)程中僅保留單一窗口,使用GUI跳轉(zhuǎn)指令設(shè)計(jì)了各控制算法GUI界面的“GUI調(diào)用”按鈕實(shí)現(xiàn)界面的跳轉(zhuǎn);設(shè)計(jì)了“返回主界面”按鈕實(shí)現(xiàn)各控制算法GUI界面向主界面的跳轉(zhuǎn)。在跳轉(zhuǎn)指令后加入close()函數(shù)與evalin('base','clear all')指令,實(shí)現(xiàn)內(nèi)存數(shù)據(jù)的清空及當(dāng)前界面的關(guān)閉。
The total current density consists of the conduction current density and the displacement current density:
本教學(xué)演示平臺(tái)的具體工作方法包括以下步驟:
(1)使用者啟動(dòng)教學(xué)演示平臺(tái)后進(jìn)入演示平臺(tái)主界面,運(yùn)行主界面,選擇要使用的控制算法,點(diǎn)擊“GUI調(diào)用”按鈕切換至該控制算法GUI界面;
(2)在控制算法GUI界面中通過(guò)參數(shù)設(shè)置模塊的多個(gè)輸入窗口進(jìn)行仿真系統(tǒng)模型參數(shù)的設(shè)置及控制參數(shù)的調(diào)節(jié),參數(shù)包括時(shí)間收斂系數(shù)Xite(常數(shù))、轉(zhuǎn)子轉(zhuǎn)動(dòng)慣量I(kg·m2)、連桿轉(zhuǎn)動(dòng)慣量J(kg·m2)、關(guān)節(jié)剛度系數(shù)K(N/m)、機(jī)械臂質(zhì)量M(kg)、重力加速度g(N/kg)、連桿中心至關(guān)節(jié)的長(zhǎng)度l(m)。本實(shí)例中使用了“初始化參數(shù)”功能,參數(shù)數(shù)值依次為,20,1,1,40,1,10,0.5。
(3)運(yùn)行仿真平臺(tái),通過(guò)其主界面的參數(shù)狀態(tài)顯示模塊負(fù)責(zé)調(diào)用數(shù)學(xué)模型產(chǎn)生的仿真數(shù)據(jù)實(shí)現(xiàn)各狀態(tài)量的圖形繪制,在參數(shù)狀態(tài)顯示區(qū)域觀察仿真曲線、控制律狀態(tài)曲線和誤差值曲線的實(shí)時(shí)軌跡。
(4)通過(guò)點(diǎn)擊“暫?!笨蓵和=虒W(xué)演示平臺(tái)工作,并進(jìn)行參數(shù)的修改。再次點(diǎn)擊“暫?!卑粹o恢復(fù)教學(xué)演示平臺(tái)的工作,繼續(xù)進(jìn)行數(shù)學(xué)仿真。
(5)通過(guò)點(diǎn)擊“返回主界面”回到教學(xué)演示平臺(tái)主界面。
選擇需要演示的控制算法,點(diǎn)擊“GUI調(diào)用”按鈕,跳轉(zhuǎn)至該GUI界面。本實(shí)例選擇使用“魯棒輸出反饋”控制算法界面。
點(diǎn)擊“初始化參數(shù)”設(shè)定默認(rèn)值,或人為設(shè)置參數(shù)并傳遞給Simulink仿真控制系統(tǒng)。本實(shí)例中參數(shù)設(shè)定值如圖5所示,參數(shù)已經(jīng)保存在內(nèi)存中,具體數(shù)值在Workspace窗口逐條顯示(如圖6所示),此時(shí)仿真系統(tǒng)的各模塊已經(jīng)接收了GUI人機(jī)交互界面?zhèn)鬟f的參數(shù)并完成了賦值。
圖5 初始化參數(shù)
圖6 MATLAB Workspace內(nèi)存
點(diǎn)擊“繪圖”按鈕啟動(dòng)教學(xué)演示平臺(tái),GUI界面獲取MATLAB Workspace內(nèi)存中的仿真數(shù)據(jù),在數(shù)據(jù)顯示區(qū)域進(jìn)行仿真曲線的動(dòng)態(tài)繪制,觀察仿真狀態(tài)曲線、控制律狀態(tài)曲線、誤差值狀態(tài)曲線、觀測(cè)器狀態(tài)曲線,如圖7所示。
圖7 輸出反饋(魯棒控制)界面曲線顯示
在仿真過(guò)程中,用戶可以通過(guò)暫停系統(tǒng),及時(shí)修改參數(shù)界面的各項(xiàng)數(shù)值,修改模型各項(xiàng)關(guān)鍵參數(shù)再繼續(xù)進(jìn)行仿真,通過(guò)顯示結(jié)果的變化分析被修改參數(shù)對(duì)控制系統(tǒng)產(chǎn)生的影響。本實(shí)例在運(yùn)行至15:09:59時(shí)暫停,并將參數(shù)“連桿質(zhì)量”修改為10,繼續(xù)運(yùn)行仿真,如圖8所示。由圖8可以看出:在修改了“連桿質(zhì)量”后,控制律出現(xiàn)了較大抖動(dòng),觀測(cè)器的輸出幅值也出現(xiàn)了增大的現(xiàn)象。通過(guò)分析物理模型可知,連桿質(zhì)量的增加,增大了機(jī)械臂所具有的慣性,進(jìn)而產(chǎn)生了圖中的變化情況。
圖8 輸出反饋(魯棒控制)界面曲線顯示
演示結(jié)束后如需要切換界面,點(diǎn)擊當(dāng)前界面的“返回主界面”按鈕,即可返回演示平臺(tái)主界面,同時(shí)清空MATLAB Workspace內(nèi)存中保存的仿真數(shù)據(jù)及Command Window保存的教學(xué)演示平臺(tái)運(yùn)行記錄,重復(fù)上述步驟(1)繼續(xù)進(jìn)行演示工作。
本文介紹了基于MATLAB/Simulink及GUI圖形設(shè)計(jì)語(yǔ)言的柔性機(jī)械臂教學(xué)演示平臺(tái)的設(shè)計(jì)框架和實(shí)現(xiàn)方法。該教學(xué)演示平臺(tái)可以應(yīng)用于自動(dòng)控制理論教學(xué)和課程實(shí)踐環(huán)節(jié)中,使用者選擇多種控制算法進(jìn)行仿真,通過(guò)顯示控制系統(tǒng)的仿真曲線,直觀地認(rèn)識(shí)到不同控制參數(shù)對(duì)控制效果產(chǎn)生的影響,加深對(duì)控制系統(tǒng)各個(gè)部分的理解。本教學(xué)演示平臺(tái)亦可推廣應(yīng)用于自動(dòng)控制相關(guān)領(lǐng)域研究工作中,用于驗(yàn)證控制算法的合理性。
泰州職業(yè)技術(shù)學(xué)院學(xué)報(bào)2018年3期