董靖川, 王太勇, 陸鋼慶, 李曉奇, 張永賓, 王自靜
(天津大學(xué) 機械工程學(xué)院, 天津 300354)
?
基于Simulink的開放式伺服控制實驗裝置設(shè)計
董靖川, 王太勇, 陸鋼慶, 李曉奇, 張永賓, 王自靜
(天津大學(xué) 機械工程學(xué)院, 天津300354)
為解決現(xiàn)有教學(xué)用伺服控制實驗裝置開放性差、編程復(fù)雜的不足,設(shè)計了基于Simulink軟件的開放式伺服控制實驗裝置。該裝置以STM32F429單片機為硬件平臺控制器,配有A/D、D/A、編碼器、通用輸入/輸出等伺服控制專用接口,以及彩色液晶顯示器、RS-232通信接口等外設(shè)。實驗裝置的軟件平臺基于Simulink設(shè)計,具備伺服算法設(shè)計、仿真、執(zhí)行、數(shù)據(jù)通信、分析等功能,具有開放、模塊化、圖形化、易操作等優(yōu)點,可進行各類伺服控制原理驗證和創(chuàng)新實驗。該裝置能夠充分滿足伺服控制類課程的實驗教學(xué)需求。
伺服控制; 實驗裝置; 單片機; Simulink
隨著工業(yè)現(xiàn)代化的發(fā)展,以計算機為核心的數(shù)字伺服控制系統(tǒng)在很多領(lǐng)域內(nèi)得到了廣泛的應(yīng)用,掌握伺服控制系統(tǒng)的原理和應(yīng)用,已成為高端裝備、精密儀器、航空航天、機器人等相關(guān)產(chǎn)業(yè)技術(shù)人員的一項迫切需求[1]。伺服控制實驗課程是學(xué)習(xí)伺服控制理論的重要環(huán)節(jié),然而目前高校實驗室的伺服控制實驗裝置存在封閉、開放性差、編程復(fù)雜等不足,難以達(dá)到理想的教學(xué)效果,也不便于開展學(xué)生的自主創(chuàng)新實驗。
本文介紹了基于Simulink軟件、采用單片機為核心控制器的開放式伺服控制實驗裝置的設(shè)計。學(xué)生可以利用該裝置進行開放式、圖形化的伺服程序設(shè)計與仿真實驗[2-3],也可將自動生成的控制器代碼[4]下載到實驗裝置進行伺服控制實驗驗證,具有直觀、易學(xué)、開放等優(yōu)點。
Simulink具有強大的圖形化建模、仿真能力,以及完整的工具箱,并且可以與Matlab無縫集成,是控制系統(tǒng)工程師的必備軟件,也是高校工程類專業(yè)師生熟悉的編程系統(tǒng)。本文的伺服控制實驗裝置以Simulink為軟件平臺,構(gòu)建了開放式、圖形化的實驗設(shè)計環(huán)境,實現(xiàn)了伺服控制模型設(shè)計、仿真和控制程序的自動化生成??刂破鞯挠布脚_采用STM32F429單片機作為中央處理器,具有高性能、高集成度、可靠性好、成本低等優(yōu)點。為實現(xiàn)與伺服電機等被控對象的連接,實驗裝置擴展了A/D、D/A、編碼器、通用I/O等接口,也提供了彩色液晶顯示器、按鍵、LED、RS-232通信接口等外設(shè),便于實現(xiàn)人機交互和數(shù)據(jù)采集。
該實驗裝置的總體設(shè)計框圖如圖1所示。
圖1 開放式伺服控制實驗裝置框圖
STM32F429單片機具有基于ARM 32位 Cortex-M4的高性能核心及硬件浮點處理單元,主頻達(dá)180 MHz[5],并支持DSP指令,內(nèi)建2 MB Flash和256 KB SRAM。單片機可通過程序下載接口下載由用戶設(shè)計的伺服控制程序,實現(xiàn)開放式的實驗。實驗裝置具備D/A接口,可生成-10 V~+10 V的模擬電壓,作為伺服控制驅(qū)動器的電壓指令;編碼器接口可連接正交編碼器,實現(xiàn)位置或速度的數(shù)字化測量;A/D接口可連接各種模擬量輸出的傳感器,如測速發(fā)電機、電流傳感器、溫度傳感器等;I/O接口可輸入/輸出開關(guān)量信號,可連接繼電器、傳感器、開關(guān)等;通信接口采用RS-232協(xié)議,可連接計算機進行數(shù)據(jù)的傳輸。彩色液晶顯示器分辨率為320×240(像素),可用于文字、圖形的實時顯示;按鍵和LED指示燈可用于改變或指示控制器狀態(tài),實現(xiàn)實時人機交互。
2.1D/A接口電路
D/A接口可以將單片機內(nèi)部用數(shù)字表示的控制信號轉(zhuǎn)換為模擬電壓信號。STM32F429已經(jīng)在內(nèi)部集成了2路12位分辨率的DAC功能,可以在PA4腳和PA5腳產(chǎn)生0~3.3 V的模擬電壓。為了將該模擬電壓用于工業(yè)設(shè)備的伺服控制,本裝置將其轉(zhuǎn)換為-10 V~+10 V的模擬量輸出,其原理如圖2所示。
圖2 D/A接口原理
以第一組D/A輸出為例,采用運算放大器搭建模擬減法器和反向放大電路。PA4腳產(chǎn)生的0~3.3 V電壓與固定的1.65 V電壓相減,將電壓偏置為-1.65 V ~+1.65 V。然后,通過增益為6.06的反相放大器將此電壓放大、取反,變換為-10 V~+10 V的范圍,作為反相電壓輸出信號DA1-。最后,通過增益為1的反相放大器將DA1-的電壓極性再次取反,成為同相電壓輸出信號DA1+。DA1-和DA1+可以作為一對差分信號輸出,也可以單獨使用DA1+作為單端信號進行輸出。
2.2編碼器接口電路
在運動控制類的伺服設(shè)備中,位置信號常采用正交編碼信號進行反饋。正交編碼信號有A、B兩個信號,它們的脈沖數(shù)與位移成比例、脈沖頻率與速度成比例。A、B信號的相位差為90°,當(dāng)正方向運動時A信號超前B信號90°,反方向運動時B信號超前A信號90°[6],由此可以判斷運動方向和運動距離。
由于正交編碼信號只能提供相對移動量信息,無法提供絕對位置信息,因此,需要另外的Z信號脈沖指示位置原點。為了增強抗干擾能力,實際的正交編碼信號常采用差分信號對進行傳輸。本裝置包含2組編碼器接口電路。以第一組編碼器信號為例,為了處理正交編碼信號,首先將3組差分信號轉(zhuǎn)換為單端信號,并將信號變換為3.3 V的CMOS電平,以便和單片機連接。STM32F429的定時器具有正交編碼信號計數(shù)功能,需要將A1信號和B1信號分別連接到定時器TIM1的通道1和通道2上[7]。Z1信號連接到普通的輸入管腳,可以在該管腳的輸入中斷中對TIM1的計數(shù)清零,實現(xiàn)絕對坐標(biāo)的定位。
2.3A/D接口電路
A/D接口用于采集模擬輸出傳感器的信號并轉(zhuǎn)化為數(shù)字信號。STM32F429內(nèi)部帶有集成的ADC,可以將0~3.3 V的模擬信號轉(zhuǎn)換為數(shù)字信號。A/D接口原理如圖3所示:反相放大器將AIN1變換為-1.65 V~+1.65 V,再通過加法器與1.65 V固定電壓疊加,最終將電壓變換為0~3.3 V,輸入到單片機的ADC管腳上。
圖3 A/D接口原理
2.4I/O接口設(shè)計
I/O接口用于連接開關(guān)量的輸入、輸出裝置。本實驗裝置采用工業(yè)設(shè)備中最常用的24 V直流控制信號。在輸出通道中,將單片機的通用輸出信號通過光電耦合器件進行信號隔離,再通過達(dá)林頓三極管進行電流放大。在輸入通道中采用光電耦合器件進行隔離和電壓轉(zhuǎn)換,將轉(zhuǎn)換后的信號接入單片機的通用輸入管腳。每個輸入/輸出信號上均配有LED指示燈,可以清楚地看到I/O接口的開關(guān)狀態(tài)。由于采用了信號隔離措施,有效地提高了信號的抗干擾能力。
3.1軟件環(huán)境的建立
開放式伺服控制實驗裝置的操作系統(tǒng)為Windows 7專業(yè)版。為建立開放式伺服控制軟件環(huán)境,需要安裝Matlab R2013b及Simulink軟件包,且須確認(rèn)已安裝Matlab Coder、Simulink Coder和Embedded Coder模塊,以用于模型代碼自動生成。此外,還需要安裝單片機的嵌入式軟件開發(fā)環(huán)境,包括STM32CubeMx、ST-Link仿真器驅(qū)動程序和Keil ARM MDK。STM32CubeMx是圖形化的單片機配置和固件自動生成工具;ST-Link用于連接伺服控制實驗裝置的下載/調(diào)試接口;Keil ARM MDK是ARM單片機的C語言集成開發(fā)環(huán)境,可以完成軟件工程管理、代碼編輯、程序編譯、鏈接、燒寫、調(diào)試等功能[8]。
為了在Simulink環(huán)境建立的模型中調(diào)用單片機的硬件模塊,還需要下載安裝STM32 Matlab Target工具箱。該工具箱包含了STM32系列單片機的ADC、DAC、GPIO、I2C、TIMERS、USART和xWDG等模塊,可以直接將所需的模塊拖拽到Simulink控制模型中使用。
3.2實驗支持庫的開發(fā)
為了進一步提高實驗裝置的開放性和易用性,設(shè)計了一套實驗支持庫,在原有控制程序中增加了圖形顯示、數(shù)據(jù)采集和數(shù)據(jù)傳輸功能。這套軟件庫具有通用性,可以在控制代碼中直接調(diào)用。
(1) 圖形顯示。圖形顯示模塊用于在液晶顯示器上進行圖形顯示。圖形顯示分為2層:底層包含點、線、矩形繪制、矩形填充、文字顯示等基本繪圖操作功能;上層是圖形組件顯示功能,包含示波器組件、數(shù)字表組件、靜態(tài)文本組件等。組件顯示內(nèi)容可以根據(jù)實時狀態(tài)進行動態(tài)刷新,其中示波器組件可以設(shè)定需要觀測的信號數(shù)量和地址,以及時間(橫坐標(biāo))、信號幅度(縱坐標(biāo))的刻度、顯示位置等參數(shù)。在控制器運行期間,示波器可以實時顯示設(shè)定信號的時間曲線,實現(xiàn)對多組內(nèi)部和外部信號的顯示。
(2) 數(shù)據(jù)采集。數(shù)據(jù)采集模塊可定義需采集信號的類型、信號地址、數(shù)據(jù)存儲地址、采集長度等參數(shù),在控制程序執(zhí)行期間實時采集各種信號數(shù)據(jù),可供圖形顯示或數(shù)據(jù)傳輸模塊使用。
(3) 數(shù)據(jù)傳輸。在數(shù)據(jù)傳輸模塊中可以設(shè)置采集數(shù)據(jù)的類型和地址,以及通信參數(shù)。通信協(xié)議采用標(biāo)準(zhǔn)的xmodem協(xié)議[9],將實驗裝置的RS-232接口與計算機的串行通信口相連,即可在計算機上用超級終端等軟件接收數(shù)據(jù)并存儲為數(shù)據(jù)文件。在Matlab下設(shè)計了用于解析數(shù)據(jù)文件的函數(shù),可以讀取數(shù)據(jù)文件并轉(zhuǎn)化為Matlab矩陣,供進一步分析使用。
3.3伺服控制程序設(shè)計流程
本實驗裝置采用開放式的程序設(shè)計模式,可以通過Simulink對控制算法進行圖形化編程,伺服控制程序設(shè)計流程如圖4所示。
圖4 伺服控制程序設(shè)計流程
在設(shè)計前,需要對Simulink的模型參數(shù)進行設(shè)置,選擇Fixed-step固定步長求解器,設(shè)置采樣周期為0.001 s。在代碼生成選項中選擇stm32.tlc,并在STM32 Options中設(shè)置STM32CubeMx和STM32-MAT Target的安裝路徑,將STM32作為目標(biāo)平臺進行編譯。然后,在Simulink中建立控制器模型和被控對象模型。若仿真實驗結(jié)果不滿足要求,可以修改模型或調(diào)整參數(shù),直至滿足要求。
控制器模型驗證后可以進行代碼自動生成。首先需要刪除被控對象模型,并將控制器的輸入/輸出接口用STM32 Adapter中的模塊替換,以便操作單片機上的各個外設(shè)。模型中需要包含STM32_Config模塊,并在此模塊中選擇單片機的.ioc配置文件。.ioc配置文件是在STM32CubeMx中生成的,已經(jīng)按照實驗裝置的電路進行了設(shè)置,可以自動產(chǎn)生硬件驅(qū)動程序和初始化代碼。設(shè)置完成后,按Build model按鈕,即可自動生成伺服控制程序的C語言源代碼。
控制代碼生成后,會自動打開STM32CubeMx,并打開用戶指定的.ioc文件。此時,按Generate Code按鈕即可生成一個完整的軟件工程,包含Simulink生成的控制算法源代碼,并自動生成所需要的硬件驅(qū)動程序。用Keil軟件可以直接打開工程文件并查看源代碼。用戶可以在源代碼中添加并調(diào)用前述的實驗支持庫,增加圖形顯示、數(shù)據(jù)采集與傳輸?shù)裙δ?。最后可以編譯、鏈接源程序,生成可執(zhí)行的二進制文件,下載到實驗裝置中進行實際運行測試。
開放式伺服控制實驗裝置的實物照片見圖5。進行伺服控制實驗時,控制板需要連接伺服驅(qū)動器,下載電纜、5V和24V電源。如果需要傳輸數(shù)據(jù),還要用RS-232接口連接計算機的串行通信接口。以伺服電機的位置、速度雙閉環(huán)控制實驗為例[10],采用松下MINAS A4交流伺服驅(qū)動器和交流伺服電機,將伺服驅(qū)動器設(shè)置為轉(zhuǎn)矩控制方式并設(shè)置轉(zhuǎn)矩增益、反饋脈沖分倍頻分子、分母等參數(shù)。將伺服驅(qū)動器的模擬量輸入管腳和脈沖輸出管腳分別與實驗裝置的D/A接口和編碼器接口相連,伺服使能和報警信號分別與實驗裝置的I/O管腳相連。Simulink控制模型中各個輸入/輸出模塊按照實際連接情況設(shè)置。在自動生成的程序中,找到代表實際位置的信號變量,調(diào)用實驗支持庫中的數(shù)據(jù)采集模塊進行采集,然后傳遞到圖形顯示模塊,可以顯示位置信號的響應(yīng)曲線。
圖5 開放式伺服控制裝置實物照片
實驗采用位置階躍指令,下載控制程序并執(zhí)行后,可以看到電機轉(zhuǎn)動到指定位置,并在屏幕上顯示實際位置的階躍響應(yīng)曲線。通過調(diào)用數(shù)據(jù)傳輸模塊,可將采集的數(shù)據(jù)上傳至計算機,用Matlab作進一步分析。由于采用開放式的設(shè)計方法,使用者可以嘗試搭建不同的控制器模型實現(xiàn)閉環(huán)控制,并通過實際驗證比較各種方法的特點。目前該實驗裝置已成功實現(xiàn)了伺服電機的控制接口、速度控制、位置控制、加減速控制、系統(tǒng)辨識、前饋控制、雙軸聯(lián)動控制、PID神經(jīng)網(wǎng)絡(luò)控制、交叉耦合控制等實驗[11-12]。
基于Simulink的開放式伺服控制實驗裝置采用高性能單片機,設(shè)計了伺服控制專用的A/D、D/A、編碼器、I/O接口,并集成了彩色液晶顯示、按鍵、LED、程序下載和通信接口,實現(xiàn)了開放式、圖形化的伺服控制程序設(shè)計與仿真,并可自動生成控制器代碼。開放的設(shè)計方法使得實驗方案靈活多樣,既能滿足一般驗證性實驗的需要,也便于開展創(chuàng)新性的設(shè)計實驗。
References)
[1] 廖曉鐘,劉向東.控制系統(tǒng)分析與設(shè)計[M].北京:清華大學(xué)出版社,2008.
[2] 賈秋玲,袁冬莉,欒云鳳.基于MATLAB 7.x/Simulink/Stateflow系統(tǒng)仿真、分析及設(shè)計[M].西安:西北工業(yè)大學(xué)出版社,2006.
[3] 尚麗,淮文軍.基于Matlab/Simulink和GUI的運動控制系統(tǒng)虛擬實驗平臺設(shè)計[J].實驗室研究與探索,2010,29(6):66-71.
[4] 劉杰.基于模型的設(shè)計及其嵌入式實現(xiàn)[M].北京:北京航空航天大學(xué)出版社,2010.
[5] 田谞,王宏偉,其木蘇榮.基于STM32F429的音頻信號發(fā)生器[J].微型機與應(yīng)用,2014,33(24):87-90.
[6] 焦東升,張秀彬,應(yīng)俊豪.基于正交編碼器高精度測速方法的研究[J].微型電腦應(yīng)用,2010,26(10):13-15.
[7] 吳濤,李勇波,楊靖.基于STM32的變頻器+編碼器精確定位控制系統(tǒng)設(shè)計[J].機床與液壓,2013,41(14):98-99.
[8] 王海燕,楊艷華.Proteus和Keil軟件在單片機實驗教學(xué)中的應(yīng)用[J].實驗室研究與探索,2012,31(5):88-91.
[9] 黃琰,俞建成,金文明.基于改進Xmodem協(xié)議的水下滑翔機通信系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2013,32(3):120-123.
[10] 孫宇,王志文,孔凡莉,等.交流伺服系統(tǒng)設(shè)計指南[M].北京:機械工業(yè)出版社,2013.
[11] 徐麗娜.神經(jīng)網(wǎng)絡(luò)控制[M].3版.北京:電子工業(yè)出版社,2009.
[12] 王麗梅,武志濤,孫宜標(biāo),等.直接驅(qū)動XY平臺輪廓誤差分析及法向交叉耦合控制[J].電機與控制學(xué)報,2010,14(9):63-68.
Design of an open servo control experimental kit based on Simulink
Dong Jingchuan, Wang Taiyong, Lu Gangqing, Li Xiaoqi, Zhang Yongbin, Wang Zijing
(School of Mechanical Engineering,Tianjin University,Tianjin 300354,China)
The conventional servo control experimental kits are lack of openness and difficult for programming. To overcome these problems,an open servo control experimental kit based on the Simulink software is designed. The hardware of the experimental kit is based on the STM32F429 microcontroller,which includes AD,DA,encoder and general purpose IO ports for the servo control,and a color TFT monitor and an RS-232 communication port. The software platform is based on the Simulink,which allows users to perform servo algorithm design,simulation,execution,data exchange and analysis. The platform is open,modular,graphical and easy to use,thus makes it suitable for perform verification and innovative servo control experiments. The experimental kit can satisfy the requirements of servo control courses.
servo control; experimental kit; microcontroller; Simulink
10.16791/j.cnki.sjg.2016.09.032
2016-03-08
國家自然科學(xué)基金項目(51475324);天津市科技重大專項與工程項目(15ZXZNGX00170);江蘇省工業(yè)裝備數(shù)字制造及控制技術(shù)重點實驗室開放研究基金課題(DM2015001);天津大學(xué)實驗室建設(shè)與管理改革項目
董靖川(1983—),男,天津,博士,工程師/實驗師,主要研究方向為數(shù)控技術(shù).
E-mail:new_lightning@aliyun.com
TP23
A
1002-4956(2016)9-0126-04