• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于模型設(shè)計的DSP電機控制代碼開發(fā)

    2017-04-14 05:53:20逄海萍
    微特電機 2017年3期
    關(guān)鍵詞:代碼生成代碼矢量

    逄海萍,郭 浩

    (青島科技大學(xué),青島 266042)

    基于模型設(shè)計的DSP電機控制代碼開發(fā)

    逄海萍,郭 浩

    (青島科技大學(xué),青島 266042)

    現(xiàn)代工業(yè)對電機控制要求的不斷提高使得軟件的規(guī)模和復(fù)雜度越來越高,而傳統(tǒng)開發(fā)DSP電機控制軟件的方式是手工編寫C代碼,其算法實現(xiàn)難度大、底層驅(qū)動配置復(fù)雜、開發(fā)效率低。針對該問題,研究一種高效的DSP代碼開發(fā)方式——基于模型設(shè)計(Model Based Design, MBD),該方式以MATLAB為開發(fā)平臺,可實現(xiàn)Simulink模型到C代碼的自動轉(zhuǎn)化,顯著提高開發(fā)效率。文章首先介紹MBD對電機控制開發(fā)的支持并給出開發(fā)流程,然后以DSP永磁同步電機矢量控制為例,在Simulink下建立系統(tǒng)的仿真模型和代碼模型,并自動生成C代碼,最后將代碼下載到DSP控制系統(tǒng)中進行軟件測試。研究結(jié)果表明,利用MBD方式可快速、高效地開發(fā)出DSP電機控制代碼,并且具有開發(fā)難度低、代碼可移植性強等優(yōu)點。

    電機控制;DSP代碼開發(fā);基于模型設(shè)計;矢量控制

    0 引 言

    現(xiàn)代工業(yè)對高性能電機控制系統(tǒng)的需求量大幅增加,工程師面臨的挑戰(zhàn)也越來越嚴(yán)峻。設(shè)計內(nèi)容的增加、用戶需求的多變、模糊的設(shè)計參數(shù)和硬件功能軟件化等,導(dǎo)致電機控制代碼的規(guī)模和復(fù)雜度成倍增加。

    電機控制代碼主要包括應(yīng)用層代碼和底層驅(qū)動,應(yīng)用層代碼是控制算法的實現(xiàn),底層驅(qū)動涉及硬件操作(如寄存器配置、IO讀寫等)。傳統(tǒng)開發(fā)方式是控制算法的設(shè)計與實現(xiàn)分開進行,Simulink模型仿真成功后,手工編寫C代碼,查閱DSP手冊,手動配置寄存器[1-2]。這樣的開發(fā)方式要求軟件工程師具有高超的編程技巧,并對特定型號DSP的底層配置非常熟悉,這嚴(yán)重降低了代碼開發(fā)效率,增加了開發(fā)難度。

    基于模型設(shè)計(以下簡稱MBD)誕生于20世紀(jì)90年代,是一種系統(tǒng)級的算法設(shè)計和實現(xiàn)方式,能夠?qū)崿F(xiàn)Simulink算法模型到C代碼的自動轉(zhuǎn)化,同時將硬件驅(qū)動集成到模型中,只需設(shè)置少量參數(shù)便可完成寄存器配置等底層工作。整個開發(fā)過程,往往無需手寫代碼,這極大提高了軟件的開發(fā)效率,并且MBD以MATLAB/Simulink作為統(tǒng)一開發(fā)平臺,代碼的可移植性得到大大增強,在歐美地區(qū)獲得廣泛認(rèn)可,在電機控制、嵌入式開發(fā)、汽車電子等領(lǐng)域已獲得廣泛應(yīng)用[3-6]。國內(nèi)人員對此開發(fā)方式的應(yīng)用還相對較少,在此背景下,本文首先介紹MBD對電機控制開發(fā)的支持,然后以DSP永磁同步電機矢量控制為例,建立系統(tǒng)仿真模型與代碼模型,詳細研究其軟件的開發(fā)方法和開發(fā)流程,最后將生成的C代碼下載到TMS320F2812進行軟硬件測試,以驗證方法的可行性和高效性。

    1 MBD對電機控制開發(fā)的支持與開發(fā)流程

    1.1 MBD對電機控制開發(fā)的支持

    在電機控制領(lǐng)域,MBD對應(yīng)用層代碼和底層驅(qū)動的開發(fā)均給予了強大支持[7]。MathWorks公司將廣泛應(yīng)用于電機控制的C2000系列DSP完整集成到Embedded Coder工具箱中,在其子目錄Processors中可以找到各種型號DSP,并且DSP的底層驅(qū)動都被模塊化封裝,如電機控制常用的PWM模塊、QEP模塊、定時器模塊、ADC模塊、中斷模塊等。另外,在Processors/Optimization中有TI公司提供的C28xDMC和C28xIQmath函數(shù)庫。C28xDMC是專門用于電機數(shù)字控制的函數(shù)庫,包含Clarke 變換、Park變換、SVPWM生成器、PID調(diào)節(jié)器等;C28xIQmath庫是一個虛擬浮點引擎,能夠?qū)Ω↑c數(shù)據(jù)進行快速處理,常用于定點DSP的代碼開發(fā),其中包含三角函數(shù)、平方根函數(shù)、IQ數(shù)據(jù)格式轉(zhuǎn)換等常用數(shù)學(xué)函數(shù)。使用這些庫函數(shù)構(gòu)建應(yīng)用層算法,能夠顯著提高生成的C代碼的執(zhí)行效率。

    1.2 開發(fā)流程

    MBD的電機控制代碼開發(fā)流程[7-8]如圖1所示。首先根據(jù)系統(tǒng)需求制定控制策略,搭建Simulink仿真模型;仿真成功后對模型進一步檢驗并優(yōu)化,識別出模型中隱含的錯誤或冗余;再將算法模型與底層驅(qū)動進行集成,構(gòu)建出完整的代碼模型;最后進行自動代碼生成及代碼的編譯與測試。在模型檢驗階段可根據(jù)MATLAB的修改建議對Simulink仿真模型進行修改,在代碼測試階段如果發(fā)現(xiàn)錯誤,應(yīng)返回修改仿真模型或者代碼模型。

    圖1 MBD的電機控制代碼開發(fā)流程

    2 MBD的電機控制代碼開發(fā)過程

    為深入研究MBD的電機控制代碼的開發(fā)過程,下面以永磁同步電機(以下簡稱PMSM)矢量控制為例,詳細給出從模型建立到DSP代碼生成的主要步驟。高性能的PMSM矢量控制系統(tǒng)涉及到坐標(biāo)變換、磁鏈計算、SVPWM調(diào)制、先進的控制運算等復(fù)雜算法,采用MBD開發(fā)代碼更顯優(yōu)越性。

    2.1 系統(tǒng)的建模與仿真

    在PMSM矢量控制系統(tǒng)中,應(yīng)用最為廣泛的是id=0矢量控制策略,其系統(tǒng)結(jié)構(gòu)[8]如圖2所示。采用轉(zhuǎn)速電流雙閉環(huán)控制,n*為轉(zhuǎn)速參考值,轉(zhuǎn)速調(diào)節(jié)器ASR輸出為q軸電流參考值,電流調(diào)節(jié)器ACR輸出為d,q軸電壓參考值,逆變器采用SVPWM調(diào)制方式。

    圖2 永磁同步電機id=0矢量控制框圖

    2.1.1 基于Simulink的系統(tǒng)建模

    (1)控制算法建模

    為進一步增強模型的可移植性,并防止DSP運算數(shù)據(jù)溢出,控制算法部分采用標(biāo)幺化設(shè)計[9]。使用Optimization中的庫函數(shù)可快速建立電機控制系統(tǒng)的算法模型,并能生成高效率的C代碼。

    (a) 轉(zhuǎn)速調(diào)節(jié)器

    (b) 電流調(diào)節(jié)器與矢量變換

    (2)硬件電路建模

    使用SimPowerSystems工具箱模塊,可實現(xiàn)硬件電路的快速建模。PMSM和逆變器等硬件電路模型如圖4所示。

    圖4 PMSM和逆變器的硬件電路模型

    (3)系統(tǒng)仿真模型

    將算法模型與硬件電路模型整合,得到矢量控制系統(tǒng)的仿真模型,如圖5所示。模型中Scaling模塊用于標(biāo)幺值與標(biāo)準(zhǔn)值的轉(zhuǎn)換。控制算法部分采集的信號有轉(zhuǎn)速給定、轉(zhuǎn)速反饋和電流反饋,算法部分輸出的三相調(diào)制波與三角載波比較后生成6路PWM波,驅(qū)動三相逆變橋。

    圖5 PMSM矢量控制系統(tǒng)的仿真模型

    2.1.2 系統(tǒng)仿真

    系統(tǒng)仿真模型建立后,整定控制參數(shù)并進行仿真,電機的相電壓、線電壓及轉(zhuǎn)速仿真波形如圖6所示。圖6(a)中相電壓等級包含0V,±Udc/3,±2Udc/3,線電壓等級包含0V,±Udc,并且相電壓中含有的三次諧波在線電壓中相互抵消[10],仿真結(jié)果與理論相一致;圖6(b)中系統(tǒng)起動具有良好的動靜態(tài)特性,在運行過程中突加負(fù)載,轉(zhuǎn)速稍有降落后很快恢復(fù)穩(wěn)態(tài)。

    (a) 電機相電壓和線電壓仿真波形

    (b) 電機轉(zhuǎn)速仿真波形

    仿真結(jié)果滿足要求之后,為了發(fā)現(xiàn)模型中可能存在的隱含問題,為進一步提高代碼的安全性和執(zhí)行效率,在生成代碼之前可對算法模型進行檢驗和優(yōu)化。由于模型檢驗步驟繁多,本文不再贅述,可參考文獻[7]。

    2.2 算法模型與底層硬件驅(qū)動的集成

    本文使用的處理器為TMS320F2812,是專門應(yīng)用于電機控制的高性能DSP,其片上外設(shè)的驅(qū)動模塊已被集成到EmbeddedCoder工具箱中。算法模型與底層硬件驅(qū)動的集成分為兩部分:同步事件的集成和異步事件的集成。同步事件集成的是需要同步更新的驅(qū)動模塊,異步事件集成的是非同步更新的驅(qū)動模塊。

    本文中矢量變換部分屬于同步事件,集成模型如圖7所示。電流反饋信號通過ADC模塊采樣獲得,轉(zhuǎn)子磁鏈位置通過光電編碼器由QEP電路解碼獲得。控制算法輸出的調(diào)制波經(jīng)比例放大后,輸入PWM模塊的比較寄存器。雙擊硬件驅(qū)動模塊可進行相應(yīng)DSP外設(shè)的參數(shù)設(shè)置,這些設(shè)置將來會自動生成外設(shè)模塊的初始化代碼。

    圖7 矢量變換集成模型

    電機控制系統(tǒng)是一個多速率系統(tǒng),電流環(huán)的采樣速率應(yīng)遠高于轉(zhuǎn)速環(huán)[10]。實際代碼中,為保證電流環(huán)每個周期內(nèi)SVPWM調(diào)制波與電流采樣值能夠同步更新,需將PWM模塊中通用定時器的中斷事件設(shè)置為ADC的啟動信號[1],本文設(shè)為下溢中斷事件啟動ADC轉(zhuǎn)換。外環(huán)轉(zhuǎn)速環(huán)的采樣周期通過解算器的仿真步長進行設(shè)置,本文設(shè)置為0.01s。自動代碼生成時,CPU定時器會產(chǎn)生0.01s的周期中斷,以調(diào)用轉(zhuǎn)速環(huán)中斷服務(wù)子程序。

    轉(zhuǎn)速環(huán)程序本身構(gòu)成同步事件,而與電流環(huán)程序構(gòu)成異步事件。異步事件的集成模型如圖8所示,ADCInterrupt為硬件中斷模塊;FOCAlgorithm為矢量控制部分,其采樣速率由ADC中斷速率決定;其余為轉(zhuǎn)速環(huán)部分,轉(zhuǎn)速參考信號通過低通濾波器濾波,實際轉(zhuǎn)速由SpeedCalculation計算,ASR為轉(zhuǎn)速環(huán)調(diào)節(jié)器。F2812eZdsp用于配置DSP型號,必須和實際使用的處理器型號一致,可通過此模塊進行DSP系統(tǒng)參數(shù)的設(shè)置,將來會生成系統(tǒng)初始化代碼,如系統(tǒng)時鐘的配置等。正確配置圖8中的各模塊參數(shù)及系統(tǒng)參數(shù)后,便得到了完整的代碼模型。

    圖8 異步事件集成模型

    2.3 自動代碼生成

    代碼生成之前,可進行優(yōu)化配置??梢詮拇a的高效性、節(jié)約存儲空間、可追溯性、安全性、易讀性等多方面進行優(yōu)先級設(shè)置;可為特定型號的處理器指定代碼生成時使用的代碼替代庫[7],這能夠顯著提高C代碼的執(zhí)行效率。

    優(yōu)化配置完成后,通過仿真器將電腦與DSP目標(biāo)板連接,在圖8的代碼模型中,點擊Simulink界面的BuildModel按鈕,MATLAB會啟動CCS進行代碼生成。生成的工程文件在CCS中自動打開,文件中的代碼附有詳細注釋,通過點擊注釋可追蹤到相應(yīng)Simulink模塊,方便代碼分析。

    3 系統(tǒng)軟件運行與測試

    控制代碼生成后,可在硬件系統(tǒng)上進行軟件測試。PMSM控制系統(tǒng)硬件結(jié)構(gòu)如圖9所示。

    圖9 PMSM控制系統(tǒng)硬件結(jié)構(gòu)圖

    使用CCS將生成的C代碼編譯并下載到DSP中,運行程序,觀察運行結(jié)果,并在各種條件下檢驗軟件是否正確;一般情況下,如果仿真模型建立正確,代碼模型配置無誤,將一次性生成符合要求的C代碼;若測試中發(fā)現(xiàn)問題,應(yīng)檢查仿真模型或代碼模型并進行修改,直到正確、滿意為止。

    在本文中,使用示波器觀察電機側(cè)的電壓波形如圖10所示,電機起動和突加負(fù)載的轉(zhuǎn)速反饋波形如圖11所示。從實驗波形可以看出,系統(tǒng)實際運行波形與仿真波形基本相符,實驗結(jié)果符合理論分析和工程要求,也充分說明了MBD開發(fā)電機控制代碼的可行性和高效性。

    (a)電機相電壓波形(b)電機線電壓波形

    圖10 電機相電壓與線電壓波(截圖)

    圖11 電機起動和突加負(fù)載的轉(zhuǎn)速反饋波形(截圖)

    4 結(jié) 語

    本文主要研究了以MBD方式開發(fā)DSP電機控制代碼的詳細過程,并以PMSM矢量控制代碼的開發(fā)為例,通過規(guī)范流程建立起控制系統(tǒng)的Simulink仿真模型和代碼模型,使用MATLAB與CCS聯(lián)合將Simulink代碼模型自動轉(zhuǎn)化為C代碼,并在硬件系統(tǒng)上進行了軟件測試,實驗結(jié)果驗證了代碼的有效性。開發(fā)過程中使用Simulink提供的工具箱和電機函數(shù)庫及DSP底層驅(qū)動,快速完成了系統(tǒng)建模工作,這使得代碼的開發(fā)難度降低而開發(fā)效率顯著提升??梢?,DSP代碼的MBD開發(fā)方式具有開發(fā)難度低、效率高,代碼可移植性強等特點,應(yīng)用前景廣闊。

    [1] 顧衛(wèi)剛.手把手教你學(xué)DSP:基于TMS320X281X[M].北京:北京航空航天大學(xué)出版社,2011:123-132.

    [2]WANGLM,WANGGN,WANGW,etal.MBD-DSP:aModelBasedDesignSolutionforDSP[C]//InternationalConferenceonElectricalandControlEngineering.IEEE,2011:4561-4564.

    [3]O′SULIVAND,SORENSENJ,FREDERIKSENA.Modelbaseddesigntoolsinloopmotorcontrol[C]//InternationalExhibitionandConferenceforPower,2014:1643-1651.

    [4]SAOUDIM,BENS.Model-baseddesignapproachforembeddeddigitalcontrollersdesign[J].InternationalJournalofAutomationandControl,2011,5(3):267-283.

    [5] 周亞男,李紅梅,鄭樹松.電動汽車IPMSM驅(qū)動系統(tǒng)硬軟件架構(gòu)及高性能控制[J].微特電機,2014,42(9):43-45.

    [6] 李軍偉,邱今勝,董曉琳.基于模型的車用開關(guān)磁阻電動機控制系統(tǒng)開發(fā)[J].微特電機,2015,43(7):82-84.

    [7] 劉杰.基于模型的設(shè)計:MSP430/F28027/F28335DSP篇[M].北京:國防工業(yè)出版社,2011:282-250.

    [8] 高闖.基于模型設(shè)計的永磁同步電動機空間矢量控制系統(tǒng)的研究與實現(xiàn)[D].西安:長安大學(xué),2014:7-18.

    [9] 孟志強,朱良焱,石瑜.基于標(biāo)幺化模型的感應(yīng)電動機矢量控制[J].電力系統(tǒng)及其自動化學(xué)報,2010,22(5):152-155.

    [10] 阮毅,陳伯時.電力拖動自動控制系統(tǒng):運動控制系統(tǒng)[M].第4版.北京:機械工業(yè)出版社,2009:59-93.

    Development of Motor Control Code Based on Model-based Design for DSP

    PANGHai-ping,GuoHao

    (Qingdao University of Science and Technology,Qingdao 266042,China)

    The scales and complexities of software for high-performance motor control are more and more enlarged because of the modern industry enhancing demands. But the traditional method of motor software development for DSP is programming C code by manual, and the efficiency is very low because of the big difficulty to realize control algorithm and complexity to configure bottom drive. Aiming at this problem, a high efficiency way for DSP code development, model-based design (MBD) was studied, by which the Simulink model could be translated into C code automatically and the developing efficiency was improved greatly. Firstly, the Model-based Design's supports and workflow for motor control system development were introduced. Therefore, the software development process for PMSM vector control systems was demonstrated, including the building of simulation model and code model in Simulink environment, and the generation of C code. Finally, the generated C code was downloaded into DSP system to test control soft. The research results show that the MBD method can develop DSP motor control code quickly and efficiently, and has the advantages of low-difficulty and good code portability.

    motor control; DSP code development; model-based design(MBD); vector control

    2016-06-02

    國家自然基金項目(60940018,61104004);山東省自然基金項目(ZR2011FQ006)

    TM351

    A

    1004-7018(2017)03-0053-04

    逄海萍(1964-),女,博士,教授,從事電力電子技術(shù)、運動控制方面的教學(xué)和科研工作。

    猜你喜歡
    代碼生成代碼矢量
    矢量三角形法的應(yīng)用
    Lustre語言可信代碼生成器研究進展
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
    電子世界(2016年15期)2016-08-29 02:14:28
    基于矢量最優(yōu)估計的穩(wěn)健測向方法
    三角形法則在動態(tài)平衡問題中的應(yīng)用
    基于XML的代碼自動生成工具
    電子科技(2015年2期)2015-12-20 01:09:20
    昆明市| 吉林省| 聂拉木县| 兰考县| 神农架林区| 赣榆县| 吉林省| 无锡市| 乌拉特后旗| 扶风县| 鞍山市| 班玛县| 霍林郭勒市| 牡丹江市| 扶余县| 营山县| 太保市| 宜春市| 台东县| 泗水县| 清涧县| 武邑县| 铅山县| 巴楚县| 宁陕县| 禹城市| 鹰潭市| 南雄市| 榆树市| 教育| 屏东市| 鹤峰县| 紫阳县| 额尔古纳市| 武乡县| 右玉县| 安丘市| 富锦市| 邯郸县| 西藏| 石泉县|