亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Stateflow 的步進(jìn)電機(jī)模型的代碼生成技術(shù)研究

        2023-08-16 05:01:00孫哲倫王新春
        無線互聯(lián)科技 2023年11期
        關(guān)鍵詞:代碼生成勵磁中斷

        孫哲倫,王新春

        (內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010)

        0 引言

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

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

        1 代碼生成技術(shù)

        代碼生成技術(shù)是指使用特定的軟件(MATLAB)或者軟件中的工具箱,建立目標(biāo)代碼的仿真模型,并根據(jù)所需的目標(biāo)配置自動生成嵌入式系統(tǒng)應(yīng)用程序的現(xiàn)代化技術(shù)。 在當(dāng)時提出這一概念時,它被認(rèn)為是智能設(shè)計(jì)和建模領(lǐng)域的一項(xiàng)發(fā)明,受到了工業(yè)界和學(xué)術(shù)界研究人員的關(guān)注和應(yīng)用。

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

        應(yīng)用代碼生成技術(shù)不需要逐句、逐行地編寫模型仿真所需要的代碼,并較容易進(jìn)行相應(yīng)的調(diào)試。 與傳統(tǒng)設(shè)計(jì)方法相比,該技術(shù)明顯具有開發(fā)周期短、費(fèi)用低、效率高等特點(diǎn)[4]。

        2 代碼模型的搭建

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

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

        模型所需模塊:

        Constant 模塊:生成實(shí)數(shù)常量值。

        PWM 模塊:產(chǎn)生PWM 波,并進(jìn)行波形調(diào)制和計(jì)數(shù)中斷。

        SCI 模塊:串口通信,進(jìn)行信號的發(fā)送與接收,可進(jìn)行中斷接收發(fā)送的配置。

        Stateflow 狀態(tài)機(jī):設(shè)置步進(jìn)電機(jī)運(yùn)行時不同的狀態(tài),并進(jìn)行變換,來完成電機(jī)的運(yùn)行。

        Buffer 模塊:數(shù)組初始化,存取數(shù)據(jù),遵循先進(jìn)先出原則。

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

        Interrupt 中斷模塊:設(shè)置對應(yīng)的CPU 中斷組和PIE 中斷組。

        2.2 中斷模型搭建

        本文采用PWM 中斷,通過ePWM 模塊的時基模塊確定周期頻率來設(shè)置中斷時間,定時觸發(fā)PWM 中斷,執(zhí)行一次中斷任務(wù),即完成一次步進(jìn)電機(jī)狀態(tài)的切換。

        模型搭建步驟:

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

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

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

        圖1 PWM 定時中斷模型

        2.3 步進(jìn)電機(jī)模型

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

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

        本文最重要的就是利用Stateflow 中的狀態(tài)圖來配置狀態(tài)機(jī),而在狀態(tài)圖中,使用層次結(jié)構(gòu)的目的就是要利用層次來將有關(guān)的對象進(jìn)行組合,從而形成一個族群,將一些通用的遷移路徑或動作合并成一個遷移動作。 如果能夠恰當(dāng)?shù)厥褂脤哟?就能夠極大地減少代碼的體積,從而提升程序執(zhí)行的效率。

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

        圖2 Stateflow 控制步進(jìn)電機(jī)運(yùn)行

        2.4 串口協(xié)議模型

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

        圖3 自定義串口通信協(xié)議模型

        3 代碼生成

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

        圖4 代碼生成報告

        4 硬件測試

        硬件測試時,首先需要對步進(jìn)電機(jī)的驅(qū)動電路進(jìn)行介紹,步進(jìn)電機(jī)的驅(qū)動電路如圖5 所示。

        圖5 步進(jìn)電機(jī)驅(qū)動電路

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

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

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

        圖6 串口接收信號

        5 結(jié)語

        本文提出了一種基于 Simulink 的 DSP建模和基于 Simulink 的 C 語言編程的快速編程方法,簡化了 DSP 的編程過程。 該程序產(chǎn)生的DSP 代碼具有良好的控制效果且開發(fā)時間成本低,具有很大的發(fā)展?jié)摿Α?該系統(tǒng)避免了 DSP 程序編寫和調(diào)試等煩瑣的程序,降低了錯誤率,從而大大降低了軟件開發(fā)者的工作量。 研究和運(yùn)用這種開發(fā)方式,對于大多數(shù) DSP 的應(yīng)用開發(fā)者來說,有重要的實(shí)際意義和實(shí)用價值。

        猜你喜歡
        代碼生成勵磁中斷
        勵磁變壓器勵磁涌流引起的調(diào)相機(jī)跳閘分析
        Lustre語言可信代碼生成器研究進(jìn)展
        基于勵磁阻抗變化的變壓器勵磁涌流判別方法的探討
        電子制作(2018年1期)2018-04-04 01:48:34
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        大型發(fā)電機(jī)勵磁用旋轉(zhuǎn)變換器的開發(fā)和應(yīng)用
        代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
        電子世界(2016年15期)2016-08-29 02:14:28
        基于XML的代碼自動生成工具
        電子科技(2015年2期)2015-12-20 01:09:20
        GES6000勵磁控制技術(shù)
        AT89C51與中斷有關(guān)的寄存器功能表解
        人妻无码Aⅴ中文系列| 午夜精品久久久久久久无码| 国产成人a人亚洲精品无码| 在线看亚洲十八禁网站| 国产桃色精品网站| 极品少妇人妻一区二区三区| 亚洲av日韩av女同同性| 四房播播在线电影| 亚洲欧美日韩在线中文一| 亚洲精品在线97中文字幕| 午夜成人理论福利片| 全免费a级毛片| 无码高潮久久一级一级喷水 | 国产精品久久久久精品一区二区| 国产精品亚洲成在人线| 亚洲综合国产成人丁香五月小说| 亚洲三级中文字幕乱码| 国产动作大片中文字幕| 亚洲另类激情综合偷自拍图| 国产日韩亚洲中文字幕| 激情文学婷婷六月开心久久| 中文字幕日韩一区二区不卡| 午夜成人理论无码电影在线播放 | 第一次处破女18分钟高清 | 正在播放国产多p交换视频| 丝袜美腿一区二区在线观看| 一本大道道久久综合av| 狠狠色噜噜狠狠狠狠7777米奇| 国内精品伊人久久久久av| 中文字幕一区二区网址| 美国少妇性xxxx另类| 国产欧美一区二区精品性色| 色琪琪一区二区三区亚洲区| 美女丝袜美腿玉足视频| 东北妇女xx做爰视频| 亚洲 欧美 激情 小说 另类| 国产少妇高潮在线视频| 娜娜麻豆国产电影| 一本大道香蕉视频在线观看| 免费在线av一区二区| 日韩 无码 偷拍 中文字幕|