徐建明,支文龍,周家豪
(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)
運動控制系統(tǒng)課程是高校自動化專業(yè)一門很重要的專業(yè)課程,該課程是一門綜合了多學(xué)科的綜合性課程,具有很強的實踐性和應(yīng)用性[1]。因此實驗操作對于該課程非常重要,通過在課程中結(jié)合實驗對于學(xué)生學(xué)習(xí)直流與交流電機的調(diào)速系統(tǒng)理論知識有很大的幫助,與此同時在實驗設(shè)計電機驅(qū)動控制系統(tǒng)過程中學(xué)生實踐能力也能夠得到提高。
在傳統(tǒng)的運動控制系統(tǒng)實驗教學(xué)中,一般常見的實驗方式有:一種是在實驗室中,對電機的基本參數(shù)進行測量,通過工程設(shè)計的方法設(shè)計出電流調(diào)節(jié)器和轉(zhuǎn)速調(diào)節(jié)器,然后在實驗臺上進行接線,調(diào)參等操作來實現(xiàn)對電機的控制。另一種是在Matlab/Simulink中搭建控制模型,通過仿真的模式來對控制系統(tǒng)進行研究[2]。兩種方式都有一定的局限性,前者側(cè)重實際應(yīng)用,因此在實驗前需要經(jīng)過繁瑣的設(shè)計與計算;后者側(cè)重仿真,結(jié)果會偏于理想化。
針對運動控制系統(tǒng)課程實驗平臺的不足,國內(nèi)外對于運動控制系統(tǒng)課程實驗平臺設(shè)計的研究也有不少。文獻[3]介紹了一種基于 TMS320F2812 DSK 的低成本電機控制測試臺。文獻[4]介紹了一種用于設(shè)計和實現(xiàn)嵌入式控制軟件的實驗平臺。文獻[5]將Matlab/Simulink和SimPowerSystems工具箱引入到了運動控制系統(tǒng)課程的實驗教學(xué)中。文獻[6]介紹了將Matlab/Simulink仿真與實際硬件設(shè)備控制相結(jié)合的實驗平臺。文獻[7]從運動控制系統(tǒng)課程特點和實踐環(huán)節(jié)各類實驗的特點分析入手來建設(shè)實驗平臺。文獻[8]介紹了一種新型的快速控制原型系統(tǒng),該系統(tǒng)將控制類課程仿真與動手實踐相結(jié)合,學(xué)生通過該系統(tǒng)可以專注于控制系統(tǒng)設(shè)計、仿真和實驗控制驗證,而不是單純編程。文獻[9]介紹了一種永磁同步電機控制系統(tǒng)的實驗平臺,該平臺實現(xiàn)了仿真和硬件平臺控制的結(jié)合。
基于模型設(shè)計(MBD,model based design)是一種系統(tǒng)工程方法,其基本思想是通過對系統(tǒng)進行建模、仿真和驗證,實現(xiàn)對系統(tǒng)的整個周期設(shè)計、開發(fā)和測試的自動化管理[10]。MBD在工程實踐中應(yīng)用廣泛,包括航空、汽車、醫(yī)療器械等領(lǐng)域[11-12]。MBD的重點是建模語言和工具的研究,在建模工具方面,Simulink是應(yīng)用最廣泛的基于模型設(shè)計的工具之一,dSPACE、NI LabVIEW、Rhapsody等軟件也是MBD工程實踐中使用最多的工具[13-14]。此外,研究者還致力于探索新的建模語言和工具,以提高MBD的建模效率和可靠性[15]。
除了上述的應(yīng)用領(lǐng)域之外,MBD還可以用于嵌入式系統(tǒng)的開發(fā)[16-17]。嵌入式系統(tǒng)的開發(fā)和測試比一般的軟件開發(fā)更加復(fù)雜和困難,MBD可以提高嵌入式系統(tǒng)的開發(fā)效率和質(zhì)量,縮短開發(fā)周期,降低開發(fā)成本[18-19]。相對于傳統(tǒng)的嵌入式設(shè)計開發(fā)模式,基于模型設(shè)計的開發(fā)模式以模型作為中心,從模型搭建到代碼自動生成一體化實現(xiàn)了高度自動化的開發(fā)流程[20]。這種開發(fā)模式的優(yōu)點在于用戶只需在模型上根據(jù)需求設(shè)置寄存器的工作方式就可以自動生成用于工程應(yīng)用的C代碼。這不僅加快了開發(fā)過程,還免去了手寫代碼可能帶來的程序漏洞。同時,這種模式提供了接口來連接算法模型,讓嵌入式工程師更專注于算法設(shè)計,真正實現(xiàn)了高效開發(fā)[21]。
本文使用Matlab軟件中的可視化仿真工具Simulink,用基于模型設(shè)計的方法來設(shè)計一個運動控制系統(tǒng)的實驗平臺,實驗平臺主要由PC端、驅(qū)動器和控制對象三部分構(gòu)成。用戶通過Matlab/Simulink對控制對象搭建仿真模型,并在Matlab/Simulink環(huán)境中對仿真模型進行仿真且對仿真結(jié)果進行分析,當(dāng)?shù)玫嚼硐氲男Ч麜r再對其進行軟件在環(huán)仿真與處理器在環(huán)仿真驗證。最后在PC端環(huán)境中將模型控制算法自動生成C代碼工程形式,使用Keil5編譯環(huán)境對C代碼工程編譯后載入以STM32為主控的驅(qū)動器中進行實物驗證。用戶通過操作實驗平臺可實現(xiàn)從建模仿真到實物驗證實驗一體化。
實驗平臺主要由PC端、驅(qū)動器和控制對象三部分構(gòu)成,如圖1所示。用戶在PC端使用Matlab/Simulink軟件平臺可進行對被控對象的建模仿真操作。當(dāng)仿真結(jié)果達到理想效果時,在PC端使用Matlab/Simulink軟件和STM32CubeMX軟件將模型生成C代碼工程,最后使用Keil5編譯環(huán)境對生成的C代碼工程編譯并載入到驅(qū)動器中執(zhí)行實物測試的功能。
圖1 實驗平臺
實驗平臺的PC端主要為用戶提供構(gòu)建控制對象模型、STM32微處理器配置以及代碼自動生成的環(huán)境。在設(shè)計實驗平臺時需要對PC端的環(huán)境進行配置,主要是安裝Matlab、STM32CubeMX和Keil5這3個軟件。其中Matlab/Simulink是實驗平臺PC端運行環(huán)境的核心,實驗平臺的模型搭建與代碼自動生成都在Matlab/Simulink中運行。
實驗平臺中驅(qū)動器使用的微處理器是ST公司的STM32G474VET6,由于Simulink的模型庫管理器中沒有STM32相關(guān)的模型功能塊,因此需要在Matlab/Simulink中安裝ST公司開發(fā)的STM32-MAT/TARGET embedded target工具箱。STM32-MAT/TARGET是Simulink中包含STM32功能模塊的硬件庫,在安裝該硬件庫后Simulink的模型庫管理器中會添加STM32對應(yīng)功能模塊的模型,如ADC library、GPIO library、MCU CONFIG library、TIMERS library等等。其中MCU CONFIG模塊是STM32微處理器模塊,該模塊是Matlab/Simulink與STM32CubeMX之間的“橋梁”,在Simulink中設(shè)置更新STM32CubeMX的路徑后通過MCU CONFIG模塊可以啟動STM32CubeMX軟件。
圖2為系統(tǒng)平臺驅(qū)動器的硬件設(shè)計總體框圖,總體分為兩個部分:以STM32微處理器為主控的控制電路部分和驅(qū)動電路部分。其中,控制電路的微處理器為 STM32,其主要對整個驅(qū)動控制系統(tǒng)進行任務(wù)分配和控制。控制模塊主要負(fù)責(zé)處理傳感器模塊采集回來的數(shù)據(jù)并對其進行計算處理,如編碼器電路采集的電機轉(zhuǎn)子位置信息和轉(zhuǎn)速信息以及電流采集電路采集的電流信息。驅(qū)動模塊主要通過接收控制模塊傳輸?shù)男盘杹砀淖凃?qū)動電路的狀態(tài)實現(xiàn)對電機的控制,并將電機的運行數(shù)據(jù)反饋給控制模塊。電源模塊主要將輸入電源電壓通過升壓或降壓轉(zhuǎn)換為電路中各個模塊所需的電壓,對電路中各個模塊進行供電。
圖2 系統(tǒng)平臺驅(qū)動器硬件框架圖
實驗平臺利用Matlab軟件平臺的Simulink結(jié)合ST公司開發(fā)的針對STM32微處理器的Simulink庫STM32-MAT target工具箱實現(xiàn)從建立運動控制系統(tǒng)的仿真模型到自動生成可讀寫和可移植的C代碼工程文件,并在STM32微處理器上實際運行。整個設(shè)計的流程大致分為5個步驟:
1)建立仿真模型進行模型在環(huán)仿真(MIL,model in the loop),建模仿真是一種模擬、分析和預(yù)測實際系統(tǒng)運行的一種方法,其與實驗有一定的區(qū)別。對于一些復(fù)雜的控制系統(tǒng),相對成本較高,通過建立仿真模型可以預(yù)測系統(tǒng)可能出現(xiàn)的問題和風(fēng)險,提前采取措施以減少事故和損失。因此建模仿真可以提高系統(tǒng)的效率、減少風(fēng)險和成本,優(yōu)化方案選擇,從而為系統(tǒng)的研究和決策提供有力支持。
2)軟件在環(huán)仿真(SIL,software in the loop),軟件在環(huán)仿真是一種系統(tǒng)級仿真技術(shù),它通過在計算機上運行虛擬系統(tǒng)來評估和驗證嵌入式軟件的性能和功能。
3)處理器在環(huán)仿真(PIL,processorin theloop),處理器在環(huán)仿真是一種廣泛應(yīng)用于嵌入式系統(tǒng)開發(fā)中的仿真技術(shù)。在PIL仿真中,嵌入式處理器和相關(guān)外設(shè)被實際連接到仿真環(huán)境中,并與運行在主機計算機上的軟件模擬器進行交互。
4)模型設(shè)置生成代碼的優(yōu)化,Matlab/Simulink平臺在基于模型設(shè)計中提供了兩方面的優(yōu)化方式:一種是通過改變模塊之間信號線的存儲類型從而改變代碼生成時的變量類型方式;另一種是在搭建控制算法模型時利用結(jié)構(gòu)化的思想將整個模型分解成一個個子系統(tǒng),并將代碼生成在自定義的文件的自定義函數(shù)中,以便于移植和調(diào)用[22]。以SVPWM算法為例,SVPWM算法模型設(shè)置生成代碼的優(yōu)化配置與其生成的代碼如圖3(a)所示,優(yōu)化后的生成代碼以函數(shù)形式單獨生成在自定義的文件中,函數(shù)名為自定義的名稱(如圖3(b)所示)。
圖3 模型生成代碼的優(yōu)化配置
5)配置微處理器模型的參數(shù)結(jié)合控制算法的模型利用MATLAB/Simulink自動生成代碼,將其應(yīng)用到實驗平臺進行測試。
以永磁同步電機的轉(zhuǎn)速、電流雙閉環(huán)控制系統(tǒng)為例,使用基于模型設(shè)計的方法,按照模型在環(huán)仿真、軟件在環(huán)仿真、處理器在環(huán)仿真最后到實驗平臺進行實物測試的順序來詳細(xì)介紹實驗平臺如何實現(xiàn)從仿真到實物測試并通過實驗結(jié)果來驗證實驗平臺的可行性。
在工程設(shè)計中,轉(zhuǎn)速、電流雙閉環(huán)控制系統(tǒng)的設(shè)計原則是先設(shè)計內(nèi)環(huán)再設(shè)計外環(huán),一般先設(shè)計電流環(huán),將其作為內(nèi)環(huán),確定電流調(diào)節(jié)器的設(shè)計方案后,把電流環(huán)等效成外環(huán)的一個環(huán)節(jié),再設(shè)計外環(huán)即轉(zhuǎn)速環(huán)[23]。
對于電流環(huán)來說,它是控制系統(tǒng)的內(nèi)環(huán),主要負(fù)責(zé)控制電機的電流,因此電流環(huán)的好壞直接決定系統(tǒng)的穩(wěn)定與否。在電流瞬變的過程中,反電動勢可以暫時被認(rèn)為是基本不變的,這是因為電流變化的時間尺度遠(yuǎn)遠(yuǎn)快于電機轉(zhuǎn)速的變化時間尺度。因此,在瞬態(tài)過程中,可以忽略反電動勢的作用,將電機視為一個純電阻負(fù)載進行分析,簡化控制系統(tǒng)的建模和控制器的設(shè)計。如圖4(a)所示為忽略反電動勢影響的電流環(huán)動態(tài)結(jié)構(gòu)圖。
圖4 電流環(huán)結(jié)構(gòu)圖
在電機控制過程中,通常需要進行數(shù)字信號處理和模擬信號轉(zhuǎn)換。如圖4(b)所示,圖中A表示數(shù)字量電壓轉(zhuǎn)換為模擬量電壓的比值系數(shù),通過換算可將數(shù)字量電壓轉(zhuǎn)換成對應(yīng)的模擬電壓輸出給電機。B表示模擬量電流轉(zhuǎn)換為數(shù)字量電流的比值系數(shù),通過換算可將電機采樣的模擬電流信號轉(zhuǎn)換成對應(yīng)的數(shù)字量用于控制器內(nèi)部的計算。根據(jù)對應(yīng)關(guān)系通過公式(1)可得出A和B的值。
(1)
在公式(1)中,Vbus為母線電壓,kop為對應(yīng)電流傳感器上的電流與電壓的比值。在設(shè)計電流環(huán)時,將其按照典型一型系統(tǒng)來設(shè)計,所以采用PI調(diào)節(jié)器作為電流環(huán)的調(diào)節(jié)器。
在設(shè)計速度環(huán)時,將電流環(huán)作為其整個環(huán)節(jié)中的一個一階慣性環(huán)節(jié)來代替,速度環(huán)的動態(tài)結(jié)構(gòu)圖如圖5所示。
圖5 速度環(huán)動態(tài)結(jié)構(gòu)圖
為了消除轉(zhuǎn)速靜差并提高控制系統(tǒng)響應(yīng)速度和穩(wěn)定性,需要在負(fù)載擾動作用點前添加一個積分環(huán)節(jié),并將其納入轉(zhuǎn)速調(diào)節(jié)器中。這將使系統(tǒng)能夠快速消除靜差,以提高系統(tǒng)響應(yīng)速度和穩(wěn)定性。由于轉(zhuǎn)速環(huán)開環(huán)傳遞函數(shù)中已經(jīng)包含一個積分環(huán)節(jié)在擾動作用點后面,因此需要設(shè)計成典型Ⅱ型系統(tǒng)[23],因此轉(zhuǎn)速調(diào)節(jié)器(ASR)也采用PI調(diào)節(jié)器。
電流調(diào)節(jié)器和速度調(diào)節(jié)器具體設(shè)計方法參考文獻[23]中第四章的電流調(diào)節(jié)器與轉(zhuǎn)速調(diào)節(jié)器的設(shè)計部分。在設(shè)計調(diào)節(jié)器時需要注意的是:因為電流環(huán)作為內(nèi)環(huán),其輸出值直接影響電機的電流,因此速度環(huán)的輸出值通常作為電流環(huán)的參考值。在速度環(huán)輸出的參考值經(jīng)過電流環(huán)控制后,得到電機的實際電流值,為了保證電機的安全運行,需要對速度調(diào)節(jié)器的輸出值進行限幅。在系統(tǒng)啟動時,由于電機的轉(zhuǎn)速為零,內(nèi)環(huán)控制器的輸出為最大值,如果沒有飽和限幅的約束,將會導(dǎo)致輸出電壓超過電機額定電壓,從而產(chǎn)生過大的電流,這可能會損壞電機或其他部件。因此,引入飽和限幅可以避免這種情況的發(fā)生,通過限制輸出電壓和電流來控制電機的加速度,減少啟動過程中的超調(diào)量和啟動電流的波動。雖然飽和限幅可能會降低系統(tǒng)的響應(yīng)速度和啟動效率,但是它可以有效地保護電機和系統(tǒng)組件,提高系統(tǒng)的可靠性和穩(wěn)定性。
對控制對象建立模型是實驗流程的第一步,也是很重要的一個步驟。在建立模型時通過對被控對象參數(shù)進行分析,利用Simulink中的物理建模工具箱(Simscape、Simmechanics、Simdriveline等)構(gòu)建控制對象模型,根據(jù)控制對象選擇合適的逆變器建立滿足需求的系統(tǒng)控制模型[24-25]。由于本次實驗案例中的控制對象是永磁同步電機,因此在構(gòu)建控制算法模型中使用了電壓空間矢量脈寬調(diào)制算法(SVPWM,space vector pulse width modulation)。如圖6所示為永磁同步電機的矢量控制框圖,其中控制對象模型只在仿真的階段中使用,在代碼生成時只對控制算法模型進行生成C代碼的操作。
圖6 矢量控制框圖
根據(jù)矢量控制框圖,在Matlab/Simulink中建立仿真模型如圖7所示,搭建Clark坐標(biāo)變換模塊、Park坐標(biāo)變換模塊及其逆變換模塊、ACR調(diào)節(jié)器與ASR調(diào)節(jié)器模塊以及SVPWM控制算法模塊等構(gòu)成控制算法模型(如圖7(a)所示)。在控制算法模型中SpeedRef作為設(shè)定值為轉(zhuǎn)速調(diào)節(jié)器提供轉(zhuǎn)速目標(biāo)參考值;速度給定值與電機提供的三相電流值、轉(zhuǎn)子速度和位置為控制算法模型的輸入;輸出作為STM32的 CCR寄存器的設(shè)定值,通過改變CCR寄存器的值可以改變PWM輸出的脈寬從而控制電機的轉(zhuǎn)速。將控制算法模型封裝成新的模塊,命名為Speed and current double closed-loop control(如圖7(b)所示),在后續(xù)的SIL仿真和PIL仿真中通過直接調(diào)用該模塊進行實驗測試。
圖7 MIL仿真
軟件在環(huán)仿真具體的實現(xiàn)是通過建立軟件在環(huán)仿真模型,在SIL仿真中,硬件系統(tǒng)被替換為虛擬的模擬器或仿真器,而系統(tǒng)的軟件部分運行在這個仿真環(huán)境中。這種仿真技術(shù)可以在早期階段驗證系統(tǒng)的軟件部分的正確性和性能,從而降低系統(tǒng)集成的風(fēng)險和成本。如圖8(a)所示,將圖7中的控制算法部分模型添加到待測模型Model中,在Simulink環(huán)境下將待測模型設(shè)置為SIL模式。在仿真運行時,SIL模型會調(diào)用外部實驗平臺中的編譯器環(huán)境,將模型生成C代碼形式(如圖8(b)所示)在編譯器中運行并將結(jié)果輸送到Simulink仿真環(huán)境中。在設(shè)計軟件在環(huán)仿真時,將SIL模型與原模型并聯(lián)在一起仿真,在輸入相同的給定信號時,比較兩個模型的輸出結(jié)果來判斷模型生成代碼的功能與其是否等效。
圖8 SIL仿真
通過圖9可以看出SIL仿真輸出轉(zhuǎn)速曲線基本貼合給定轉(zhuǎn)速曲線,且輸出轉(zhuǎn)速與MIL模式的輸出轉(zhuǎn)速差值基本穩(wěn)定在5 rpm左右,最大不超過16 rpm。SIL仿真測試結(jié)果表明通過SIL仿真可以驗證生成的控制算法代碼在Simulink環(huán)境中與模型功能基本一致且能夠穩(wěn)定的運行。
圖9 SIL仿真輸出轉(zhuǎn)速
在PIL仿真中,嵌入式處理器和相關(guān)外設(shè)被實際連接到仿真環(huán)境中,并與運行在主機計算機上的軟件模擬器進行交互。這種仿真技術(shù)利用Simulink使模型與硬件平臺協(xié)同工作,控制算法的模型在Simulink中以Normal仿真模式和PIL仿真模式兩種不同的模式運行,Normal仿真模式以模型在環(huán)仿真形式在Simulink平臺中運行,PIL仿真模式需要將PIL模型先生成嵌入式C代碼的形式,然后將其編譯為目標(biāo)文件載入到硬件平臺中去,硬件平臺與PC端通過串口通信方式建立連接,建立Simulink與硬件平臺中上微處理器之間的通信通路。在仿真運行過程中Simulink的信號源模塊將當(dāng)前信號通過串口傳遞給硬件平臺的微處理器,經(jīng)過微處理器計算之后再將信號通過串口回傳到Simulink模型中,然后Simulink的信號源模塊再傳入下一個采樣點信號,重復(fù)上述操作。將PIL仿真結(jié)果與MIL模式仿真的結(jié)果進行比較,通過測試在給定相同的輸入?yún)?shù)兩種仿真模式下的輸出值并做對比看其差值是否在合理范圍內(nèi)來驗證系統(tǒng)的性能和功能[25]。
在對圖8(a)中模型進行SIL仿真驗證后,將其控制算法模塊部分改成PIL模式,并在Simulink平臺中通過Code generation 下的STM32 options中更新STM32CubeMX的路徑。在仿真運行之前,Simulink平臺會根據(jù)路徑啟動STM32CubeMX并配置硬件平臺微處理器串口通訊的對應(yīng)參數(shù)。利用STM32CubeMX將其生成C工程文件并利用Keil5編譯環(huán)境對工程文件編譯并載入到微處理器中驗證其能否在微處理器中正常運行,最后確定硬件平臺與PC端串口通訊正常之后在Simulink平臺中運行模型仿真,并通過在Simulink中通過調(diào)用Scope模塊獲取PIL仿真的結(jié)果與MIL仿真的結(jié)果。
從圖10可以直觀的看出在相同的給定轉(zhuǎn)速下,PIL仿真輸出的轉(zhuǎn)速與MIL模式仿真輸出的轉(zhuǎn)速軌跡基本吻合,且兩者的誤差穩(wěn)定在8 rpm以內(nèi)。PIL仿真測試結(jié)果表明通過PIL仿真可以驗證生成的控制算法代碼在Simulink環(huán)境中與模型功能基本一致且能夠穩(wěn)定的運行,進一步驗證了控制算法模型及其生成的C代碼工程的可行性。
圖10 PIL仿真
模型經(jīng)過PIL仿真測試驗證后,利用實驗平臺的真實環(huán)境對控制算法的可行性進行驗證,將實驗平臺中的驅(qū)動器和永磁同步電機替代仿真模型中模擬的控制對象部分。為了達到和仿真類似的效果,仿真中的電流反饋環(huán)節(jié)與轉(zhuǎn)速反饋環(huán)節(jié)將由硬件平臺中的傳感器以及采樣電路代替。在生成C代碼工程前,需要配置STM32微處理器的相關(guān)參數(shù)以及搭建STM32微處理器外設(shè)程序的相關(guān)模型。
通過Matlab/Simulink界面在Model Configuration Parameters中將Code Gengration的系統(tǒng)目標(biāo)文件(System target file)更改為stm32.tlc。然后設(shè)置更新STM32 Options中的兩個路徑STM32CubeMX installation path和Installed Full Path。STM32CubeMX的路徑更新后,在Simulink中添加MCU config功能塊,通過MCU config功能塊中的Start STM32CubeMX configuration tool選項便可啟動STM32CubeMX軟件對微處理器參數(shù)進行設(shè)置修改。確認(rèn)微處理器參數(shù)后,在Simulink界面點擊Build Model進行C代碼生成操作,Matlab/Simulink會結(jié)合STM32CubeMX軟件自動生成STM32工程文件。將生成的STM32工程文件放在Keil5環(huán)境中編譯并載入驅(qū)動器的微處理器中,最后通過實驗平臺進行實物測試。
本次實驗使用矢量控制(如圖6所示)的方法來搭建永磁同步電機轉(zhuǎn)速、電流雙閉環(huán)控制系統(tǒng)模型??刂葡到y(tǒng)模型中的微處理器芯片選擇的是意法半導(dǎo)體的STM32G-474VET6,代碼自動生成的模型整體結(jié)構(gòu)如圖11(a)所示,在設(shè)計搭建模型時從生成程序代碼運行邏輯的角度考慮,將本次實驗的執(zhí)行程序放在ADC的EOC(End Of Conversion)事件和Timers的Break事件兩個中斷中去執(zhí)行。其中定時器的break中斷放在TIM1的BRK中斷中,為了防止實驗平臺在進行實物測試實驗時電路中出現(xiàn)過流損壞電路的事件發(fā)生;將控制算法部分模型放在ADC的EOC中斷中,以確保在執(zhí)行控制算法程序時ADC已采集到反饋的電流并更新結(jié)束。
圖11 STM32控制模型圖
在對定時器的參數(shù)進行配置時,除了配置輸出PWM控制電機的參數(shù)外,還需要額外配置一個通道(該通道不需要設(shè)置輸出)作為ADC的外部觸發(fā)源用來觸發(fā)ADC的采樣。此外將TIM3設(shè)置為編碼器模式(Encoder Mode + index),其中TIM3的通道1和通道2作為增量式編碼器A相與B相的采集接口;ADC1的通道1和通道5分別作為電機B相電流和C相電流采集接口;TIM1的通道1、通道2和通道3與其互補通道作為PWM輸出接口(如圖11(b)所示)。
在Matlab/Simulink中模型自動生成代碼的過程時,模型生成的代碼通常會使用結(jié)構(gòu)體來表示模型中的各個模塊及其信號連接關(guān)系。這些結(jié)構(gòu)體在程序運行時會被實例化為具體的變量,并通過變量名來調(diào)用結(jié)構(gòu)體成員。在對模型進行代碼優(yōu)化時,將部分復(fù)雜的仿真模型設(shè)置為可重復(fù)使用的功能(Reusable function)。
相對于非可重復(fù)使用的功能(Noreusable function),對于一些復(fù)雜的仿真模型來說Reusable function模式的性能會更好。在代碼可讀性方面,Nonreusable function模式的程序可能會包含多個單獨的函數(shù),相比之下,Reusable function模式的程序會更易于理解。對于電機控制來說,處理器的運行時間是非常關(guān)鍵的,因此需要盡可能地優(yōu)化代碼,在對參數(shù)類型進行設(shè)置時,根據(jù)模型之間的信號關(guān)系可考慮將參數(shù)類型設(shè)為定點數(shù)的形式以減少計算時間和提高控制性能。
在模型中根據(jù)需求對代碼的優(yōu)化操作設(shè)置后進行仿真的最后一步操作:生成代碼。使用Keil5編譯環(huán)境對生成的C代碼工程文件進行編譯并載入STM32微處理器。在電機運行時通過串口將電機實時速度傳送到PC端,如圖12(b)所示,對比圖7(c)仿真中速度曲線可以看出,在平臺實物測試中電機的實時輸出轉(zhuǎn)速曲線與仿真基本一致,驗證了實驗平臺的可行性。
圖12 實驗平臺實物測試
本文針對傳統(tǒng)運動控制系統(tǒng)課程實驗平臺的不足,設(shè)計了一個基于Matlab的運動控制系統(tǒng)的實驗平臺。首先給出了實驗平臺的總體設(shè)計方案并介紹了實驗平臺的功能及其硬件結(jié)構(gòu);然后介紹了實驗平臺應(yīng)用基于模型的設(shè)計方法實現(xiàn)代碼自動生成,并對基于模型設(shè)計的開發(fā)流程進行了詳細(xì)的闡述;最后通過案例永磁同步電機轉(zhuǎn)速、電流雙閉環(huán)控制系統(tǒng)在實驗平臺經(jīng)過模型在環(huán)仿真、軟件在環(huán)仿真、處理器在環(huán)仿真最后到實驗平臺進行實物測試的流程來驗證實驗平臺的優(yōu)點及其可行性和有效性。