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

        ?

        基于模塊化設(shè)計(jì)的嵌入式伺服控制軟件的研究

        2018-02-25 11:54:22欒婷
        電子技術(shù)與軟件工程 2018年11期
        關(guān)鍵詞:模塊化嵌入式

        欒婷

        摘要 本文研究一種模塊化的嵌入式軟件閉環(huán)算法的設(shè)計(jì)方法,分析了傳統(tǒng)閉環(huán)算法設(shè)計(jì)的不足之處,給出了模塊化閉環(huán)算法的設(shè)計(jì)理念和設(shè)計(jì)方法,并詳細(xì)給出了幾種閉環(huán)運(yùn)算中常用的運(yùn)算類型的模塊化封裝方法。在完全采用模塊化設(shè)計(jì)方法后,縮短了伺服系統(tǒng)嵌入式控制軟件的編寫(xiě)和調(diào)試時(shí)間,在提高效率節(jié)省資源的同時(shí),也提高了伺服控制軟件的可靠性。

        [關(guān)鍵詞]模塊化 嵌入式 伺服控制

        1 概述

        伺服控制器是伺服系統(tǒng)的數(shù)字電子控制補(bǔ)償裝置,伺服控制器接收控制系統(tǒng)發(fā)出的數(shù)字指令信號(hào),在伺服系統(tǒng)地面測(cè)試、發(fā)射準(zhǔn)備、飛行等階段,通過(guò)控制器內(nèi)部的嵌入式軟件運(yùn)算,實(shí)現(xiàn)伺服系統(tǒng)內(nèi)部信號(hào)采集、數(shù)字閉環(huán)控制、數(shù)字零位補(bǔ)償及校正和與控制系統(tǒng)的通訊等功能。伺服系統(tǒng)總體要求伺服控制器嵌入式軟件的閉環(huán)算法調(diào)整編寫(xiě)速度要快,出錯(cuò)次數(shù)要少,整體可靠性要高。為此伺服系統(tǒng)控制器的嵌入式軟件進(jìn)行了以提高可靠性為主要目的的軟件模塊化設(shè)計(jì)。

        2 伺服系統(tǒng)嵌入式軟件組成

        本課題中伺服系統(tǒng)數(shù)字控制器以DSP(TMS320F2812)為計(jì)算平臺(tái),采用15 53B總線進(jìn)行通信,采用TI公司為此配套的編譯軟件CCS來(lái)編寫(xiě)、調(diào)試和燒錄程序。

        伺服控制器軟件的任務(wù)就是實(shí)現(xiàn)伺服系統(tǒng)與總線系統(tǒng)之間的通信,接收并執(zhí)行BC的控制指令,并向BC發(fā)送伺服系統(tǒng)狀態(tài)信息;定時(shí)采集伺服系統(tǒng)數(shù)據(jù)并按指定格式傳送給總線系統(tǒng);定時(shí)對(duì)采集的信號(hào)進(jìn)行多項(xiàng)式擬合;定時(shí)對(duì)擬合后的冗余信號(hào)進(jìn)行冗余表決,表決的結(jié)果作為數(shù)字閉環(huán)控制算法的反饋信號(hào);定時(shí)接收BC發(fā)送的控制指令數(shù)據(jù),進(jìn)行伺服系統(tǒng)的數(shù)字閉環(huán)控制及補(bǔ)償;同時(shí)軟件具備初步的故障診斷及余度管理功能。

        伺服系統(tǒng)嵌入式控制軟件的主要組成如圖l所示。

        各模塊分別執(zhí)行自己的功能,進(jìn)行模塊間數(shù)據(jù)交互,執(zhí)行閉環(huán)控制算法,完成對(duì)伺服閥的控制。

        閉環(huán)控制算法通常需要進(jìn)行三冗余反饋數(shù)據(jù)表決、擬合、故障診斷和余度管理等運(yùn)算,閉環(huán)控制的步驟很多,如果還把閉環(huán)控制算法當(dāng)成一個(gè)基本模塊來(lái)編寫(xiě),必然會(huì)使軟件的執(zhí)行步驟和復(fù)雜度大大增加。這不僅增加了嵌入式軟件編寫(xiě)人員的工作量,在伺服系統(tǒng)調(diào)試過(guò)程中,也會(huì)不可避免的增加因軟件編寫(xiě)錯(cuò)誤而導(dǎo)致的無(wú)效啟機(jī)試驗(yàn),因此而造成大量有效時(shí)間浪費(fèi)和不必要的經(jīng)濟(jì)損失。

        為此,針對(duì)伺服系統(tǒng)閉環(huán)控制框圖的特點(diǎn),專門(mén)對(duì)伺服控制器嵌入式軟件的閉環(huán)控制部分進(jìn)行了模塊化細(xì)化設(shè)計(jì)。

        3 傳統(tǒng)設(shè)計(jì)方法及技術(shù)改進(jìn)點(diǎn)

        3.1 傳統(tǒng)閉環(huán)運(yùn)算程序設(shè)計(jì)方法

        傳統(tǒng)的閉環(huán)計(jì)算方法把閉環(huán)控制框圖當(dāng)成一個(gè)基本軟件模塊來(lái)設(shè)計(jì),主要采用的是面向過(guò)程的編寫(xiě)方法。因?yàn)橐郧暗乃欧到y(tǒng)閉環(huán)控制框圖相對(duì)比較簡(jiǎn)單,采用面向過(guò)程的設(shè)計(jì)方法可清晰的表達(dá)控制框圖中的對(duì)應(yīng)關(guān)系。

        下面示出了傳統(tǒng)閉環(huán)控制運(yùn)算中,陷波環(huán)節(jié)(二階環(huán)節(jié))的嵌入式C程序編寫(xiě)內(nèi)容。

        //陷波環(huán)節(jié)參數(shù)定義部分

        //#define CurDifData_ CalCoeff 2.2019/*當(dāng)前誤差信號(hào)數(shù)據(jù)系數(shù)+/

        //#define PrevDifData_ CalCoeff4.2328/*前一次誤差信號(hào)數(shù)據(jù)系數(shù)+/

        //#define PrevPrevDifData CalCoeff2.1164/*前兩次誤差信號(hào)數(shù)據(jù)系數(shù)*/

        //#define PrevHYPData CalCoeff l.8575/*前一次閉環(huán)算法結(jié)果數(shù)據(jù)系數(shù)e/

        //#define PrevPrevHYPData C alCoe ff0.9430/*前兩次閉環(huán)算法結(jié)果數(shù)據(jù)系數(shù)*/

        //陷波環(huán)節(jié)計(jì)算過(guò)程

        g_stHistoryDifference [i].m_fCurData;

        對(duì)于只有一個(gè)二階計(jì)算節(jié)點(diǎn)的伺服系統(tǒng)閉環(huán)控制框圖來(lái)說(shuō),該編寫(xiě)方法是比較合適的,如果在閉環(huán)控制框圖中,二階節(jié)點(diǎn)不只一個(gè),并且在計(jì)算過(guò)程中還間插有一階節(jié)點(diǎn)、多項(xiàng)式擬合等運(yùn)算,這種面向過(guò)程的編寫(xiě)就顯的有些亂,一旦總體要修改控制框圖結(jié)構(gòu),程序調(diào)整起來(lái)工作量就比較大,并且很容易出現(xiàn)潛在錯(cuò)誤。

        3.2 改進(jìn)的閉環(huán)運(yùn)算程序設(shè)計(jì)方法

        在閉環(huán)控制框圖中,大致有“N階節(jié)點(diǎn)”、“多項(xiàng)式擬合”和“3冗余表決”這三大類運(yùn)算,如果把這三類運(yùn)算分別進(jìn)行模塊化封裝,使其自成一體、功能獨(dú)立,則會(huì)大大簡(jiǎn)化閉環(huán)控制框圖的嵌入式程序編寫(xiě),軟件的維護(hù)性也會(huì)有很大提高,便是總體臨時(shí)決定改動(dòng)閉環(huán)控制框圖結(jié)構(gòu),程序的改動(dòng)和傳統(tǒng)方法相比,也會(huì)少很多,并且程序結(jié)構(gòu)更加清晰,很難出現(xiàn)低級(jí)別的程序錯(cuò)誤。下面分別介紹上述三大類運(yùn)算改進(jìn)的編寫(xiě)過(guò)程。

        3.2.1 N階節(jié)點(diǎn)

        N階節(jié)點(diǎn)的計(jì)算過(guò)程中,用到了前N次的輸入/輸出狀態(tài),為此,需要定義一些類似傳統(tǒng)設(shè)計(jì)方法中的全局變量來(lái)保存這些狀態(tài),并且在每次運(yùn)算時(shí)需逐次更新。為了簡(jiǎn)化閉環(huán)運(yùn)算流程,采用了可面向結(jié)構(gòu)的設(shè)計(jì)方法,把這些變量封裝在結(jié)構(gòu)里面,并由結(jié)構(gòu)體對(duì)應(yīng)的操作函數(shù)來(lái)執(zhí)行運(yùn)算。因每個(gè)節(jié)點(diǎn)的階次和參數(shù)都不同,因此,便把它們作為了該操作函數(shù)的輸入?yún)?shù)。這樣,便可實(shí)現(xiàn)N節(jié)點(diǎn)的封裝和獨(dú)立運(yùn)算。

        下面示出了改進(jìn)的閉環(huán)控制運(yùn)算中,二階陷波器的嵌入式C程序編寫(xiě)內(nèi)容。

        //N階節(jié)點(diǎn)結(jié)構(gòu)體封裝(此處N<2),位于頭文件中。

        //……控制框圖中基本運(yùn)算節(jié)點(diǎn)結(jié)構(gòu)體定義……

        //控制框圖中基本運(yùn)算節(jié)點(diǎn)結(jié)構(gòu)體定義

        //控制算法框圖中的每一個(gè)方框都看作一個(gè)控制節(jié)點(diǎn),應(yīng)該為每個(gè)方框都

        //定義一個(gè)節(jié)點(diǎn)。節(jié)點(diǎn)中保存著該方框的輸入和輸出狀態(tài),默認(rèn)為2階系統(tǒng)。

        //每個(gè)節(jié)點(diǎn)都帶有積分輸出保持開(kāi)關(guān)標(biāo)志和輸出限位開(kāi)關(guān)標(biāo)志。

        //該節(jié)點(diǎn)需要和對(duì)應(yīng)函數(shù)ControlNode_Process()配合使用。

        struct ControlNode

        {

        //控制節(jié)點(diǎn)輸入狀態(tài),降階排列:O:當(dāng)前狀態(tài)X(K)1:前1狀態(tài)X(k-l)2:前2狀態(tài)X(k-2)…

        float flnput[3];

        //控制節(jié)點(diǎn)輸出狀態(tài),降階排列:O:當(dāng)前狀態(tài)Y(K)1:前1狀態(tài)Y(k-l)2:前2狀態(tài)Y(k-2)…

        fioat fOutput[3];

        //控制節(jié)點(diǎn)計(jì)算用分子參數(shù)降階排列,和matlab離散化后數(shù)值與排列方式都相同

        float fNum[3];

        //控制節(jié)點(diǎn)計(jì)算用分母參數(shù)降階排列,和matlab離散化后數(shù)值與排列方式都相同

        fioat fDen[3];

        //表示當(dāng)前控制節(jié)點(diǎn)的階數(shù)

        int NodeOrder;

        //輸出保持開(kāi)關(guān)1:使能輸出保持,當(dāng)前輸出值保持為前一個(gè)狀態(tài)值O:禁用輸出保持

        int Switch_OutputHold;

        ∥輸出限位開(kāi)關(guān)1:使能輸出限位,當(dāng)前輸出值為最大限位值 O:禁用輸出限位

        int Switch_OutputLimit;

        //節(jié)點(diǎn)輸出最大值

        fioat flvlaxOutput;

        //節(jié)點(diǎn)輸出最小值

        fioat fMinOutput;

        );

        extem

        struct ControlNodestNode_Trap[2];

        //陷波節(jié)點(diǎn)系數(shù)初始化,參數(shù)和matlab離散化計(jì)算值順序相同,復(fù)制過(guò)來(lái)加逗號(hào)即可

        float fXianbo_Coef_Num[3] ={0.5753,-1.0745, 0.5168);

        float fXianbo_Coef_Den[3]={1.0000,-1.7819, 0.7994};

        //陷波節(jié)點(diǎn)初始化,陷波節(jié)點(diǎn)為2階節(jié)點(diǎn)

        InitiationNode(&stNode_Trap [i],fXianboCoef_Num,fXianbo_Coef_Den,2);

        //閉環(huán)控制框圖中的計(jì)算部分

        //陷波節(jié)點(diǎn)計(jì)算mA

        ControlNode_Process(&stNodeTrap[i],fErrorResult_3);

        從改進(jìn)后的程序中看出,在封裝的結(jié)構(gòu)體內(nèi)還具有輸出保持開(kāi)關(guān)和限幅開(kāi)關(guān),如果當(dāng)一個(gè)N階環(huán)節(jié)為積分節(jié)點(diǎn)時(shí),這兩個(gè)開(kāi)關(guān)就會(huì)有特殊的作用,通過(guò)控制這兩個(gè)變量,便可自動(dòng)實(shí)現(xiàn)積分開(kāi)關(guān)和限幅的功能,而并不需要重新定義結(jié)構(gòu)體。

        N階節(jié)點(diǎn)的分子和分母的離散化系數(shù)和matlab計(jì)算值排列順序相同,只要復(fù)制過(guò)來(lái),按C語(yǔ)言的語(yǔ)法添加逗號(hào)隔開(kāi)即可。

        3.2.2 多項(xiàng)式擬合

        一個(gè)閉環(huán)控制框圖中,會(huì)出現(xiàn)不同階次的多項(xiàng)式擬合,改進(jìn)的模塊化設(shè)計(jì)中,提取多項(xiàng)式擬合的共同特征,把多項(xiàng)式系數(shù)和階次作為多項(xiàng)式擬合函數(shù)的輸入?yún)?shù),從而實(shí)現(xiàn)了多項(xiàng)式擬合運(yùn)算的封裝。嵌入式程序的實(shí)現(xiàn)步驟如下所示。

        //角位移反饋輸入采樣后擬合系數(shù)

        //4階擬合,系數(shù)排列順序和matlab計(jì)算值相同

        float fPolyCoefs_JiaoWeiYi[5]={0.00000146029, 0.0190893, 0.0000507086,\

        0.0000029009, 0.00000009069347);

        ,/角位移傳感器4階擬合V.> Rad輸入為電壓,擬合后為弧度

        fFeedbackjiaoWeiYiRad= Polyval(fPolyCoefsJiaoWeiYi,fFeedbackjiaoWeiYi_V,4);

        3.2.3 三冗余表決

        三冗余表決的執(zhí)行步驟比起N階環(huán)節(jié)和多項(xiàng)式擬合要簡(jiǎn)單的多,改進(jìn)后的模塊化設(shè)計(jì)中,把三冗余表決運(yùn)算封裝成了函數(shù)。嵌入式程序的實(shí)現(xiàn)步驟如下。

        //三冗余多數(shù)表決

        fFeedbackjiaoWeiYi_Binary=

        TripleRedundancyVote(giAcquisitionjiaoWeiYiData[i] [O],

        g_iAcquisitionjiaoWeiYiData[i] [1],

        g_iAcquisitionjiaoWeiYiData[i][2]);

        4 結(jié)論

        在完全采用模塊化設(shè)計(jì)方法后,伺服系統(tǒng)嵌入式控制軟件的編寫(xiě)和調(diào)試時(shí)間縮短不少,因軟件編寫(xiě)失誤而導(dǎo)致的伺服系統(tǒng)開(kāi)環(huán)事件大大減少,在提高效率節(jié)省資源的同時(shí),也提高了伺服控制軟件的可靠性。

        伺服系統(tǒng)當(dāng)前正向數(shù)字化轉(zhuǎn)型,采用數(shù)字伺服控制器的型號(hào)越來(lái)越多,控制算法也越來(lái)越復(fù)雜,這種面向結(jié)構(gòu)的模塊化設(shè)計(jì)方法將越來(lái)越多地應(yīng)用于各型號(hào)中。

        參考文獻(xiàn)

        [1]蘇奎峰,呂強(qiáng),耿慶鋒,陳圣儉編著.TMS320F2812原理與開(kāi)發(fā)[M].電子工業(yè)出版社,2005.

        [2]周航慈著,嵌入式系統(tǒng)軟件設(shè)計(jì)中的常用算法[M].北京航空航天大學(xué)出版社.2010.

        猜你喜歡
        模塊化嵌入式
        模塊化自主水下機(jī)器人開(kāi)發(fā)與應(yīng)用
        基于模塊化控制系統(tǒng)在一體化教學(xué)中的應(yīng)用
        模塊化住宅
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
        電子制作(2019年7期)2019-04-25 13:17:14
        嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:16
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        ACP100模塊化小型堆研發(fā)進(jìn)展
        從模塊化中得到的二氧化碳
        模塊化VS大型工廠
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        国产成人精品麻豆| 98bb国产精品视频| 一本一本久久a久久精品综合| 色一情一乱一伦一视频免费看| 久久久久久久综合综合狠狠 | 午夜影院免费观看小视频| 一区二区三区国产黄色| 女优一区二区三区在线观看| 国模冰莲自慰肥美胞极品人体图| 欧美熟妇色ⅹxxx欧美妇| 日韩欧美亚洲综合久久影院d3 | 美腿丝袜日韩在线观看| 亚洲视频网站大全免费看| 99久久久无码国产精品秋霞网| 久久99精品国产麻豆宅宅| 性xxxx视频播放免费| 草莓视频成人| 伊人婷婷色香五月综合缴激情| 亚洲国产精品天堂久久久| 麻豆人妻性色av专区0000| 亚洲日韩成人无码| 无码av一区二区大桥久未| 亚洲精品综合一区二区三| 久久精品国产精品亚洲婷婷 | 久久久大少妇免费高潮特黄| 精品亚洲麻豆1区2区3区| 亚洲色欲色欲www| 极品尤物高潮潮喷在线视频| 久久亚洲午夜牛牛影视| 国产精品国产三级国产an不卡| 国产毛片黄片一区二区三区| 欧美艳星nikki激情办公室| 亚洲香蕉成人AV网站在线观看| 色婷婷亚洲十月十月色天| 亚洲熟妇av一区二区三区hd| 青青草大香蕉视频在线观看| 国产综合久久久久久鬼色| 久久99久久99精品免观看| 亚洲国产精品国自产电影| 亚洲无码美韩综合| 日韩激情视频一区在线观看|