999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Stateflow 的步進電機模型的代碼生成技術研究

2023-08-16 05:01:00孫哲倫王新春
無線互聯科技 2023年11期
關鍵詞:設置模型

孫哲倫,王新春

(內蒙古科技大學 信息工程學院,內蒙古 包頭 014010)

0 引言

由于現代工業技術的快速發展,產品的升級迭代日新月異。 近幾十年來,隨著對控制冗余度和安全性的要求越來越高,產品的控制編碼數量也越來越多,如現代汽車、航天飛機、航天飛船等,編碼數量在100萬行以上。 如今,越來越多的人在購買汽車時更加關注:(1)智能網絡功能,如自動駕駛、智能操作系統、感知融合和人工智能交互、大數據操作和汽車空中技術能力;(2)汽車核心系統,包括內部動力系統、電氣和電子架構等。 這些都需要代碼。

隨著代碼量的迅速擴大,傳統手工開發模式的缺陷非常明顯,面臨著產品開發周期被迫延長、研發投入多、產品可靠性難以保證等諸多難以克服的困難,產品開發和測試已經很難適應當前社會的要求。 目前,控制器的研發速度,在航空航天、汽車等領域,正變得越來越快。 而傳統的開發過程存在許多缺陷,例如:在功能需求分析階段引入的錯誤通常會在最后的測試階段發現,從而導致開發過程嚴重受阻甚至被推后。 作為項目開發常用到的單片機,DSP 系列芯片具有強大的數字處理運算能力,可以將復雜的信號處理算法應用至實時的信號處理中,在電力電子、電機控制等領域得到了非常廣泛的應用[1]。 但是隨著DSP的不斷更新換代,代碼越來越復雜,利用DSP 進行開發時需要對DSP 硬件性能和各種端口及外設有足夠的了解,開發門檻高,這樣很不利于系統的快速開發[2],因此一種更加便捷快速的代碼開發方式被迫切需要。

1 代碼生成技術

代碼生成技術是指使用特定的軟件(MATLAB)或者軟件中的工具箱,建立目標代碼的仿真模型,并根據所需的目標配置自動生成嵌入式系統應用程序的現代化技術。 在當時提出這一概念時,它被認為是智能設計和建模領域的一項發明,受到了工業界和學術界研究人員的關注和應用。

與傳統的設計方法相比,MBD 的各個過程是集成在一起的。 開發人員可以專注于算法和測試用例的建模。 利用Embedded CoderTM 可自動生成控制器代碼,減少人工編程的人力、物力和時間,已成功應用于大型項目的開發。 世界上很多公司都開發了MATLAB 中 支 持 MBD 的 模 塊 庫[3], 如 Texas Instruments, dSPACE, Quanser, TRlab 等。 本 文 以MATLAB/Simulink 為工具,實現了基于代碼自動生成技術的DSP 步進電機控制實驗。

應用代碼生成技術不需要逐句、逐行地編寫模型仿真所需要的代碼,并較容易進行相應的調試。 與傳統設計方法相比,該技術明顯具有開發周期短、費用低、效率高等特點[4]。

2 代碼模型的搭建

2.1 模型所需Simulink 模塊及搭建過程

模型搭建過程:首先打開MATLAB R2021a 軟件,在軟件命令行中鍵入Simulink 并回車,建立一個Blank Model,這就完成了模型文件的建立工作。 接下來在Simulink 菜單欄下點擊Library Browser 打開模型庫文件,將C2803x 系列的工具模塊添加到模型文件中,在模塊庫文件中依次將下文模塊添加到模型文件中,并最終生成代碼進行實物驗證。

模型所需模塊:

Constant 模塊:生成實數常量值。

PWM 模塊:產生PWM 波,并進行波形調制和計數中斷。

SCI 模塊:串口通信,進行信號的發送與接收,可進行中斷接收發送的配置。

Stateflow 狀態機:設置步進電機運行時不同的狀態,并進行變換,來完成電機的運行。

Buffer 模塊:數組初始化,存取數據,遵循先進先出原則。

GPIO 模塊:控制DSP 硬件IO 口的工作模式及對應輸出模式時對應的高低電平。

Interrupt 中斷模塊:設置對應的CPU 中斷組和PIE 中斷組。

2.2 中斷模型搭建

本文采用PWM 中斷,通過ePWM 模塊的時基模塊確定周期頻率來設置中斷時間,定時觸發PWM 中斷,執行一次中斷任務,即完成一次步進電機狀態的切換。

模型搭建步驟:

(1)首先打開MATLAB 中的Simulink 功能,在主頁面中選擇Library Browser 模塊。

(2)選擇Embedded Coder Support Package,打開C280x 系列模塊并選擇ePWM 模塊添加進模型中,雙擊打開之后在General 的Timer period 輸入1 000,并能運行ePWMA。

(3)在Scheduling 中選擇C28x Hardware Interrupt模塊,根據Mathwork 公司設計的模塊中斷向量表說明書,選擇CPU 中斷號為3,PIE 中斷號為1,設置為EPWMA 中斷觸發機制,即中斷觸發后,模塊輸出使能信號,將子系統模塊設置為Function-Call 模塊觸發后執行子系統。 配置界面如圖1 所示。

圖1 PWM 定時中斷模型

2.3 步進電機模型

步進電機是一種將電脈沖轉換成相應角位移或線位移的電磁機械裝置。 它具有快速啟、停能力,在電機的負荷不超過它能提供的動態轉矩時,可以通過輸入脈沖來控制它在一瞬間的啟動或停止[5]。 步進電機具有4 條勵磁信號線,通過控制4 條信號線上的勵磁脈沖產生的時刻,可以控制步進電機的轉動。 步進電機的勵磁方式分為全步勵磁和半步勵磁這兩種方式。 其中,全步勵磁又有一相勵磁和二相勵磁之分,半步勵磁又稱一二相勵磁。 假設每旋轉一圈需要200 個脈沖信號來勵磁,可以計算出每個勵磁信號能使步進電動機前進 1.8°。

搭建步進電機運行子系統模塊,選擇chart 添加狀態機并打開Embedded Coder Support Package,選中C280x 系列模塊并選擇Digital Output 模塊,雙擊打開后勾選出對應IO 口,需要注意的是,當引腳設置為輸出時,就不能再作為數字輸入口,外設功能必須禁止。另外,為了控制電機正反轉需要選擇Digital Input 模塊,對應硬件電路上的按鍵,以此來控制電機正反轉運行。 搭建模型的過程中主要使用的是Stateflow 功能。 Stateflow 是一種基于圖的實現方法,以圖模型為基礎,建立分層的、并發的、多任務的、基于事件的、基于過程的、基于時間序列的、動態的、可擴展性的、可遷移的以及可重構的多任務狀態。 Stateflow 建立模型主要包含6 個部分,分別是狀態(對系統模式的描述,將一個操作模式表示為一種狀態);遷移(每一次遷移表示一次狀態的轉換);事件(指觸發的發生);數據對象(用來存儲在圖表中使用到的數值,可以通過Model Explorer 添加數據,此時使用者可以查看修改圖表中的數據對象);節點(用單個遷移表達多個可能發生的遷移);消息對象(可攜帶數據的排隊對象)。

本文最重要的就是利用Stateflow 中的狀態圖來配置狀態機,而在狀態圖中,使用層次結構的目的就是要利用層次來將有關的對象進行組合,從而形成一個族群,將一些通用的遷移路徑或動作合并成一個遷移動作。 如果能夠恰當地使用層次,就能夠極大地減少代碼的體積,從而提升程序執行的效率。

Stateflow 狀態機主要設計兩個狀態圖CW 與CCW,分別代表步進電機的正轉與反轉,添加時需要打開Explorer Bar 中的state 模塊選中框,在Name 欄輸入CW,同時在CW 狀態圖表中添加子狀態,即A、AB、B、BC、C、CD、D、DA 八種子狀態,完成一次內循環,即實現步進電機的一次轉動,如圖2 所示。 初始為非激活狀態,事件驅動使其激活,因此子狀態的配置需要設置為en 使能,即讓狀態從非激活狀態變為激活狀態,激活時執行子狀態中的程序內容,需要對數值對象進行賦值,右鍵打開Explorer,選擇add,添加data,添加5 個data,分別為A、B、C、D、Direction 5個數值對象,將Scop 分別設置為Input 和Output,代表輸入與輸出。 A、B、C、D 設置為輸出模式,對應外設的輸出IO 口,將DataType 設置為boolean 格式,注意數據的匹配,將Direction 設置為Input 模式,通過IO 給定電平控制,對應DSP 編程時對IO 輸入模式的配置。 步進電機正轉運行時Direction=0,A、B、C、D 4個數值對象對應的值分別是1000-1100-0100-0110-0010-0011-0001-1001,反轉時Direction=1,將其反序遷移即可。

圖2 Stateflow 控制步進電機運行

2.4 串口協議模型

步進電機運行的數據通過串口通信發送至上位機,上位機通過數據監控運行。 開環傳輸數據會導致數據的亂碼及錯誤,所以為了數據的穩定傳輸,需要串口通信的協議。 協議包括幀頭、幀尾以及數據長度來驗證數據的準確性。 本文直接使用Embedded Coder Support Package for Texas Instruments C2000 Processors 中的C2803x 芯片的串口模塊進行通信配置,為了鏈接板間通信,設置波特率為115 200,停止位設置為1,Tx 和Rx 分別對應DSP28035 的GPIO28和GPIO29。 數據格式如圖3 所示。

圖3 自定義串口通信協議模型

3 代碼生成

在工具欄點擊MODLING 并選擇Model Settings,在Hardware Implementat-ion 界面選擇TI Piccolo F2803x 芯片板,將Code Generation system target file 設置為ert.tlc 文件,并將Target hardware resources 中的Build options 選為Build 模式,這樣就可以生成項目所需的程序文件,完成Target hardware resources 的配置。 Code Generation 界面需勾選Report 選項中的3個狀態框,同時為了增加代碼可讀性需要在code generation objectives 中添加Execution efficiency,ROM efficiency,RAM efficiency,完成配置后,在APPS 界面選擇Embedded Coder,在新出現的C CODE 界面中點擊Build,以上建模及目標環境配置完成后,在模型工具欄中找到編譯工具點擊編輯模型,即可生成.out 執行文件,之后會出現代碼生成窗口,如圖4 所示,生成的項目文件需要在CCS 軟件中配置并編譯下載。

圖4 代碼生成報告

4 硬件測試

硬件測試時,首先需要對步進電機的驅動電路進行介紹,步進電機的驅動電路如圖5 所示。

圖5 步進電機驅動電路

本文使用的步進電機采用五線四相制進行驅動,該電動機的轉子是一個永久磁鐵,在其定子線圈中,在其線圈中形成一個相應的向量場。 由于同極性和互斥性,這種磁場將使轉子轉動一定的角度,從而使成對的轉子場和定子場在同一方向上。 當定子產生的向量場旋轉角發生改變時,轉子角會隨之改變。 因此,每次電脈沖的輸入,馬達都會旋轉一次,向前移動一次。 步進電機驅動電路通過ULN2003 芯片將輸入與輸出隔離開來,ULN2003 芯片具有高耐壓的特性,由7 個NPN 管組成,工作電壓高,工作電流大,最多可以承受50 V 的關斷電壓。本文中使用ULN2003 驅動芯片的主要原因是它能夠為DSP28035 芯片提供大電流來驅動步進電機運行。 同時,單片機引腳輸出電壓為3.3 V,選用此芯片可以將驅動電壓升至5 V~12 V,增加DSP28035 的驅動能力。

在線驗證時,鏈接好串口線并將程序以Flash 方式下載到DSP28035 中,在CCS 軟件中完成對項目文件的下載配置后,步進電機開始運行,同時上位機接收來自DSP28035 芯片發送的串口信號。

去除幀頭0x55 、0xAA,數據長度0x04 以及幀尾的0x0D、0x0A 數據后,4 個IO 口數據與步進電機運行時所對應時序數據一致,如圖6 所示。 這說明自動生成的代碼完全實現了在代碼模型中設計的各項功能。 通過示波器觀察步進電機的運行過程,運行時單個IO 口的輸出頻率為121 Hz,滿足設計要求,成功控制電機進行正反轉操作,驗證步進電機實驗成功。

圖6 串口接收信號

5 結語

本文提出了一種基于 Simulink 的 DSP建模和基于 Simulink 的 C 語言編程的快速編程方法,簡化了 DSP 的編程過程。 該程序產生的DSP 代碼具有良好的控制效果且開發時間成本低,具有很大的發展潛力。 該系統避免了 DSP 程序編寫和調試等煩瑣的程序,降低了錯誤率,從而大大降低了軟件開發者的工作量。 研究和運用這種開發方式,對于大多數 DSP 的應用開發者來說,有重要的實際意義和實用價值。

猜你喜歡
設置模型
一半模型
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
7招教你手動設置參數
3D打印中的模型分割與打包
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
艦船人員編制的設置與控制
主站蜘蛛池模板: 久久久亚洲色| 国产精品一线天| 老汉色老汉首页a亚洲| 性欧美在线| 亚洲青涩在线| 国产欧美高清| 精品无码一区二区三区在线视频| 91精品国产自产在线观看| 免费在线观看av| 婷婷激情亚洲| 久久国产精品麻豆系列| 波多野结衣一区二区三视频| 99视频有精品视频免费观看| 久久不卡国产精品无码| 手机精品福利在线观看| 免费激情网站| 亚洲三级影院| 亚洲 欧美 中文 AⅤ在线视频| 中文字幕有乳无码| 国产成人久久综合777777麻豆| 97久久超碰极品视觉盛宴| 久久99国产综合精品女同| 天天综合网在线| 亚洲精品无码抽插日韩| 成人午夜网址| 欧美一级一级做性视频| 香蕉久人久人青草青草| 中国国语毛片免费观看视频| 久久久精品无码一区二区三区| 欧美在线综合视频| 一本一道波多野结衣一区二区| 色综合中文字幕| a毛片基地免费大全| 精品国产一区91在线| 国产内射一区亚洲| 国产麻豆91网在线看| 精品福利国产| 国产成人久久777777| 免费无码AV片在线观看中文| 国产迷奸在线看| 免费人欧美成又黄又爽的视频| 91久久夜色精品国产网站| 国产精品护士| www.99精品视频在线播放| 久久先锋资源| 欧美成人免费一区在线播放| 亚洲国产成人久久精品软件 | 欧美性猛交xxxx乱大交极品| 免费在线a视频| 亚洲最新地址| 亚洲大尺码专区影院| 91精品亚洲| 欧美笫一页| 欧美精品高清| 欧美精品另类| 亚洲无码免费黄色网址| 92午夜福利影院一区二区三区| 最新国语自产精品视频在| 亚洲午夜18| 国产69精品久久久久孕妇大杂乱 | 久久天天躁夜夜躁狠狠| 久青草国产高清在线视频| 国产福利免费观看| 一本一道波多野结衣一区二区| 在线亚洲小视频| 国产国语一级毛片| 2021无码专区人妻系列日韩| 污视频日本| 丰满少妇αⅴ无码区| 亚洲天堂日韩在线| 亚洲午夜国产片在线观看| 欧美成人a∨视频免费观看| 欧美日韩激情在线| 欧美在线中文字幕| 777国产精品永久免费观看| 免费看一级毛片波多结衣| 69av在线| 99热国产这里只有精品9九| 午夜福利视频一区| 999精品视频在线| 国产欧美在线| 亚洲天堂久久|