閆亞賓,田亞平,張強,汪一,李磊
(1.江蘇師范大學科文學院,江蘇徐州 221000;2.徐州市工程裝備虛擬智能制造工程研究中心,江蘇徐州 221000;3.徐州重型機械有限公司,江蘇徐州 221000)
控制系統軟件開發模式主要有兩種:一種是代碼開發,即手寫代碼,然后編譯生成可執行文件,進行測試和應用;另一種為基于模型的設計(Model Based Design, MBD),該模式以模型為中心,模型測試驗證后經過代碼生成器映射為嵌入式代碼。MBD 模式廣泛應用于航空[1-2]、艦船[3-4]、汽車[5-7]和工業機器人[8-9]等領域,為使教學貼近工程實際,部分高等院校開始將MBD 模式引入課堂。張磊[10]、劉濤等[11-12]將MBD 用于電機實驗教學,年珩等[13]、徐建明等[14]利用MBD 分別建立基于DSP 和STM32 的實驗平臺,為教學改革提供了新思路。
單片機(MCU)系統應用廣泛,相關專業的畢業生就業面寬。在組織單片機教學、實驗尤其是實訓過程中,缺少工程應用背景的學生難以理解、掌握和開發單片機系統。本文根據學校駐地研發企業的特點,提煉工程問題,將MBD 模式引入單片機系統實訓,建立MBD-MCU 實訓體系,符合《普通高等學校本科專業類教學質量國家標準》對工程實踐等方面的要求,也是地方應用型本科院校發展定位的具體表現。
對比代碼開發,MBD 模式在生成可執行文件前已完成系統測試,可于早期發現隱藏問題,降低工程應用風險。該模式還具有如下特點:
(1)以系統設計為主導,并行模塊化開發;
(2)可視化設計與仿真,直觀、易理解;
(3)可視化接口,便于軟件維護和升級;
(4)生成平臺無關代碼,便于快速移植;
(5)生成代碼標準符合性檢查,保證代碼一致性和安全性。
MATLAB/Simulink 提供了邏輯、算法的實時建模與仿真環境。MATLAB/Embedded Coder 為實現模型應用提供了可靠途徑,經過芯片類型、目標語言編譯器設置等步驟可將模型映射為嵌入式C 代碼。生成的C 代碼導入MCU 開發環境KEIL 可實現代碼集成和編譯。由此,可建立MATLAB/Simulink+Embedded Coder+KEIL 工具鏈。
自動化、電子信息工程等專業學生通常在控制系統設計與仿真等課程中已學習了MATLAB 軟件,這為MBD 模式的引入奠定了基礎。
MBD-MCU 實訓流程見圖1。

圖1 MBD-MCU 實訓流程
MBD-MCU 實訓內容主要包含MBD 和MCU 設計。MCU 設計部分與單片機課程基礎實驗內容基本一致,MBD 部分主要完成如下內容:
(1)熟悉MBD 模式,選型被控對象,分析控制需求;
(2)基于MATLAB/Simulink 建立控制模型;
(3)仿真驗證控制模型邏輯、時序和算法等;
(4)基于Embedded Coder,利用配置選項和優化工具將模型轉換為嵌入式C 代碼。
MBD-MCU 實訓使用軟件為MATLAB 和KEIL,硬件使用TT-MCU-4 單片機實驗實訓平臺(見圖2)。平臺擴展靈活,除51 單片機核心板之外,還支持AVR16、MSP430 和STM32 核心板。平臺配套獨立按鍵、五向搖桿、繼電器、步進電機、轉換器芯片等,用于系統測試。

圖2 實訓硬件平臺
3.2.1 需求分析
根據學校駐地企業的特點和優勢,選取移動式起重機為被控對象,其運動控制包含吊臂伸縮、變幅、卷揚起落等。以伸縮系統為例,控制原理見圖3。伸縮系統根據指令輸入、缸臂銷等檢測信號計算泵閥電流,控制泵閥和缸臂銷動作,使伸縮油缸前后往復運動,從而實現吊臂伸縮。

圖3 伸縮控制原理
3.2.2 系統建模
軟件開發中廣泛使用分層技術,優點在于提高系統的靈活性和可復用性,提升軟件開發效率[15]。伸縮控制模型的層次劃分見圖4。

圖4 伸縮控制模型層次結構
控制模型橫向分為邏輯處理、控制算法等模塊,控制算法模塊見圖5,縱向分為泵控、閥控和時序等可重用單元。實訓中的模型層次劃分方便學生循序漸進地完成任務,也為后續考核提供了參考。

圖5 控制算法模塊(部分)
3.2.3 仿真測試與代碼生成
根據功能需求,學生利用已有測試用例進行仿真驗證。驗證通過后,對控制模型進行代碼轉換,主要步驟為:設置求解器、配置代碼生成器、生成代碼和追溯性報告等(見圖6)。

圖6 生成代碼和追溯性報告
3.2.4 接口設計與系統測試
首先,指導學生設計MCU 硬件接口。MCU 外接獨立按鍵、繼電器,擴展連接搖桿和電機。獨立按鍵模擬傳感器狀態,繼電器模擬泵閥控制,電機模擬伸縮運動,搖桿模擬操縱輸入,輸出電壓信號并通過AD 芯片PCF8591 接入MCU。其次,學生使用KEIL 軟件建立工程,設計平臺代碼,實現硬件接口的信號解析和輸出,并通過匹配變量接口集成平臺代碼和模型代碼(見圖7)。最后,編譯、下載和驗證伸縮控制功能,記錄測試數據(見表1)。

表1 測試記錄表

圖7 集成代碼
采用范例和探究相結合的教學模式。首先,教師根據研發經驗,結合工程實際,介紹MBD 模式的應用現狀和前景;其次,示范MBD 流程,講解起重機主臂伸縮原理、控制方法和設計思路,使學生掌握MBD 開發工具并熟悉伸縮控制系統;再次,向學生示范模型層次劃分、代碼生成和MCU 接口設計;最后,依次從問題設置、分組(2 人/組)實施、觀察節點、驗收重點和討論總結等方面展開指導與考核。
實訓成績采取百分制,計算公式如下:
式(1)中:Sf表示最終成績,S表示初始成績,K表示差異化激勵系數,且Sf≤100,S≤100,K≤15%。激勵系數與實訓任務完成情況、單片機應用拓展等有關。初始成績中,考勤紀律占比10%,實操講解占比50%,實訓報告占比40%,報告包含系統需求分析、控制模型、仿真測試、代碼生成、MCU 接口和系統測試分析等。
隨著基于模型理念的深化,MBD 模式逐漸成為控制系統開發的主要途徑。本實訓教學改革可使學生熟悉MBD 模式,學會運用工具建立控制模型,掌握代碼生成技術、MCU 接口設計和聯調方法,綜合實踐能力得到提高。同時,通過實訓對被控對象進行工程化研究,學生可直接接觸工程應用,直觀感受行業企業對研發人才能力的需求,有效提升科研素養和就業競爭力。