• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      數(shù)據(jù)驅動型狀態(tài)機伺服控制系統(tǒng)的設計和實現(xiàn)

      2011-09-20 02:55:32李紹安李維嘉郎飛陽華中科技大學船舶與海洋工程學院輪機工程系湖北武漢430074
      電氣自動化 2011年6期
      關鍵詞:狀態(tài)機功能模塊驅動器

      李紹安 李維嘉 郎飛陽(華中科技大學 船舶與海洋工程學院輪機工程系,湖北 武漢 430074)

      0 引言

      電動缸相對于液壓缸,在響應頻率、設計周期、硬件成本和維修等方面有較大的優(yōu)勢[1],因此在實際運用中,十噸以下六自由度平臺的設計多采用電動缸作為驅動元件。伺服電機驅動器作為電動缸系統(tǒng)中的關鍵組成部分,近幾年以來得到了飛速的發(fā)展,其功率逐漸增大,模擬伺服逐漸發(fā)展到數(shù)字伺服,輸入方式由以前的模擬量發(fā)展到現(xiàn)在的數(shù)字通訊。由于PLC和FPGA的使用,伺服驅動器更加智能,逐漸簡化了控制的工作量,減少了控制開發(fā)的成本。

      隨著數(shù)字伺服驅動器的大量使用,對其控制代碼的設計及優(yōu)化成為六自由度控制系統(tǒng)中的重要組成部分。在實際工程項目中,根據(jù)平臺的功率以及總體成本,常選用不同品牌和型號的數(shù)字驅動器。由于不同的數(shù)字伺服驅動器在控制及通訊方式上存在差異,往往需要開發(fā)不同版本的控制軟件,給開發(fā)成本和后期維護帶來了巨大的困難。

      綜上所述,為減少開發(fā)成本,增加程序代碼復用程度,有必要開發(fā)一套通用的數(shù)字伺服驅動器管理程序,簡化驅動器控制的設計。讓設計人員能快速開發(fā)新的數(shù)字伺服驅動器的控制代碼,從而把主要精力投入到其他關鍵控制系統(tǒng)及算法的設計中。

      1 數(shù)據(jù)驅動狀態(tài)機設計方法

      考慮數(shù)字驅動伺服控制系統(tǒng)的復雜性,為了保證控制系統(tǒng)的可靠性和可維護性,可選用成熟的軟件設計模式。本文數(shù)字驅動伺服控制系統(tǒng)的結構設計,以成熟的“狀態(tài)機設計模式”為依據(jù)[2]?!盃顟B(tài)機”設計模式通過實際控制對象的狀態(tài)描述和狀態(tài)遷移控制,能夠很好的簡化數(shù)字驅動伺服控制系統(tǒng)的復雜性。

      針對本控制系統(tǒng)可以控制多種不同品牌和型號的數(shù)字伺服驅動器,這里對“狀態(tài)機”設計模式進行了進一步優(yōu)化,引入配置數(shù)據(jù)庫,提出了“數(shù)據(jù)驅動狀態(tài)機”設計模式。如圖1所示。

      圖1 數(shù)據(jù)驅動狀態(tài)機“設計模式”

      “數(shù)字驅動狀態(tài)機”在傳統(tǒng)狀態(tài)機設計模式的基礎上添加了狀態(tài)管理類(StateManager)以及向配套的狀態(tài)數(shù)據(jù)庫(StateData-Base)。狀態(tài)管理類主要負責狀態(tài)的配置和管理狀態(tài)轉換。

      (1)引入命令方式(Command)[3],作為狀態(tài)改變的接口,及環(huán)境類(Context)采用命令方式改變當前狀態(tài)。環(huán)境類(Context)當接收外部指令時,向狀態(tài)管理類(StateManager)發(fā)送狀態(tài)改變命令,狀態(tài)管理類根據(jù)命令決定當前狀態(tài)(ConcreteState)。

      (2)允許一個命令產生一系列狀態(tài)變化。在實際控制系統(tǒng)中,控制對象的狀態(tài)常常可以劃分為多個子狀態(tài)。不同的狀態(tài)中包含多個相同的子狀態(tài)。因此,可以通過細分子狀態(tài),組合得到不同控制對象狀態(tài),達到節(jié)省開發(fā)時間的目的。

      (3)定義狀態(tài)類(State)的三個基本接口,分別為開始(begin),運行(run)和結束(end)。使所有的子狀態(tài)類(ConcreteS-tate),獨立完成初始化和結束代碼。保證子狀態(tài)類(ConcreteS-tate)之間無耦合,并且狀態(tài)管理類(StateManager)對子狀態(tài)(ConcreteState)的管理僅僅通過狀態(tài)類(State)提供的接口。減少類與類之間的耦合。

      (4)定義狀態(tài)轉換數(shù)據(jù)庫(StateDataBase),使狀態(tài)轉換顯式化。狀態(tài)數(shù)據(jù)庫(StateDataBase)定義了一系列指令以及該指令所對應的狀態(tài)轉換流程。

      2 數(shù)字驅動器控制軟件的結構設計

      根據(jù)“數(shù)據(jù)驅動狀態(tài)機”設計模式所要求的設計過程,首先劃分數(shù)字驅動器控制系統(tǒng)的功能模塊,然后逐步設計各功能模塊的功能和狀態(tài),最后定義各功能模塊的狀態(tài)轉變過程和方法,從而確定數(shù)字驅動器控制軟件的總體結構。具體設計方法如下:

      2.1 數(shù)字驅動器控制系統(tǒng)功能模塊劃分

      功能模塊劃分可按照如下原則

      (1)按照實際控制對象的物理種類來劃分大功能模塊,一個模塊只管理一類具有類似性質的物理對象。

      (2)劃分的模塊可以定義清晰的接口。

      (3)模塊應具備可替換性及模塊間無耦合。

      (4)模塊的接口的定義在滿足基本功能的前提下,至少設計一個通用接口,方便快速添加新功能。

      (5)如果一個模塊用來管理多個類型性質的物理對象,應設計對象管理子模塊和對象接口子模塊,以便將來添加新的物理對象。

      (6)模塊的功能應提供一定升級空間。

      根據(jù)以上原則,數(shù)字伺服驅動器控制過程可初步劃分成控制管理接口模塊、數(shù)字伺服驅動器功能模塊、通信模塊和驅動器四個部分組成,如圖2所示。

      圖2 功能模塊劃分

      其中控制接口模塊為電動缸控制系統(tǒng)提供各種功能接口。所有與驅動器的功能被封裝到控制接口模塊中。功能的具體實現(xiàn)向電動缸控制系統(tǒng)透明。驅動器功能模塊向控制接口模塊負責,提供驅動器包括參數(shù)設置、尋找零位、返回狀態(tài)等各種驅動器功能。功能的具體實現(xiàn)及控制驅動器的實際代碼向控制接口模塊透明。通訊模塊用來管理控制系統(tǒng)與驅動器之間的實際物理鏈路,包括數(shù)字通訊及IO接口等。

      2.2 驅動器功能模塊設計

      (1)驅動器功能分析

      對于不同型號,不同品牌的數(shù)字伺服驅動器,雖然它們在通訊方式和控制方法上存在著不同,但相對于電動缸伺服系統(tǒng)[4],它們所實現(xiàn)的功能基本一致,僅僅是具體實現(xiàn)的方法存在差異。比如,對于電動缸伺服系統(tǒng),數(shù)字伺服驅動器實現(xiàn)的基本功能有:

      ①位置控制

      ②找零位(HOME)

      ③零位設置

      ④極限位處理

      ⑤手動控制

      ⑥故障報警

      ⑦故障復位

      ⑧控制參數(shù)設置

      ⑨狀態(tài)數(shù)據(jù)獲取

      數(shù)字伺服驅動器控制流程如圖3所示。

      圖3中,控制程序首先根據(jù)數(shù)字伺服驅動器的種類從配置數(shù)據(jù)庫中讀取相關配置信息(“配置管理”),并根據(jù)配置信息初始化驅動器控制量(“初始參數(shù)設置”),如速度增益、加速度增益、最大速度和最大加速度等信息,在初始參數(shù)設置完成后,向控制類實時反饋驅動器狀態(tài)信息(“狀態(tài)信息反饋”),并等待進一步指令;然后,根據(jù)控制類指令,驅動器分別執(zhí)行“手動控制”、“位置控制”和“找零位(HOME)”等功能,并且在每個控制周期中,對驅動器報警信息進行監(jiān)測,如果驅動器報警,根據(jù)報警內容的不同,生成報警指令,使驅動器進入“報警處理”。

      (2)驅動器子狀態(tài)劃分

      根據(jù)驅動器功能分析,驅動器運行過程可劃分為如下子狀態(tài)

      ①初始參數(shù)設置狀態(tài)(InitDriverPara State)

      ②狀態(tài)信息反饋狀態(tài)(GetDriverState State)

      圖3 數(shù)字伺服器控制流程圖

      ③手動控制狀態(tài)(ManualCtrl State)

      ④位置控制狀態(tài)(PosCtrl State)

      ⑤找零位狀態(tài)(HomeCtrl State)

      ⑥停止狀態(tài)(Stop State)

      ⑦普通故障處理狀態(tài)(Fail1Manage State)

      ⑧緊急故障處理狀態(tài)(Fail2Manage State)

      其中,初始參數(shù)設置狀態(tài)(InitDriverPara State)負責設置驅動器控制參數(shù);狀態(tài)信息反饋狀態(tài)(GetDriverState State)負責讀取驅動器狀態(tài)參數(shù)包括故障報警信號,由于它每個控制周期中都必須執(zhí)行,屬于典型的復合子狀態(tài);手動控制狀態(tài)(ManualCtrl State)、位置控制狀態(tài)(PosCtrl State)和找零位狀態(tài)(HomeCtrl State)實現(xiàn)電機三種實際控制功能。;通故障處理狀態(tài)(Fail1Manage State)和緊急故障處理狀態(tài)(Fail2Manage State)負責管理不同級別下的故障處理過程;停止狀態(tài)(Stop State)表示驅動器未使能時的特殊狀態(tài),在實際控制過程中由于未完成任何控制,可以把它等同于狀態(tài)信息反饋狀態(tài)(GetDriverState State)。

      (3)驅動器狀態(tài)轉換的設計

      根據(jù)驅動器功能分析,驅動器在以下幾種指令下狀態(tài)發(fā)生改變

      ①驅動器初始化命令(InitCmd)

      ②手動控制命令(ManualCtrlCmd)

      ③位置控制命令(PosCtrlCmd)

      ④找零位命令(HomeCtrlCmd)

      ⑤普通故障命令(Fail1Cmd)

      ⑥緊急故障命令(Fail2Cmd)

      ⑦停止命令(StopCmd)

      驅動器的狀態(tài)發(fā)送改變分為兩類,一類是控制系統(tǒng)通過向驅動器管理類(MotorDriver)發(fā)送命令改變驅動器狀態(tài)。另一類是,驅動器管理類(MotorDriver)根據(jù)驅動器執(zhí)行過程或故障直接改變驅動器狀態(tài)。當改變狀態(tài)的唯一途徑是發(fā)送上述指令。

      (4)驅動器狀態(tài)轉換命令的優(yōu)先級設計

      ①根據(jù)命令的緊急程度,驅動器狀態(tài)轉換命令的優(yōu)先級分為四個級別。

      緊急故障命令(Fail2Cmd)具備最高優(yōu)先級(priority 0),及無論驅動器處于何種狀態(tài),緊急故障命令(Fail2Cmd)和立即得到相應。例如,驅動器管理類(MotorDriver)檢測到驅動器輸入三相電源缺相時,應立即發(fā)送緊急故障命令(Fail2Cmd),關閉驅動器使能,閉合電機剎車,使電動缸保持當前位置。

      ②普通故障命令(Fail1Cmd)具備優(yōu)先級(priority 1)。例如,驅動器管理類(MotorDriver)檢測到驅動器溫度超過標準時,應立即普通故障命令(Fail1Cmd),使電動缸緩慢運行到初始零位,關閉驅動器使能,閉合電機剎車。

      ③驅動器初始化命令(InitCmd)、手動控制命令(ManualCtrl-Cmd)和停止命令(StopCmd)具備優(yōu)先級(priority 2)。

      ④找零位命令(HomeCtrlCmd)和位置控制命令(PosCtrlC-md)具備優(yōu)先級(priority 3)。

      ⑤由于手動控制命令(ManualCtrlCmd)和停止命令(StopC-md)常運用于電動缸的人工控制,既當驅動器在位置控制時,用于人為干預電動缸的運行。因此,它們的優(yōu)先級要高于找零位命令(HomeCtrlCmd)和位置控制命令(PosCtrlCmd)。

      (5)數(shù)據(jù)驅動狀態(tài)機設計

      根據(jù)上述的驅動器狀態(tài)劃分和狀態(tài)轉換設計,數(shù)字驅動模塊設計如圖4所示。

      圖4 數(shù)字伺服智控制流程圖

      3 結束語

      本文針對數(shù)字驅動控制系統(tǒng)的開發(fā),采用數(shù)據(jù)驅動狀態(tài)機設計模式,設計控制系統(tǒng)的軟件結構,以適應不同品牌和型號數(shù)字驅動器的功能控制。以簡化開發(fā)團隊在使用數(shù)字驅動器項目中的開發(fā)過程,并且進一步提高開發(fā)工作的效率和軟件產品質量,使軟件系統(tǒng)具有良好的穩(wěn)定性和擴充性。此數(shù)字驅動控制系統(tǒng)已在“模型軍用直升機六自由度飛行模擬器”和“中國科技館宇宙飛船模擬器”等項目的控制系統(tǒng)中得到了應用,并取得了良好的效果。

      [1] D.Stewart.A Platform with Six Degrees of Freedom.Proc.Inst.Mech.Eng[C].1965 -66,180(15):371 -386.

      [2] Peter Cad.Object- oriented patterns.Communications of the ACM[J].1992,35(9):152-159.

      猜你喜歡
      狀態(tài)機功能模塊驅動器
      藏起驅動器號確保數(shù)據(jù)安全
      電腦愛好者(2020年6期)2020-05-26 09:27:33
      基于有限狀態(tài)機的交會對接飛行任務規(guī)劃方法
      基于ASP.NET標準的采購管理系統(tǒng)研究
      軟件導刊(2016年9期)2016-11-07 21:35:42
      壓電陶瓷驅動器的遲滯特性
      輸電線路附著物測算系統(tǒng)測算功能模塊的研究
      M市石油裝備公服平臺網站主要功能模塊設計與實現(xiàn)
      石油知識(2016年2期)2016-02-28 16:20:16
      功能模塊的設計與應用研究
      SiC基和Si基永磁同步電動機驅動器的比較
      新型低電壓大變形微驅動器數(shù)值求解及仿真
      計算物理(2014年2期)2014-03-11 17:01:41
      FPGA設計中狀態(tài)機安全性研究
      黑龍江科學(2011年2期)2011-03-14 00:39:36
      汉沽区| 九龙城区| 烟台市| 黔江区| 永靖县| 沁源县| 上思县| 连平县| 淳化县| 成安县| 夏津县| 得荣县| 马龙县| 潼关县| 舟山市| 宝鸡市| 如皋市| 泰兴市| 金坛市| 江都市| 宿松县| 兰西县| 许昌县| 偃师市| 景德镇市| 乌兰县| 嵊泗县| 边坝县| 雷波县| 许昌市| 青河县| 汝南县| 二连浩特市| 肥乡县| 平顺县| 宜宾市| 安庆市| 榆林市| 富顺县| 灵宝市| 青川县|