吳 侃,于明禮,李 明
(南京航空航天大學機電學院,江蘇南京210016)
二元翼段模型常被用于氣動彈性控制理論與實驗研究。三自由度二元翼段模型的顫振主動抑制技術驗證中,控制面由作動器來控制驅動。而控制律的設計需要各傳感器的信號輸入,就需要對各個信號進行數據采集以便對系統的狀態實時監測。超聲電機具有響應快、定位精度高、斷電自鎖、扭矩/重量比大等優點[1-3],在機翼顫振主動抑制的實驗研究中,非常適合用于機翼副翼的作動器[4]。
含超聲電機的二元翼段顫振主動控制系統中,控制系統的通信監控界面是整個實驗系統工作的核心。而在現場控制和監測系統中,數據采集與處理模塊是系統的重要組成部分,且要求能與上位機進行實時通信。張焜鋋等[5]針對數字信號處理器和PC 機的通信需要,設計了一種基于TMS320LF2407A 的串行通信系統,通過串行外設接口SPI 和通用異步收發器URAT實現DSP 與PC 機的串行通信。程志成等[6]針對用戶經常面臨的DSP 系統與PC 機實時數據通信時通信接口標準不兼容的問題,提出了一種新的串行通信設計方案,實現了DSP 同步串口McBSP 與PC 機異步串口RS-232 的全雙工通信。韓芝俠等[7]利用SCI 串行通信接口實現DSP 與PC 機的通信,以便現場控制人員了解電機控制系統的轉速等信息。
Matlab 是一款高性能的數值計算和可視化軟件[8]。薛飛等[9]利用Matlab 串口工具箱,設計了基于Matlab GUI 的溫度實時監控系統,提高了溫度監控系統的數據處理速度。
筆者利用Matlab 的串口通信技術和對DSP 串行通信接口的配置,來實現DSP 與PC 機之間的數據通信,對采集的數據實時處理,使機翼顫振控制系統的輸入信號和測量到的數據能實時顯示波形,并對實驗用的超聲電機進行控制。
三自由度二元機翼模型截面圖如圖1所示。

圖1 三自由度二元機翼模型截面圖
超聲電機可以直接安裝在二元翼段控制面的轉軸上來驅動翼段模型的副翼。控制面和機翼俯仰方向的輸出轉角由數字編碼器實時測量,翼段沉浮方向的位移由激光位移傳感器精確測得。翼段實物模型如圖2所示。
各傳感器安裝位置如圖3所示。

圖2 二元翼段模型結構實物圖

圖3 各傳感器安裝位置實物圖
DSP 芯片采用改進的哈佛總線結構,可以同時完成獲取指令和數據讀取操作。除具備通用微處理器的高速運算和控制功能外,可用于實時、快速地實現各種復雜的數字信號處理算法[10]。滿足了二元翼段顫振主動抑制系統在高速數據傳輸、密集數據運算、實時數據處理等方面的需求。
實驗的控制系統由德州儀器公司的TMS320F2812型DSP 芯片為控制器,軟件部分由用于開發DSP 芯片的集成開發環境CCS 軟件和一個上位機Matlab GUI編寫的串口通信實時監控界面軟件共同組成。DSP 控制器的實物圖片如圖4所示。

圖4 TMS320F2812 型DSP 控制板
二元翼段顫振主動控制系統實驗平臺主要由超聲電機、超聲電機驅動器、TMS320F2812 型DSP 開發板、DSP 芯片電源、數字編碼器以及激光位移傳感器組成。整個控制系統的閉環控制流程圖如圖5所示。串口通信監控界面通過計算機的串口發送電機啟動指令觸發DSP 運行的中斷程序,DSP 芯片發出控制電機轉速和轉向的指令,通過超聲電機驅動器來控制電機,然后由編碼器測量超聲電機的實際轉角,將超聲電機的實際轉角采集再傳輸到DSP 芯片,與控制指令相比較,計算出誤差,再發出新的指令來對誤差進行相應的補償。

圖5 超聲電機控制系統閉環流程圖
1.3.1 二元翼段顫振控制系統控制律的設計
本實驗根據各傳感器測得的輸出量,基于最優控制理論[11]來設計最優控制律,即超聲電機控制律。受控系統的狀態方程為:

式中:B—反饋控制矩陣,βc—電機反饋控制律,X—系統狀態矩陣,Y—系統的狀態輸出矩陣。
顫振主動抑制的方法是利用極點配置理論,通過反饋控制改變原來開環系統的極點分布,由超聲電機驅動機翼控制面改變機翼的氣動力分布,使二元翼段系統趨于穩定并最終收斂。設計最優控制律的方法是尋求一個增益反饋矩陣Kcon,來求出超聲電機的控制律βc:

使目標函數J 取得極小值:

式中:Q—半正定加權矩陣;r—加權系數,取正值。
根據最優控制理論,可得:

式中:K*可根據Matlab 中的LQR 控制器求出。
1.3.2 超聲電機運動控制算法
超聲電機的運動控制呈非線性,且電機的性能易受外界因素的影響。因此,傳統的控制方法難以實現電機輸出的精確控制[12]。
本實驗對超聲電機的控制采用的是增量式PID 控制算法,來實時補償電機實際輸出轉角和電機控制律之間的偏差。控制環節包括比例環節、積分環節和微分環節。其原理圖如圖6所示。

圖6 PID 控制系統原理框圖
PID 控制器的控制規律可用下式表達:

式中:u(t)—調節的控制量,Kp—比例調節系數,Ti—積分時間常數,Td—微分時間常數,e(t)—位置誤差。
在DSP 處理器中,芯片只能處理數字信號,所以需將上式轉化為離散的增量模式:

式中:A1=Kp+KI+KD,A2=-Kp-2KD,A3=KD,KI=Kp/Ti,KD=Kp·Td。
DSP 運算速度高、尋址方式靈活、通信性能強大、控制器功耗小[13]。TMS320F2812 中含有的串行通信接口SCI 模塊支持DSP 系統與其他使用標準格式的異步外設之間的數字通信。SCI 接收器和發送器是雙緩沖的,即把DSP 的串行通信接口與RS232 串行口連接就能進行DSP 與PC 間的數據通信[14]。
本研究中,利用TMS320F2812 的SCI 模塊與PC機的COM1 按RS-232 通信格式進行數據通信。數據格式為:1 個起始位,8 個數據位,1 個奇/偶校驗位,1個停止位。數據幀格式如圖7所示。

圖7 空閑線模式數據幀
在異步串行通信過程中,除了接收和發送側的波特率要設置相同外,還必須設置為相同的數據格式。為了保證數據的完整性,SCI 對接收到的數據進行奇偶性校驗、超時錯誤檢測、溢出檢測和幀錯誤檢測。
TMS320F2812 的SCI 模塊支持兩種多處理器工作模式[15]。該設計中的DSP 控制器的SCI 模塊設置為空閑線工作模式。在該模式下,要求數據塊被一定長度的時間隔開,該時間間隔比數據幀間的間隔要長。一幀后的空閑時間(10 個或更多個高電平位)表明了一個新數據塊的開始。該模式下數據通信的詳細流程如下:
①初始化程序將SCI 設置成空閑線多處理器模式,程序開始后,DSP 處于SLEEP(偵聽)狀態,等待喚醒;②PC 機通過串口以廣播的形式向DSP 處理器發送命令幀,該幀含有兩個字節,第一個字節是地址,第二個字節為命令內容。SCI 接收到塊起始信號后即被喚醒。③CPU 響應一個SCI 中斷;④中斷服務程序將接收到的與接收節點預設的地址進行比較;⑤如果SCI 的分配地址與接收到的地址相符,則中斷服務程序清除SLEEP 位,并接收數據塊中的后續數據;⑥如果SCI 的地址與接收到的地址相符,則SLEEP 位仍保持在置位狀態,CPU 繼續執行主程序。直接檢測到下一個數據塊的開始時繼續從步驟②執行。
本實驗SCI 設置如下:

SCI 通信可采用查詢和中斷兩種方式進行。本研究中采用了中斷通信方式,即當DSP 的SCI 模塊接收到來自PC 機發送的命令幀后,向DSP 產生中斷請求,DSP 響應中斷請求,執行相應的中斷服務程序來向PC機發送相應的數據幀,之后返回主程序。這種工作方式的優點是DSP 初始化串口后不用再詢問它的狀態,而主程序依然執行,實現了DSP 與串行口的并行運行,提高了數據通信的效率。
詳細流程如圖8所示。

圖8 DSP 串行通信流程圖
本研究的Matlab GUI 串口通信監控界面設計主要有3 部分模塊構成:
在和DSP 控制器的SCI 通信時,可以通過數據收發模塊設置數據發送和接收的格式。為了實現對串口的操作,本研究設置了如下程序:
(1)建立和設置串口設備對象及其相關屬性:

(2)嘗試獲取串口,如果打開失敗,則顯示“串口不可獲得”窗口:

(3)如果檢測到串口有數據,嘗試獲取串口數據,并把數據轉化為十六進制字符串:

該串口通信界面具備通過串口向DSP 的SCI 模塊發送指令來觸發相應的中斷程序,可以控制DSP 控制器SCI 模塊發送數據的使能、超聲電機的啟停以及切換電機的控制律。
3.2.1 DSP 控制系統SCI 模塊的中斷服務程序


3.2.2 串口通信界面的控制指令程序

當通過串口發送命令幀時,就會觸發相應的中斷服務程序。若觸發數據顯示中斷程序,則DSP 開始向上位機發送傳感器測得的實時數據;若觸發電機控制中斷程序,則控制電機啟停以及控制律的切換。
串口通信監控界面的通信參數設置、數據收發模塊以及電機指令模塊如圖9所示。

圖9 數據收發和電機控制模塊
要實現串口通信的自動收發數據,可以定義串口中斷回調函數和定時器回調函數。串口中斷回調函數常用于防止串口的輸入緩沖區數據溢出,保證通信的穩定性。而定時器它是一類特殊的對象,適用于對數據的實時處理[16]。
3.3.1 串口中斷回調函數的屬性設置
BytesAvailableFcnMode 為Terminator 時,若讀取到Terminator 屬性指定的終止符,則產生bytes—available事件,并執行回調函數BytesAvailableFcn;當BytesAvailableFcnMode 為byte 時,若從輸入緩沖區讀取到BytesAvailableFcnCount 屬性指定的字節數時,則產生bytes—available 事件,并執行回調函數BytesAvailableFcn。而只有當異步讀操作時才能產生bytes—available 事件。本研究中的BytesAvailableFcnMode 設置為byte 模式,BytesAvailableFcnCount 設置的字節數為10。
3.3.2 用于接收數據實時顯示的定時器設置

由于Matlab 的單線程環境是其本身固有的缺陷,在執行某段程序時,無法同時完成其他的計算處理任務[17]。而在Matlab 中,定時器timer 可以定時觸發,周期性地執行指定的回調函數,而不會影響整個系統對用戶其它操作的響應。本研究在這里只列出了其中一個定時器的設置程序。
ExecutionMode 是定時器的執行模式,本設計中采用的是fixedspacing 模式,指第一次定時器回調函數TimerFcn 執行完成到第二次定時器回調函數開始排隊之間的時間為定時周期。定時器周期Period 設置為0.05 s。設置較長的定時周期可以使對數據的操作更加順暢。程序中的“ang1_plot_Callback”回調函數是對接收到的數據進行篩選,然后分組實時顯示。這里的定時器相當于在程序中加了一個線程操作。
本研究在二元翼段顫振主動控制系統的實驗平臺上對該串口通信監控界面進行了狀態響應監測和超聲電機控制測試。實驗時各振動波形實時顯示圖像如圖10所示。

圖10 串口通信控制界面
實驗結果表明,該串口通信監控界面運行穩定,能實時地控制超聲電機的啟停,包括電機控制律的切換。繪制的振動波形曲線準確、清晰。
基于RS-232 通信協議,本研究利用Matlab GUI 串口通信設計方法,對D SP 控制器SCI 模塊的設置,設計了一個能與TMS320F2812 型DSP 控制器進行數據通信的串口通信監控界面,滿足了對超聲電機控制系統穩定性和便捷性的要求,提高了實驗操作和執行的效率。
實驗結果表明,串口通信監控界面能實時地對二元翼段顫振控制系統進行狀態監測,控制超聲電機的啟停和控制律的切換,給用戶提供了分析整個控制系統的可靠依據。
[1]趙淳生.面向21世紀的超聲電機技術[J].中國工程科學,2002,4(2):86-91.
[2]KUMAR A, KROUSGRILL C M.Mode-splitting and quasidegeneracies in circular plate vibration problems:the example of free vibrations of the stator of a traveling wave ultrasonic motor[J].Journal of Sound and Vibration,2012,331(26):5788-5802.
[3]SEEMANN A,WOLFGANG.Ultrasonic traveling wave linear motor with improved efficiency[J].SPIE,Proceeding,1992(2716):554-564.
[4]于明禮,胡海巖.基于超聲電機作動器的二維翼段顫振主動抑制[J].振動工程學報,2005,18(4):418-425.
[5]張焜鋋,楊建華,杜新虎.DSP 串行通信系統設計與實現[J].微處理機,2010(6):23-26.
[6]程志成,金施群.PC 機與DSP 異步串口通信實現研究[J].現代顯示,2008(86):57-59.
[7]韓芝俠,杜新虎.基于DSP 的電機控制系統串行通信設計[J].機械與電子,2008(2):33-35.
[8]張 琨,高思超,畢 靖.Matlab 2010 從入門到精通[M].北京:電子工業出版社,2011.
[9]薛 飛,楊友良,孟凡偉,等.基于Matlab GUI 串口通信的實時溫度監控系統設計[J].計算機應用,2014,34(1):292-296.
[10]韓豐田,李海霞.TMS320F2812x DSP 原理及應用技術[M].北京:清華大學出版社,2014.
[11]胡壽松,王執銓,胡維禮.最優控制理論與系統[M].北京:科學出版社,2005.
[12]張金龍,徐 慧,劉金南.基于模糊神經網絡的精密角度定位PID 控制[J].儀器儀表學報,2012,33(3):549-554.
[13]沈忠鏗,張 波,陳立輝.基于windows 的PC 機與DSP串行通信[J].通信電源技術,2005,22(4):39-42.
[14]陸元亮.基于DSP 的數據采集與處理系統的設計與實現[D].南京:南京航空航天大學航空宇航學院,2004.
[15]三恒星科技公司.TMS320F2812 DSP 原理與應用實例[M].北京:電子工業出版社,2009.
[16]羅華飛.Matlab GUI 設計學習手記[M].北京:北京航空航天大學出版社,2014.
[17]傅曉波,胡念蘇.實現Matlab 定時處理功能[J].現代電子技術,2005(15):76-78.