何德峰, 俞 立, 徐建明
(浙江工業(yè)大學 信息工程學院, 浙江 杭州 310023)
?
基于MATLAB的現(xiàn)代控制理論實驗教學實踐
何德峰, 俞立, 徐建明
(浙江工業(yè)大學 信息工程學院, 浙江 杭州310023)
針對現(xiàn)代控制理論的課程特點,進行了基于MATLAB語言的現(xiàn)代控制理論仿真實驗教學研究。根據(jù)課程教學內(nèi)容,給出了現(xiàn)代控制理論課程中6個教學仿真實驗的實驗目的、實驗原理和實驗步驟,并以“利用MATLAB求解極點配置問題”實驗為例說明實驗過程。教學實踐表明,仿真實驗有助于學生理解課程的理論知識、提高學習效率和學習積極性。
控制理論實驗; 仿真實驗; 實驗教學; MATLAB
現(xiàn)代控制理論是大學自動化類專業(yè)的專業(yè)基礎課,在自動化類專業(yè)本科教學中占有十分重要的地位。但現(xiàn)代控制理論的教學內(nèi)容包含大量的矩陣運算和復雜的公式證明[1-2],內(nèi)容抽象且理論性很強,學生不易理解。對此,有必要通過引入實驗課的教學,幫助學生理解和掌握現(xiàn)代控制理論知識?;贛ATLAB開發(fā)現(xiàn)代控制理論仿真實驗,不但可以解決硬件實驗設備不足的困難[3-5],而且可以供學生在課后進行自主性和探索性學習。
MATLAB是一款高性能數(shù)值運算軟件,也是適合多學科、功能強大的系統(tǒng)仿真軟件[6]。由于現(xiàn)代控制理論的主要數(shù)學工具是線性代數(shù)和常微分方程理論,而MATLAB以矩陣為基本運算單元,同時又可以調(diào)用預先定義的函數(shù)求解不同類型的控制問題,具有良好的交互分析功能。因此,MATLAB語言為現(xiàn)代控制理論課程的實驗教學提供了一種很好的教學工具[7-9]。針對現(xiàn)代控制理論課程的教學內(nèi)容,筆者給出6個基于MATLAB的現(xiàn)代控制理論教學仿真實驗設計,包括實驗目的、實驗原理和實驗步驟。
現(xiàn)代控制理論主要講授控制系統(tǒng)的狀態(tài)空間模型、運動分析、能控性與能觀性分析、李雅普諾夫穩(wěn)定性理論、狀態(tài)反饋控制器和狀態(tài)觀測器設計,以及線性最優(yōu)控制等教學內(nèi)容[1-2]。筆者針對這些教學內(nèi)容并結(jié)合MATLAB的功能,設計了6個教學仿真實驗。這些實驗所需的實驗設備僅包括1臺中高檔PC機(CPU 1.8 GHz以上、內(nèi)存 1 GB以上、顯卡 512 MB以上)、Windows操作系統(tǒng)和MATLAB 6.0以上版本。
1.1基于MATLAB的傳遞函數(shù)和狀態(tài)空間模型的轉(zhuǎn)換
(1) 實驗目的。學習系統(tǒng)狀態(tài)空間模型的建立方法;通過編程、上機調(diào)試,掌握系統(tǒng)狀態(tài)空間模型與傳遞函數(shù)相互轉(zhuǎn)換的方法。
(2) 實驗原理簡述??刂葡到y(tǒng)的狀態(tài)空間模型為
(1)
(2)
式中I為單位矩陣。
表示系統(tǒng)(1)的狀態(tài)空間模型和傳遞函數(shù)的MATLAB函數(shù)分別為ss(A,B,C,D)和tf(num,den),其中num表示傳遞函數(shù)G(s)中分子多項式的系數(shù)向量(單輸入單輸出系統(tǒng));den表示傳遞函數(shù)G(s)中分母多項式的系數(shù)向量。狀態(tài)空間模型和傳遞函數(shù)相互轉(zhuǎn)換的MATLAB函數(shù)分別為
[A,B,C,D]=tf2ss(num,den),
[num,den]=ss2tf(A,B,C,D,ui)
其中,對多輸入系統(tǒng),必須確定ui(ui為控制向量的第i個元素)的值。該函數(shù)的結(jié)果是第ui個輸入到所有輸出的傳遞函數(shù)。
(3) 實驗步驟。根據(jù)系統(tǒng)(1)的傳遞函數(shù)G(s)或狀態(tài)空間模型(A,B,C,D),對應轉(zhuǎn)換式(2),采用MATLAB相關函數(shù)編寫m文件;在MATLAB界面下調(diào)試程序。
1.2基于MATLAB的狀態(tài)空間模型進行分析
(1) 實驗目的。根據(jù)狀態(tài)空間模型,分析系統(tǒng)由初始狀態(tài)和外部激勵所引起的響應;通過編程、上機調(diào)試,掌握系統(tǒng)運動的分析方法。
(2) 實驗原理簡述。在控制系統(tǒng)(1)的狀態(tài)空間模型中,設系統(tǒng)的初始時刻為0,初始狀態(tài)為x(0),則系統(tǒng)的狀態(tài)響應x(t)和輸出響應y(t)分別為:
(3)
(4)
狀態(tài)響應由系統(tǒng)自由運動(即初始狀態(tài)響應)和由控制輸入引起的運動組成;輸出響應由初始狀態(tài)引起的零輸入響應、外部輸入響應和系統(tǒng)輸入的直接傳輸部分組成。系統(tǒng)響應分析的MATLAB函數(shù)命令包括:initial(A,B,C,D,x0)可以得到系統(tǒng)輸出對初始狀態(tài)x0的時間響應;step(A,B,C,D)給出了系統(tǒng)的單位階躍響應曲線;impulse(A,B,C,D)給出了系統(tǒng)的單位脈沖響應曲線;[y,T,x]=lsim(sys,u,t,x0) 給出狀態(tài)空間模型對任意輸入的響應,其中sys表示貯存在計算機內(nèi)的狀態(tài)空間模型,它可以由函數(shù)sys=ss(A,B,C,D)產(chǎn)生。
(3) 實驗步驟。構(gòu)建系統(tǒng)的狀態(tài)空間模型,采用MATLAB的m文件編程;求取系統(tǒng)的狀態(tài)和輸出響應;在MATLAB界面下調(diào)試程序,并檢查運行是否正確。
1.3基于MATLAB的連續(xù)時間狀態(tài)空間模型的離散化
(1) 實驗目的。導出系統(tǒng)的連續(xù)時間狀態(tài)空間模型相應的離散化狀態(tài)空間模型;通過編程、上機調(diào)試,掌握離散系統(tǒng)運動分析方法。
(2) 實驗原理簡述??紤]控制系統(tǒng)(1)的狀態(tài)空間模型和輸入信號的采樣保持性
(5)
其中,T表示系統(tǒng)的采樣周期。則連續(xù)時間控制系統(tǒng)(1)的狀態(tài)空間模型離散化方程可以寫成:
(6)
上述離散化過程的MATLAB函數(shù)為[G, H]=c2d(A, B, T)。
(3) 實驗步驟。導出連續(xù)狀態(tài)空間模型的離散化模型,采用MATLAB相關函數(shù)編寫m文件;在MATLAB界面下調(diào)試程序,并檢查是否運行正確。
1.4利用MATLAB求解極點配置問題
(1) 實驗目的。通過編程、調(diào)試,掌握極點配置狀態(tài)反饋控制器設計方法。
MATLAB軟件提供了兩個函數(shù)acker和place來確定極點配置狀態(tài)反饋控制器的增益矩陣K。函數(shù)acker是基于求解極點配置問題的愛克曼公式,它只能應用到單輸入系統(tǒng),要配置的閉環(huán)極點中可以包括多重極點。用函數(shù)acker和place表示K的一般形式,K=acker(A,B,J)和K=place(A,B,J),其中的J=[λ1,λ2, …,λn]表示n個期望閉環(huán)極點。得到增益K后,可以用命令eig(A-BK)檢驗閉環(huán)極點。
(3) 實驗步驟。根據(jù)系統(tǒng)(1)的狀態(tài)空間模型(A,B,C,D)和n個期望閉環(huán)極點,采用MATLAB相關函數(shù)編寫m文件;在MATLAB界面下調(diào)試程序,并檢查是否運行正確。
1.5利用MATLAB設計狀態(tài)觀測器
(1) 實驗目的。學習狀態(tài)觀測器設計原理和算法;通過編程、上機調(diào)試,理解觀測器極點對觀測器性能的影響;掌握基于MATLAB語言的狀態(tài)觀測器設計方法。
(2) 實驗原理簡述。根據(jù)控制系統(tǒng)(1)的狀態(tài)空間模型,設計龍伯格全階狀態(tài)觀測器:
(7)
(8)
關于系統(tǒng)(1)的降階觀測器設計如下。假定系統(tǒng)(1)的矩陣C具有形式[1 0](對一般結(jié)構(gòu)的矩陣,需要作適當?shù)淖儞Q),根據(jù)矩陣C的結(jié)構(gòu),將系統(tǒng)狀態(tài)分成可直接測量狀態(tài)變量xa和不可直接測量狀態(tài)變量xb兩部分。據(jù)此,將系統(tǒng)(1)狀態(tài)空間模型中的矩陣和作相應的分塊,則該狀態(tài)空間模型可以寫成
(9)
其中,xb是要估計的狀態(tài)變量。設計降階觀測器
(10)
(3) 實驗步驟。根據(jù)系統(tǒng)(1)的狀態(tài)空間模型(A,B,C,D)和觀測器給的期望閉環(huán)極點,采用MATLAB相關函數(shù)編寫m文件;在MATLAB界面下調(diào)試程序,并檢查是否運行正確。
1.6利用MATLAB設計線性二次型最優(yōu)控制器
(1) 實驗目的。學習線性二次型最優(yōu)控制理論;通過編程、上機調(diào)試,掌握線性二次型最優(yōu)控制器設計方法。
(2) 實驗原理簡述??紤]控制系統(tǒng)(1)的狀態(tài)空間模型,給定性能指標:
(11)
其中,Q為對稱正定(或半正定)矩陣,R為對稱正定矩陣。性能指標(11)右邊的第一項表示對狀態(tài)的要求,第二項是對輸入能量的限制。考慮狀態(tài)反饋控制器,使得性能指標(11)最小化的最優(yōu)控制器為u=-Kx,其中K=R-1B′P是mxn維狀態(tài)反饋增益矩陣,P是黎卡提矩陣方程(12)的對稱正定解矩陣。
PA+A′P-PBR-1B′P+Q=0
(12)
(3) 實驗步驟。根據(jù)系統(tǒng)(1)的狀態(tài)空間模型和性能指標(11),采用MATLAB相關函數(shù)編寫m文件;在MATLAB界面下調(diào)試程序,并檢查設計結(jié)果的正確性。
以極點配置狀態(tài)反饋控制器設計為例,詳細說明實驗“利用MATLAB求解極點配置問題”的實驗教學過程。
考慮一個控制系統(tǒng)為
(13)
設計一個狀態(tài)反饋控制器u=-Kx,使得閉環(huán)系統(tǒng)的極點為{-2+j4,-2-j4,-10},進而對給定初始狀態(tài)x(0)=[1 0 0]'測試閉環(huán)系統(tǒng)的狀態(tài)響應。
執(zhí)行以下應用函數(shù)acker編制的m文件:
A=[0 1 0; 0 0 1; -1 -5 -6];B=[0;0;1];
得到K=[199 55 9]。
若執(zhí)行以下應用函數(shù)place編制的m文件:
A=[0 1 0; 0 0 1; -1 -5 -6];B=[0;0;1];
K=place(A,B,);
得到K=[199 55 9]。
對給定初始狀態(tài),應用MATLAB函數(shù)initial測試閉環(huán)系統(tǒng)的狀態(tài)響應,編制m文件:
sys=ss(A-B*K,[0;0;0],eye(3),0);
t=0:0.01:4;
x=initial(sys,[1;0;0],t);
x1=[1 0 0]*x’;
x2=[0 1 0]*x’;
x3=[0 0 1]*x’;
subplot(3,1,1);
plot(t,x1), grid;
title(‘Response to Initial Condition’);
ylabel(‘x1’);
subplot(3,1,2);
plot(t,x2), grid;
ylabel(‘x2’);
subplot(3,1,3);
plot(t,x3), grid;
xlabel(‘t (sec)’);
ylabel(‘x3’);
可得閉環(huán)系統(tǒng)的狀態(tài)響應曲線如圖1所示。
圖1 初始狀態(tài)響應圖
在實驗過程中,教師現(xiàn)場編程演示與實時指導,然后學生應用MATLAB函數(shù)acker和place編寫m文件,執(zhí)行m文件得到被控系統(tǒng)的狀態(tài)反饋控制器,使得閉環(huán)系統(tǒng)的極點配置到預先給定的位置。進一步,為檢驗所設計的狀態(tài)反饋控制器的控制性能,應用initial函數(shù)編寫m文件,測試閉環(huán)系統(tǒng)的狀態(tài)響應。如果狀態(tài)響應不理想,如振蕩頻繁、超調(diào)量大等,那么就要求學生移動期望閉環(huán)極點,然后再重復整個設計過程,直到閉環(huán)系統(tǒng)得到滿意的狀態(tài)響應。這樣就可以利用MATLAB對狀態(tài)響應曲線進行直觀顯示,讓學生理解基于極點配置的狀態(tài)反饋控制器設計的原理、過程和方法。
教學實踐表明,通過MATLAB實驗,學生可以把課堂教學中學到的基本原理和基礎性知識與實際系統(tǒng)的控制相結(jié)合,不僅加深了對書本知識的理解,更重要的是培養(yǎng)了學生的實際工作能力。
筆者將MATLAB引入現(xiàn)代控制理論課程的實驗教學中,所設計的6個仿真教學實驗覆蓋了該課程的主要教學內(nèi)容。通過近3年的教學實踐表明,基于MATLAB的仿真教學實驗不僅有助于學生對現(xiàn)代控制理論課程抽象知識點的理解和掌握,還有助于提高學生的學習積極性和靈活運用課本知識的能力,同時對學生熟悉和應用MATLAB語言也有積極作用。
References)
[1] 俞立.現(xiàn)代控制理論[M].北京:清華大學出版社,2007.
[2] 張嗣瀛,高立群.現(xiàn)代控制理論[M].北京:清華大學出版社,2006.
[3] 葉彪明.基于MATLAB的《現(xiàn)代控制理論》課程的實驗設計[J].實驗室研究與探索,2004,23(1):28-30.
[4] 范秋鳳,李正斌.基于MATLAB的現(xiàn)代控制理論課程教學改革[J].才智,2010(28):266-267.
[5] 劉強,賈鴻莉,董德發(fā).Matlab在現(xiàn)代控制理論教學中的應用[J].現(xiàn)代電子技術,2010(18):71-72.
[6] Katsuhiko Ogata.控制理論MATLAB教程[M].英文版.北京:電子工業(yè)出版社,2008.
[7] 高立群,楊姝,韓杰,等.關于本科生教學改革的實踐思考:以《現(xiàn)代控制理論》課為例[J].遼寧教育研究,2006(11):78-79.
[8] 黃忠霖.新編控制系統(tǒng)MATLAB仿真實訓[M].北京:機械工業(yè)出版社,2013.
[9] 薛定宇.控制系統(tǒng)計算機輔助設計:MATLAB語言與應用 [M].2版.北京:清華大學出版社,2006.
Experimental teaching and practice of modern control theory based on MATLAB
He Defeng, Yu Li, Xu Jianming
(College of Information Engineering, Zhejiang University of Technology, Hangzhou 310023, China)
The simulation experimental teaching of Modern Control Theory is studied based on MATLAB language for the characteristics of the Modern Control Theory course. According to the teaching content of the course, six simulation experiments for teaching are presented, including the experimental purpose, experimental principle, experimental procedure, etc. One of these experiments is used to illustrate the practice of teaching process. The teaching practice shows that these simulation experments are helpful for students to understand the theoretical knowledge of the course and to improve students’ learning efficiency and enthusiasm.
modern control theory; simulation experiment; experimential teaching; MATLAB
10.16791/j.cnki.sjg.2016.03.031
2015- 09- 21
《現(xiàn)代控制理論》國家精品資源共享課程建設項目(教高司函(2013)132號)
何德峰(1979—),男,浙江義烏,博士,教授,從事現(xiàn)代控制理論與應用教學研究.
E-mail:hdfzj@zjut.edu.cn,lyu@zjut.edu.cn
TP273.1
A
1002-4956(2016)3- 0123- 04