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

基于模塊化設計的嵌入式伺服控制軟件的研究

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

欒婷

摘要 本文研究一種模塊化的嵌入式軟件閉環算法的設計方法,分析了傳統閉環算法設計的不足之處,給出了模塊化閉環算法的設計理念和設計方法,并詳細給出了幾種閉環運算中常用的運算類型的模塊化封裝方法。在完全采用模塊化設計方法后,縮短了伺服系統嵌入式控制軟件的編寫和調試時間,在提高效率節省資源的同時,也提高了伺服控制軟件的可靠性。

[關鍵詞]模塊化 嵌入式 伺服控制

1 概述

伺服控制器是伺服系統的數字電子控制補償裝置,伺服控制器接收控制系統發出的數字指令信號,在伺服系統地面測試、發射準備、飛行等階段,通過控制器內部的嵌入式軟件運算,實現伺服系統內部信號采集、數字閉環控制、數字零位補償及校正和與控制系統的通訊等功能。伺服系統總體要求伺服控制器嵌入式軟件的閉環算法調整編寫速度要快,出錯次數要少,整體可靠性要高。為此伺服系統控制器的嵌入式軟件進行了以提高可靠性為主要目的的軟件模塊化設計。

2 伺服系統嵌入式軟件組成

本課題中伺服系統數字控制器以DSP(TMS320F2812)為計算平臺,采用15 53B總線進行通信,采用TI公司為此配套的編譯軟件CCS來編寫、調試和燒錄程序。

伺服控制器軟件的任務就是實現伺服系統與總線系統之間的通信,接收并執行BC的控制指令,并向BC發送伺服系統狀態信息;定時采集伺服系統數據并按指定格式傳送給總線系統;定時對采集的信號進行多項式擬合;定時對擬合后的冗余信號進行冗余表決,表決的結果作為數字閉環控制算法的反饋信號;定時接收BC發送的控制指令數據,進行伺服系統的數字閉環控制及補償;同時軟件具備初步的故障診斷及余度管理功能。

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

各模塊分別執行自己的功能,進行模塊間數據交互,執行閉環控制算法,完成對伺服閥的控制。

閉環控制算法通常需要進行三冗余反饋數據表決、擬合、故障診斷和余度管理等運算,閉環控制的步驟很多,如果還把閉環控制算法當成一個基本模塊來編寫,必然會使軟件的執行步驟和復雜度大大增加。這不僅增加了嵌入式軟件編寫人員的工作量,在伺服系統調試過程中,也會不可避免的增加因軟件編寫錯誤而導致的無效啟機試驗,因此而造成大量有效時間浪費和不必要的經濟損失。

為此,針對伺服系統閉環控制框圖的特點,專門對伺服控制器嵌入式軟件的閉環控制部分進行了模塊化細化設計。

3 傳統設計方法及技術改進點

3.1 傳統閉環運算程序設計方法

傳統的閉環計算方法把閉環控制框圖當成一個基本軟件模塊來設計,主要采用的是面向過程的編寫方法。因為以前的伺服系統閉環控制框圖相對比較簡單,采用面向過程的設計方法可清晰的表達控制框圖中的對應關系。

下面示出了傳統閉環控制運算中,陷波環節(二階環節)的嵌入式C程序編寫內容。

//陷波環節參數定義部分

//#define CurDifData_ CalCoeff 2.2019/*當前誤差信號數據系數+/

//#define PrevDifData_ CalCoeff4.2328/*前一次誤差信號數據系數+/

//#define PrevPrevDifData CalCoeff2.1164/*前兩次誤差信號數據系數*/

//#define PrevHYPData CalCoeff l.8575/*前一次閉環算法結果數據系數e/

//#define PrevPrevHYPData C alCoe ff0.9430/*前兩次閉環算法結果數據系數*/

//陷波環節計算過程

g_stHistoryDifference [i].m_fCurData;

對于只有一個二階計算節點的伺服系統閉環控制框圖來說,該編寫方法是比較合適的,如果在閉環控制框圖中,二階節點不只一個,并且在計算過程中還間插有一階節點、多項式擬合等運算,這種面向過程的編寫就顯的有些亂,一旦總體要修改控制框圖結構,程序調整起來工作量就比較大,并且很容易出現潛在錯誤。

3.2 改進的閉環運算程序設計方法

在閉環控制框圖中,大致有“N階節點”、“多項式擬合”和“3冗余表決”這三大類運算,如果把這三類運算分別進行模塊化封裝,使其自成一體、功能獨立,則會大大簡化閉環控制框圖的嵌入式程序編寫,軟件的維護性也會有很大提高,便是總體臨時決定改動閉環控制框圖結構,程序的改動和傳統方法相比,也會少很多,并且程序結構更加清晰,很難出現低級別的程序錯誤。下面分別介紹上述三大類運算改進的編寫過程。

3.2.1 N階節點

N階節點的計算過程中,用到了前N次的輸入/輸出狀態,為此,需要定義一些類似傳統設計方法中的全局變量來保存這些狀態,并且在每次運算時需逐次更新。為了簡化閉環運算流程,采用了可面向結構的設計方法,把這些變量封裝在結構里面,并由結構體對應的操作函數來執行運算。因每個節點的階次和參數都不同,因此,便把它們作為了該操作函數的輸入參數。這樣,便可實現N節點的封裝和獨立運算。

下面示出了改進的閉環控制運算中,二階陷波器的嵌入式C程序編寫內容。

//N階節點結構體封裝(此處N<2),位于頭文件中。

//……控制框圖中基本運算節點結構體定義……

//控制框圖中基本運算節點結構體定義

//控制算法框圖中的每一個方框都看作一個控制節點,應該為每個方框都

//定義一個節點。節點中保存著該方框的輸入和輸出狀態,默認為2階系統。

//每個節點都帶有積分輸出保持開關標志和輸出限位開關標志。

//該節點需要和對應函數ControlNode_Process()配合使用。

struct ControlNode

{

//控制節點輸入狀態,降階排列:O:當前狀態X(K)1:前1狀態X(k-l)2:前2狀態X(k-2)…

float flnput[3];

//控制節點輸出狀態,降階排列:O:當前狀態Y(K)1:前1狀態Y(k-l)2:前2狀態Y(k-2)…

fioat fOutput[3];

//控制節點計算用分子參數降階排列,和matlab離散化后數值與排列方式都相同

float fNum[3];

//控制節點計算用分母參數降階排列,和matlab離散化后數值與排列方式都相同

fioat fDen[3];

//表示當前控制節點的階數

int NodeOrder;

//輸出保持開關1:使能輸出保持,當前輸出值保持為前一個狀態值O:禁用輸出保持

int Switch_OutputHold;

∥輸出限位開關1:使能輸出限位,當前輸出值為最大限位值 O:禁用輸出限位

int Switch_OutputLimit;

//節點輸出最大值

fioat flvlaxOutput;

//節點輸出最小值

fioat fMinOutput;

);

extem

struct ControlNodestNode_Trap[2];

//陷波節點系數初始化,參數和matlab離散化計算值順序相同,復制過來加逗號即可

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

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

//陷波節點初始化,陷波節點為2階節點

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

//閉環控制框圖中的計算部分

//陷波節點計算mA

ControlNode_Process(&stNodeTrap[i],fErrorResult_3);

從改進后的程序中看出,在封裝的結構體內還具有輸出保持開關和限幅開關,如果當一個N階環節為積分節點時,這兩個開關就會有特殊的作用,通過控制這兩個變量,便可自動實現積分開關和限幅的功能,而并不需要重新定義結構體。

N階節點的分子和分母的離散化系數和matlab計算值排列順序相同,只要復制過來,按C語言的語法添加逗號隔開即可。

3.2.2 多項式擬合

一個閉環控制框圖中,會出現不同階次的多項式擬合,改進的模塊化設計中,提取多項式擬合的共同特征,把多項式系數和階次作為多項式擬合函數的輸入參數,從而實現了多項式擬合運算的封裝。嵌入式程序的實現步驟如下所示。

//角位移反饋輸入采樣后擬合系數

//4階擬合,系數排列順序和matlab計算值相同

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 三冗余表決

三冗余表決的執行步驟比起N階環節和多項式擬合要簡單的多,改進后的模塊化設計中,把三冗余表決運算封裝成了函數。嵌入式程序的實現步驟如下。

//三冗余多數表決

fFeedbackjiaoWeiYi_Binary=

TripleRedundancyVote(giAcquisitionjiaoWeiYiData[i] [O],

g_iAcquisitionjiaoWeiYiData[i] [1],

g_iAcquisitionjiaoWeiYiData[i][2]);

4 結論

在完全采用模塊化設計方法后,伺服系統嵌入式控制軟件的編寫和調試時間縮短不少,因軟件編寫失誤而導致的伺服系統開環事件大大減少,在提高效率節省資源的同時,也提高了伺服控制軟件的可靠性。

伺服系統當前正向數字化轉型,采用數字伺服控制器的型號越來越多,控制算法也越來越復雜,這種面向結構的模塊化設計方法將越來越多地應用于各型號中。

參考文獻

[1]蘇奎峰,呂強,耿慶鋒,陳圣儉編著.TMS320F2812原理與開發[M].電子工業出版社,2005.

[2]周航慈著,嵌入式系統軟件設計中的常用算法[M].北京航空航天大學出版社.2010.

猜你喜歡
模塊化嵌入式
模塊化自主水下機器人開發與應用
基于模塊化控制系統在一體化教學中的應用
模塊化住宅
現代裝飾(2020年5期)2020-05-30 13:01:56
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
ACP100模塊化小型堆研發進展
中國核電(2017年2期)2017-08-11 08:00:56
從模塊化中得到的二氧化碳
流程工業(2017年4期)2017-06-21 06:29:52
模塊化VS大型工廠
流程工業(2017年4期)2017-06-21 06:29:50
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 亚洲三级影院| 日韩大片免费观看视频播放| 天天操天天噜| 夜色爽爽影院18禁妓女影院| 精品丝袜美腿国产一区| 精品综合久久久久久97超人| 欧美一区二区丝袜高跟鞋| 日韩久草视频| 久久午夜夜伦鲁鲁片无码免费| 国产伦精品一区二区三区视频优播 | 久久国产拍爱| 久久九九热视频| 99热这里只有免费国产精品| 国产成人综合久久精品下载| 国产香蕉一区二区在线网站| 国产精品v欧美| 成人精品在线观看| 国产性精品| 亚洲婷婷丁香| 久操线在视频在线观看| 亚洲精品国产成人7777| 99热亚洲精品6码| 在线永久免费观看的毛片| 丁香婷婷激情网| 亚洲手机在线| 91原创视频在线| 久久人搡人人玩人妻精品| 极品私人尤物在线精品首页 | 国产精品视频白浆免费视频| 欧美性猛交一区二区三区| 国产精品手机在线观看你懂的| 扒开粉嫩的小缝隙喷白浆视频| 国产福利小视频高清在线观看| 国产午夜无码专区喷水| 亚洲V日韩V无码一区二区| 丝袜亚洲综合| 国产成年无码AⅤ片在线 | 波多野结衣第一页| 欧美午夜理伦三级在线观看| 亚洲人成影视在线观看| 亚洲日本中文字幕乱码中文| 日韩a级毛片| 在线国产三级| 免费一级α片在线观看| 国产精品嫩草影院视频| 久久亚洲美女精品国产精品| 成年免费在线观看| 天天干天天色综合网| 亚洲熟女中文字幕男人总站| 亚洲成人播放| 国产成人h在线观看网站站| 欧美日韩va| 激情视频综合网| 国产女人在线| 国产福利免费在线观看| 色吊丝av中文字幕| 91精品国产情侣高潮露脸| 搞黄网站免费观看| 亚洲成综合人影院在院播放| 在线观看国产黄色| 亚洲第一成年免费网站| 亚洲另类色| 亚洲无线国产观看| 99这里精品| 亚洲Av激情网五月天| 国产欧美日韩综合一区在线播放| 国产乱人伦精品一区二区| 国产一级做美女做受视频| 久久久久亚洲av成人网人人软件| 久久综合亚洲色一区二区三区| 91啦中文字幕| 亚洲高清中文字幕在线看不卡| 日韩毛片免费视频| 欧美中文字幕一区二区三区| 亚洲人在线| 91综合色区亚洲熟妇p| 国产综合精品一区二区| 免费中文字幕在在线不卡| 97se亚洲| 波多野结衣的av一区二区三区| 国产在线观看第二页| 亚洲国产欧洲精品路线久久|