国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Matlab/RTW的控制系統(tǒng)一體化新型設(shè)計(jì)方法

2010-01-17 05:15唐臻宇耿海翔金佛榮
中國(guó)測(cè)試 2010年1期
關(guān)鍵詞:開(kāi)發(fā)人員手柄電位

李 根,唐臻宇,耿海翔,金佛榮

(四川大學(xué)物理科學(xué)與技術(shù)學(xué)院,四川 成都 610064)

基于Matlab/RTW的控制系統(tǒng)一體化新型設(shè)計(jì)方法

李 根,唐臻宇,耿海翔,金佛榮

(四川大學(xué)物理科學(xué)與技術(shù)學(xué)院,四川 成都 610064)

針對(duì)現(xiàn)行的控制系統(tǒng)設(shè)計(jì)方法存在的開(kāi)發(fā)時(shí)間長(zhǎng)、研發(fā)費(fèi)用高等問(wèn)題,介紹了一種基于Matlab/RTW(實(shí)時(shí)工作間)的新型的一體化設(shè)計(jì)方法。在控制系統(tǒng)開(kāi)發(fā)中應(yīng)用Matlab強(qiáng)大的仿真及易修改功能將算法設(shè)計(jì)、軟件設(shè)計(jì)組合在一起,并利用RTW工具自動(dòng)生成控制系統(tǒng)主要部分的C代碼,不僅大大縮短了開(kāi)發(fā)周期,而且節(jié)省了研發(fā)費(fèi)用。在Matlab/Simulink仿真環(huán)境下,建立了利用手柄控制步進(jìn)電機(jī)運(yùn)動(dòng)方向及速度的模型,自動(dòng)生成的C代碼通過(guò)開(kāi)發(fā)人員編寫的硬件接口代碼與研制出的硬件進(jìn)行整合,經(jīng)過(guò)實(shí)踐檢測(cè),驗(yàn)證了自動(dòng)生成的C代碼具有很好的穩(wěn)定性與執(zhí)行速度。手柄控制步進(jìn)電機(jī)的實(shí)例有力地證明了新型設(shè)計(jì)方法具有開(kāi)發(fā)周期短、研發(fā)費(fèi)用低的優(yōu)點(diǎn)。

控制系統(tǒng);RTW組件;一體化方法;生成代碼;S-函數(shù)

1 引 言

目前,控制系統(tǒng)的開(kāi)發(fā)仍然以傳統(tǒng)方法為主。傳統(tǒng)的設(shè)計(jì)方法需要眾多研發(fā)小組,而且只有當(dāng)一個(gè)小組完成其任務(wù)之后,下個(gè)小組才能開(kāi)始工作。這不僅消耗了大量的人力也增加了研發(fā)成本,延長(zhǎng)了研發(fā)周期。該文介紹了一種針對(duì)控制系統(tǒng)一體化的新型設(shè)計(jì)策略,該方法的最主要的優(yōu)點(diǎn)是基于Matlab/RTW,也即利用Matlab軟件及其組件將算法設(shè)計(jì)、軟件設(shè)計(jì)組合在一起,自動(dòng)生成控制系統(tǒng)主要部分的C代碼,縮短了時(shí)間,節(jié)省了成本。

2 兩種方法比較

在控制系統(tǒng)的開(kāi)發(fā)中,傳統(tǒng)方法由于其開(kāi)發(fā)成本大、開(kāi)發(fā)周期長(zhǎng)已經(jīng)越來(lái)越阻礙工業(yè)的發(fā)展。傳統(tǒng)的研發(fā)策略需要算法設(shè)計(jì)小組、軟件設(shè)計(jì)小組、硬件設(shè)計(jì)小組以及整合調(diào)試小組,而且只有當(dāng)一個(gè)小組完成工作后,下個(gè)小組才可以開(kāi)始工作,這種方法的所有軟件硬件開(kāi)發(fā)都需要研發(fā)人員親自動(dòng)手完成,因此這種層進(jìn)式的開(kāi)發(fā)方法是非常耗力耗時(shí)的,同時(shí)也增加了研發(fā)的成本。新型方法是用圖形化的語(yǔ)言進(jìn)行建模仿真,并能夠方便快速的修改了,進(jìn)而利用Matlab軟件及其組件自動(dòng)生成實(shí)現(xiàn)算法的C代碼。這就將傳統(tǒng)方法中的算法設(shè)計(jì)及軟件主控制過(guò)程的軟件開(kāi)發(fā)整合在一起,省去了開(kāi)發(fā)主控制器主要代碼的軟件開(kāi)發(fā)過(guò)程,從而使得開(kāi)發(fā)周期大大縮短,成本大大降低。兩種方法的開(kāi)發(fā)過(guò)程的對(duì)比如圖1所示。

3 新方法的特點(diǎn)及步驟

RTW(Real-Time Workshop,實(shí)時(shí)工作間)是MATLAB的重要組成部分,它作為Matlab和Simulink的擴(kuò)展,不僅使得系統(tǒng)實(shí)時(shí)仿真變得異常地快速簡(jiǎn)便,而且能夠從構(gòu)建好的Simulink模型自動(dòng)生成優(yōu)化的、簡(jiǎn)潔的、可移植的標(biāo)準(zhǔn)ANSI C代碼。而這個(gè)獨(dú)立運(yùn)行的C代碼可以在各種各樣實(shí)時(shí)的或者非實(shí)時(shí)的軟硬件目標(biāo)環(huán)境中運(yùn)行,可以在普通的PC硬件平臺(tái)、DSP、微控制器(microcontrollers)和裸板(bare-board)上運(yùn)行,也可以在 Windows、DOS 或者各種商用的、個(gè)人的實(shí)時(shí)操作系統(tǒng)上運(yùn)行,如XPC、VxWorks等。

圖1 兩種開(kāi)發(fā)方法過(guò)程的對(duì)比

如圖2所示,新型方法包括以下幾個(gè)主要的步驟:

(1)Simlink模型構(gòu)建與仿真。這是方法的第一步驟,也是方法的重心。通過(guò)對(duì)工程項(xiàng)目的要求進(jìn)行分析,利用控制工程的原理,建立所需的動(dòng)態(tài)模塊,組成系統(tǒng)模型。然后利用Matlab、Simulink、Toolboxes等工具箱對(duì)所建立模型進(jìn)行仿真,分析仿真結(jié)果,對(duì)模型進(jìn)行調(diào)整修改再仿真,如此反復(fù)檢測(cè)修改直到取得滿意的效果。最后由RTW讀取最終的系統(tǒng)模型并對(duì)其進(jìn)行編譯,形成模型的中間描述文件mode1.rtw,并以ASCII碼形式進(jìn)行存儲(chǔ)。

圖2 新型設(shè)計(jì)方法的流程圖

(2)生成C代碼。目標(biāo)語(yǔ)言編譯器(TLC)首先讀取中間描述文件Mode1.rtw,然后進(jìn)行編譯和執(zhí)行目標(biāo)文件中的命令,包括系統(tǒng)目標(biāo)文件和每一個(gè)模塊目標(biāo)文件。在這一階段中,目標(biāo)語(yǔ)言編譯器TLC將中間描述文件Model.rtw轉(zhuǎn)換為目標(biāo)C代碼。

(3)硬件及硬件接口C代碼的編寫。硬件設(shè)計(jì)小組通過(guò)分析項(xiàng)目要求,設(shè)計(jì)出應(yīng)用系統(tǒng)的目標(biāo)板,并編寫硬件接口程序(C代碼),這一步驟是由開(kāi)發(fā)人員手動(dòng)完成的,用于將Matlab生成的C代碼與開(kāi)發(fā)的應(yīng)用系統(tǒng)硬件聯(lián)系起來(lái),起到一個(gè)十分重要的紐帶作用。

(4)生成可移植的C代碼。將由Matlab軟件自動(dòng)生成的C代碼與開(kāi)發(fā)人員手動(dòng)編寫的應(yīng)用硬件的接口代碼通過(guò)CPU的C編譯器進(jìn)行編譯鏈接,進(jìn)而生成可移植于設(shè)計(jì)的硬件目標(biāo)板上的移植C代碼。

(5)檢驗(yàn)。將所生成的可執(zhí)行C代碼移植到開(kāi)發(fā)的系統(tǒng)目標(biāo)板中進(jìn)行檢驗(yàn)修改,從而完成整個(gè)系統(tǒng)的開(kāi)發(fā)。

4 實(shí)例分析

4.1 原理

步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移或者線位移的執(zhí)行機(jī)構(gòu)。它需要用連續(xù)且有序的電脈沖信號(hào)驅(qū)動(dòng)。在電機(jī)不過(guò)載的情況下,電機(jī)的轉(zhuǎn)速和停止位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(及步距角)。由于這個(gè)線性關(guān)系,可以通過(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的。

4.2 建模

手柄控制步進(jìn)電機(jī)就是根據(jù)步進(jìn)電機(jī)的工作原理,利用手柄移動(dòng)的方向控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)方向,利用手柄移動(dòng)的快慢控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)加速度??刂撇竭M(jìn)電機(jī)的控制手柄實(shí)際上就是一個(gè)電位器。手柄所在位置(x)通過(guò)人體工程函數(shù)V=f(x)對(duì)應(yīng)電位(V),電位經(jīng)過(guò)A/D采樣轉(zhuǎn)換變?yōu)樽優(yōu)殡妷翰蓸有盘?hào),電機(jī)速度控制模塊濾除電壓信號(hào)變化過(guò)快的部分,使步進(jìn)電機(jī)的加速度與速度處于所要求的加速度與速度門限值之內(nèi)。經(jīng)過(guò)濾波之后的電位信號(hào)通過(guò)電位頻率轉(zhuǎn)換函數(shù)變成頻率。

手柄處于平衡位置時(shí)的電位設(shè)為平衡電位V0,此時(shí)電機(jī)靜止。當(dāng)電壓值高于這個(gè)平衡電位值時(shí),位移為正;低于平衡電位時(shí),位移為負(fù)。此系統(tǒng)就是通過(guò)控制手柄運(yùn)動(dòng)的方向及瞬時(shí)電位值V來(lái)控制步進(jìn)電機(jī)的運(yùn)動(dòng)。主體框架如圖3所示。

圖3 手柄到頻率的轉(zhuǎn)換關(guān)系

電機(jī)速度控制模塊是該系統(tǒng)的主要模塊??梢院?jiǎn)單的看作一個(gè)濾波器,它控制速度變化的斜率及速度,濾除超過(guò)加速度門限值和速度門限值的點(diǎn),使電機(jī)正常工作。電機(jī)速度控制模塊采用自己編寫的S-Function函數(shù),電機(jī)速度控制模塊如圖4所示。

圖4 電機(jī)速度控制模塊

S-Function是系統(tǒng)函數(shù)(System Function)的簡(jiǎn)稱,擴(kuò)展了Simulink的性能,常用來(lái)解決建模中遇到的復(fù)雜的、不能直接用Simlink創(chuàng)建或者直接用Simlink創(chuàng)建顯得非常復(fù)雜的問(wèn)題。它可以用Matlab語(yǔ)言,C,C++,F(xiàn)ortran及Ada語(yǔ)言編寫??梢愿鶕?jù)自己的需要來(lái)編寫實(shí)現(xiàn)特殊功能的S-Function函數(shù),使得建模易于實(shí)現(xiàn)。S-Function函數(shù)采用不同的語(yǔ)言編寫都有各自確定的格式,這里僅以C語(yǔ)言為例進(jìn)行討論。此程序包含定義與包含,回調(diào)函數(shù)的實(shí)現(xiàn)及RTW和Simulink接口三個(gè)部分。

mdlOutputs函數(shù)是程序的主要部分,在每個(gè)采樣時(shí)間步長(zhǎng)內(nèi),Simulink調(diào)用mdlOutputs來(lái)計(jì)算塊的輸出。mdlOutputs函數(shù)的實(shí)現(xiàn)是取出輸入信號(hào),對(duì)其進(jìn)行判斷,如果下個(gè)采樣點(diǎn)大于上個(gè)采樣點(diǎn)的值與加速度門限值之和,則輸出是上個(gè)采樣值與加速度門限值之和,從而限制了電機(jī)的加速度,起到濾波作用。

這段代碼用來(lái)判斷此S-Function函數(shù)是植入RTW還是Simulink中。

4.3 生成C代碼

RTW自動(dòng)完成從Simulink模型到生成模型C代碼的任務(wù),RTW代碼的生成方法:(1)設(shè)置Solver Options Type參數(shù),并選擇Ode5解碼器。(2)設(shè)置Fixed Step Size參數(shù)為一個(gè)合適的值。(3)選擇Real-TimeWorkshop頁(yè)面并按下Build按鈕。完成以上三個(gè)步驟即可生成一系列ABS系統(tǒng)模型相關(guān)文件:(1)model.C,它是模型的單機(jī) C 代碼。(2)model.h,是包含狀態(tài)變量和參數(shù)的包含頭文件。(3)model_expor.h,是輸出數(shù)據(jù)和參數(shù)的包含頭文件。(4)model.reg,是包含頭文件,它包含了完成在生成代碼中對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行初始化的模型注冊(cè)信息。(5)model.prm,是一個(gè)包含模型中所用的參數(shù)的有關(guān)信息的包含頭文件。

4.4 硬件開(kāi)發(fā)及相關(guān)的接口應(yīng)用程序的編寫

通過(guò)分析工程項(xiàng)目要求,硬件開(kāi)發(fā)人員開(kāi)發(fā)出手柄控制步進(jìn)電機(jī)的硬件目標(biāo)板,開(kāi)發(fā)人員手動(dòng)編寫基于此目標(biāo)板的硬件接口代碼,以便與主控制程序進(jìn)行接口連接。

4.5 生成與硬件相關(guān)的可移植的代碼

將所生成的C代碼與開(kāi)發(fā)人員編寫的基于系統(tǒng)目標(biāo)板的接口C代碼通過(guò)所應(yīng)用CPU的C編譯器進(jìn)行編譯鏈接生成與硬件對(duì)應(yīng)的可移植代碼。將所生成的代碼移植到開(kāi)發(fā)的應(yīng)用系統(tǒng)目標(biāo)板上,經(jīng)過(guò)檢驗(yàn),不論是代碼的運(yùn)行速度還是代碼的穩(wěn)定性都能夠很好的滿足步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)、加速及停止要求,達(dá)到了令人滿意的效果。

5 結(jié)束語(yǔ)

由此可見(jiàn),與傳統(tǒng)開(kāi)發(fā)方法相比,新型開(kāi)發(fā)方法有如下優(yōu)勢(shì):

(1)形象的模型語(yǔ)言。用圖形語(yǔ)言代替抽象的高級(jí)語(yǔ)言來(lái)描述復(fù)雜的控制系統(tǒng),編寫控制軟件程序,這就能使軟件工程師將更多的精力和時(shí)間用于控制策略的設(shè)計(jì)、比較和優(yōu)化,以提高控制軟件的功能和性能。

(2)能夠快速直觀仿真驗(yàn)證控制算法,比較不同控制算法的優(yōu)劣,能在較短時(shí)間內(nèi)設(shè)計(jì)出最優(yōu)的算法。

(3)在線實(shí)時(shí)觀測(cè)。能在不中斷程序運(yùn)行的情況下觀測(cè)控制軟件不同部分的運(yùn)行結(jié)果,在不進(jìn)行重新編譯程序的情況下,修改控制軟件系統(tǒng)內(nèi)部的參數(shù),迅速驗(yàn)證參數(shù)配置后的控制響應(yīng)。

[1]曹羅生.VC++與Matlab/Simulink混合編程的實(shí)現(xiàn)與研究[J].科學(xué)技術(shù)與工程,2007,7(21):5685-5687.

[2]齊星剛,趙 剛.在MATLAB/Simulink平臺(tái)上DSP代碼的自動(dòng)生成[J].中國(guó)測(cè)試技術(shù),2005,31(1):87-88.

[3]臧懷泉,李旺軍.基于RTW的汽車ABS的軟件設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2007,20(11):50-51.

[4]田 偉,熊晉魁.Simulink模型的C/C++代碼實(shí)現(xiàn)[J].應(yīng)用技術(shù),2004,31(11):16-18.

[5]張 祥,楊志剛.Matlab/Simulink模型到C/C++代碼的自動(dòng)實(shí)現(xiàn)[J].重慶工學(xué)院學(xué)報(bào),2006,20(11):111-123.

[6]樊曉丹,孫應(yīng)飛.一種基于RTW的實(shí)時(shí)控制系統(tǒng)快速開(kāi)發(fā)方法[J].清華大學(xué)學(xué)報(bào),2003,43(7):895-898.

[7]胡廣書.數(shù)字信號(hào)處理[M].北京:清華大學(xué)出版社,2003.

[8]丁玉美,高西金.數(shù)字信號(hào)處理[M].西安:西安電子科技大學(xué)出版社,2002.

[9]王正林.Matlab/Simulink與控制系統(tǒng)仿真[M].北京:電子工業(yè)出版社,2008.

[10]張照明.應(yīng)用MATLAB實(shí)現(xiàn)信號(hào)分析和處理[M].北京:科學(xué)出版社,2005.

New integrated design method for control system base on M atlab/RTW

LI Gen,TANG Zhen-yu,GENG Hai-xiang,JIN Fo-rong
(School of Physical Science and Technology,Sichuan University,Chengdu 610064,China)

Against the existing design method for control system with long development time and high cost,this paper introduced a new design method on the basis of Matlab/RTW and its steps.The method made full use of strong simulation and easy edition of Matlab, combined the algorithm design with the software design, and automatically generated the main C code of the control system by RTW tool.It reduced the development cycle greatly and saved the development cost too.Then, in the Matlab/Simulink simulation environment, the stepper model, the handlebar controlled the way and speed of the step motor, has been established.The automatically generated C code and the interrelated hardware have been integrated by the interface code written by the developer.The experimental result proved that the code has very good stability and run speed.The example confirmed that the new method took shorter development cycle,low development cost.

Control system;RTW;Integrated method;Generated code;S-function

TP273;TP311.52

A

1674-5124(2010)01-0075-03

2009-05-04;

2009-07-26

李 根(1984-),男,安徽阜陽(yáng)人,碩士研究生,專業(yè)方向?yàn)闇y(cè)控技術(shù)。

猜你喜歡
開(kāi)發(fā)人員手柄電位
耳蝸微音器電位臨床操作要點(diǎn)
電位滴定法在食品安全檢測(cè)中的應(yīng)用
基于PLC控制的手柄座鉆孔攻絲一體機(jī)的研發(fā)
Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
一種多功能無(wú)線手柄的設(shè)計(jì)
為什么廚具的手柄不是金屬的?
銀行家
后悔了?教你隱藏開(kāi)發(fā)人員選項(xiàng)
簡(jiǎn)析線性電路電位與電壓的關(guān)系
基于二維自適應(yīng)hp有限元的自然電位高精度計(jì)算
株洲县| 衡水市| 沂南县| 福鼎市| 黎城县| 荔浦县| 芮城县| 信丰县| 富平县| 哈尔滨市| 宁强县| 保定市| 沧源| 焉耆| 马边| 满城县| 特克斯县| 科尔| 鄂温| 兴山县| 白城市| 莱芜市| 辽宁省| 佛学| 普安县| 长汀县| 盐城市| 嵩明县| 应用必备| 南召县| 台湾省| 东平县| 宁南县| 新营市| 呼伦贝尔市| 安乡县| 老河口市| 双桥区| 邛崃市| 永城市| 南京市|