• 
    

    
    

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

      基于Modbus協(xié)議和MATLAB GUI的二自由度云臺(tái)運(yùn)動(dòng)狀態(tài)參數(shù)監(jiān)控

      2018-11-03 06:04:06肖倩崔思柱劉豐豪楊愷迪程石
      現(xiàn)代計(jì)算機(jī) 2018年28期
      關(guān)鍵詞:下位云臺(tái)相電流

      肖倩,崔思柱,劉豐豪,楊愷迪,程石

      (長安大學(xué)工程機(jī)械學(xué)院,西安710061)

      0 引言

      二自由度云臺(tái)是一種可遠(yuǎn)程控制攝像頭水平旋轉(zhuǎn)和俯仰角度調(diào)節(jié)的電動(dòng)設(shè)備,廣泛應(yīng)用于安防、工業(yè)、軍事、無人機(jī)航拍等領(lǐng)域。云臺(tái)的穩(wěn)定運(yùn)行是保證其所搭載相機(jī)正常拍攝的基礎(chǔ)。因此,一個(gè)穩(wěn)定可靠的實(shí)時(shí)監(jiān)控系統(tǒng)就顯得尤為重要,它不僅能保證設(shè)備溫度、電壓、電流在安全范圍內(nèi),更能提高云臺(tái)的精確控制能力。如果監(jiān)測到云臺(tái)運(yùn)行異常,可以有針對性地及時(shí)處理,避免造成不必要的損失。

      本文提出了一種基于MATLAB GUI的云臺(tái)運(yùn)動(dòng)狀態(tài)監(jiān)控系統(tǒng)[1]的設(shè)計(jì)方案,該監(jiān)控系統(tǒng)通過Modbus協(xié)議將采集到的云臺(tái)運(yùn)動(dòng)狀態(tài)參數(shù)上傳至上位機(jī)實(shí)時(shí)顯示并通過界面進(jìn)行控制,保證了云臺(tái)轉(zhuǎn)速控制的快速性、穩(wěn)定性,解決了云臺(tái)控制參數(shù)難以精確測量和控制的問題,具有實(shí)際的工程意義。

      1 監(jiān)控系統(tǒng)總體設(shè)計(jì)方案

      云臺(tái)參數(shù)監(jiān)控系統(tǒng)整體結(jié)構(gòu)如圖1所示。系統(tǒng)功能主要由兩部分實(shí)現(xiàn):一部分是下位機(jī)對溫度、電流、電壓、轉(zhuǎn)速、位置等信息的采集和控制;另一部分是利用MATLAB GUI實(shí)現(xiàn)對監(jiān)控參數(shù)的控制操作、圖形顯示和數(shù)據(jù)處理功能。

      圖1 云臺(tái)監(jiān)控系統(tǒng)整體結(jié)構(gòu)圖

      1.1 系統(tǒng)下位機(jī)

      系統(tǒng)的下位機(jī)部分負(fù)責(zé)監(jiān)控?cái)?shù)據(jù)的采集工作,將位置、轉(zhuǎn)速、電流、電壓和溫度等待監(jiān)控模擬量信息采集并送入DSP的ADC模塊,將待監(jiān)控?cái)?shù)據(jù)處理后,通過串行通信實(shí)時(shí)地將數(shù)據(jù)傳送回上位機(jī)進(jìn)行處理。驅(qū)控一體云臺(tái)控制器采用TMS320F28069 DSP作為主控芯片,片內(nèi)集成12位分辨率的16通道ADC轉(zhuǎn)換通道,非常適用于多模擬量采集系統(tǒng)。

      下位機(jī)程序在CCS(Code Composer Studio)6.0集成開發(fā)環(huán)境下進(jìn)行開發(fā),通過對各功能函數(shù)的編寫,然后進(jìn)行編譯、調(diào)試、生成.out文件,并下載到DSP中。

      1.2 系統(tǒng)上位機(jī)

      系統(tǒng)的上位機(jī)是基于MATLAB GUI界面的集M控制算法文件和Modbus通訊協(xié)議模塊為一體的實(shí)時(shí)參數(shù)監(jiān)控系統(tǒng),主要負(fù)責(zé)對監(jiān)控?cái)?shù)據(jù)進(jìn)行處理和分析。通過調(diào)用MATLAB內(nèi)置的serial函數(shù),操作RS-232串口,并通過Modbus協(xié)議在云臺(tái)控制器與PC串口之間進(jìn)行實(shí)時(shí)通信,主要包括以下幾個(gè)模塊:

      (1)串口通信。與下位機(jī)之間實(shí)現(xiàn)數(shù)據(jù)交換。

      (2)GUI界面。界面設(shè)計(jì)以及對監(jiān)控參數(shù)進(jìn)行顯示并繪制動(dòng)態(tài)曲線和動(dòng)態(tài)模擬。

      (3)監(jiān)控主程序和濾波算法。主要負(fù)責(zé)在回調(diào)函數(shù)中編寫控制云臺(tái)電機(jī)啟停、轉(zhuǎn)動(dòng)角度及發(fā)送串口數(shù)據(jù)等功能的程序編寫,并通過濾波算法來消除偶然脈沖對監(jiān)控到數(shù)據(jù)的影響。

      2 串行通信實(shí)現(xiàn)

      2.1 MATLAB串口通信

      MATLAB配置了串口通信API[2],提供了對串口進(jìn)行打開、關(guān)閉,以及串口參數(shù)設(shè)置等操作的一系列函數(shù)。利用這些函數(shù)可以選擇串口號(hào)、設(shè)置串口通信參數(shù)(波特率、數(shù)據(jù)位、停止位、校驗(yàn)位等)、進(jìn)行中斷控制、流控制。在配置控制器時(shí),用戶需要選擇通信模式和串口的通訊參數(shù),保證通信設(shè)備配置相同的通信模式和串口通訊參數(shù)。

      建立函數(shù)的過程如下:

      s=serial(‘com1’);%創(chuàng)建串口對象s,串口號(hào)為COM1

      set(s,‘BaudRate’,9600,‘Parity’,‘even’,‘Stop?Bits’,1,‘DataBits’,8,‘TimerPeriod’,0.05);

      %設(shè)置串口波特率為9600;偶校驗(yàn),一位停止位,8位數(shù)據(jù)位;定時(shí)器周期為0.05s

      2.2 Modbus通信協(xié)議

      Modbus通訊協(xié)議[3]是一種主-從通訊機(jī)構(gòu),是世界上第一個(gè)用于工業(yè)現(xiàn)場的總線協(xié)議,它只定義了協(xié)議層,支持RS-232和RS-485電氣接口。常用的Modbus通訊協(xié)議有ASCII和RTU[4]兩種通信模式。一般來說,通訊數(shù)據(jù)量少且主要是文本的通訊采用ASCII模式,通訊數(shù)據(jù)量大而且是二進(jìn)制數(shù)值時(shí),多采用RTU模式,綜合考慮,本系統(tǒng)選用Modbus RTU模式作為通信協(xié)議。

      Modbus RTU模式中,數(shù)據(jù)以幀的方式進(jìn)行傳輸,通信指令以8位二進(jìn)制數(shù)的形式傳遞。當(dāng)通訊命令由發(fā)送設(shè)備(主機(jī))發(fā)送至接收設(shè)備(從機(jī))時(shí),符合相應(yīng)地址碼的從機(jī)接收通訊命令,并根據(jù)功能碼及相關(guān)要求讀取信息,如果CRC校驗(yàn)無誤,則執(zhí)行相應(yīng)的任務(wù),然后把執(zhí)行結(jié)果(數(shù)據(jù))返送給主機(jī)。返回的信息中包括地址碼、功能碼、執(zhí)行后的數(shù)據(jù)以及CRC校驗(yàn)碼。如果CRC校驗(yàn)出錯(cuò)就不返回任何信息。

      CRC-16校驗(yàn)碼多項(xiàng)式為X16+X15+X2+1,具體步驟如下:

      unsigned int CRC16(unsigned char*Msg,unsigned int DataLen)%*Msg為待校驗(yàn)數(shù)據(jù)首地址,DataLen為待校驗(yàn)數(shù)據(jù)長度

      {

      unsigned char uchCRCHi=0xFF;

      %高CRC字節(jié)初始化

      unsigned char uchCRCLo=0xFF;

      %低CRC字節(jié)初始化

      unsigned int i; %CRC循環(huán)中的索引 while(Dat?

      aLen--) %傳輸消息緩存區(qū)

      {

      i=uchCRCHi*Msg++;%計(jì)算CRC

      uchCRCHi=uchCRCLo^auCRCHi[i];

      uchCRCLo=auCRCLo[i];

      }

      return(uchCRCHi<< 8|uchCRCLo);

      }

      3 MATLAB GUI設(shè)計(jì)

      3.1 GUI界面設(shè)計(jì)

      監(jiān)控系統(tǒng)的界面設(shè)計(jì)應(yīng)遵循布局合理、清楚直觀、方便用戶操作等原則,具體的界面設(shè)計(jì)如圖2所示。系統(tǒng)的GUI界面[6]主要由監(jiān)控?cái)?shù)據(jù)顯示模塊、參數(shù)設(shè)置模塊、實(shí)時(shí)位置動(dòng)態(tài)模擬模塊、故障診斷模塊、實(shí)時(shí)曲線繪制模塊等組成。

      (1)監(jiān)控?cái)?shù)據(jù)顯示與參數(shù)設(shè)置模塊。數(shù)據(jù)顯示面板主要將上位機(jī)采集到的溫度、電壓、電流、轉(zhuǎn)速、位置等信息顯示在GUI界面中,方便使用者進(jìn)行觀察;參數(shù)設(shè)置面板主要包含串口的設(shè)置、電機(jī)啟停開關(guān)和轉(zhuǎn)速的設(shè)定。

      (2)實(shí)時(shí)位置動(dòng)態(tài)模擬及故障診斷模塊。由于云臺(tái)監(jiān)控系統(tǒng)需要得知云臺(tái)轉(zhuǎn)動(dòng)的實(shí)時(shí)位置,因此,用兩個(gè)表盤將云臺(tái)水平轉(zhuǎn)向和俯仰轉(zhuǎn)向的實(shí)時(shí)運(yùn)動(dòng)位置以角度的形式動(dòng)態(tài)模擬出來。在系統(tǒng)正常運(yùn)行時(shí),故障診斷模塊的error顯示“正常運(yùn)行”,當(dāng)運(yùn)行時(shí)錯(cuò)誤發(fā)生次數(shù)達(dá)到一定值后,會(huì)在error區(qū)顯示哪個(gè)監(jiān)控參數(shù)出現(xiàn)錯(cuò)誤,進(jìn)行系統(tǒng)故障自診斷。

      (3)實(shí)時(shí)曲線繪制模塊。曲線繪制模塊主要負(fù)責(zé)對云臺(tái)的水平實(shí)時(shí)轉(zhuǎn)速、俯仰實(shí)時(shí)轉(zhuǎn)速、水平電機(jī)相電流、俯仰電機(jī)相電流進(jìn)行實(shí)時(shí)監(jiān)測。通過在MATLAB GUI中添加axes控件通過曲線繪制來顯示水平和俯仰方向的實(shí)時(shí)轉(zhuǎn)速和實(shí)時(shí)電流的動(dòng)態(tài)變化。在axes()函數(shù)中設(shè)置當(dāng)前曲線繪制坐標(biāo),再調(diào)用set()函數(shù)完成曲線的繪制。

      圖2 二自由度云臺(tái)參數(shù)監(jiān)測系統(tǒng)界面設(shè)計(jì)

      3.2 參數(shù)監(jiān)控系統(tǒng)程序設(shè)計(jì)

      由該監(jiān)控系統(tǒng)的設(shè)計(jì)要求,需要實(shí)時(shí)監(jiān)控云臺(tái)的水平實(shí)時(shí)轉(zhuǎn)速,俯仰實(shí)時(shí)轉(zhuǎn)速,水平實(shí)時(shí)位置,俯仰實(shí)時(shí)位置,母線電壓,電路參考電壓,水平電機(jī)v相電流,水平電機(jī)u相電流,俯仰電機(jī)v相電流,俯仰電機(jī)u相電流,溫度等數(shù)據(jù)。

      本系統(tǒng)采用的是基于MATLAB GUI的平臺(tái)上編寫的上位機(jī)程序,其中有很多庫函數(shù)可以直接調(diào)用,因此編寫很方便、快捷。只需要在GUI面板中設(shè)計(jì)好界面,再在每個(gè)模塊中編寫相應(yīng)功能的回調(diào)函數(shù)即可。

      3.3 濾波算法

      為了濾掉信號(hào)經(jīng)過模擬電路時(shí)的那些偶然的脈沖波或者周期性波[8],減小采集到信號(hào)的誤差,針對該監(jiān)控系統(tǒng)采用限幅濾波法,該濾波方法能有效克服因偶然因素引起的脈沖干擾。濾波程序如下:

      /*A值可根據(jù)實(shí)際情況調(diào)整,Value為有效值,NewValue為當(dāng)前采樣值,濾波程序返回有效的實(shí)際值*/

      #define FILTER.

      int Filter()

      {

      int NewValue;

      NewValue=Get_AD();

      if(((NewValue-Value)> FILTER_A)||((Value-NewVal?ue)>FILTER_A))

      return Value;

      else

      return NewValue;

      }

      圖3 監(jiān)控程序流程圖

      4 監(jiān)控系統(tǒng)測試

      4.1 通訊測試及結(jié)果

      圖4 串口測試數(shù)據(jù)傳輸流程圖

      為了測試監(jiān)控系統(tǒng)的實(shí)時(shí)通信效果,利用MAT?LAB GUI制作了一個(gè)簡單的通信測試[5]界面,如圖5所示。監(jiān)控系統(tǒng)的串口測試流程圖如圖4所示。經(jīng)測試,該系統(tǒng)的上位機(jī)可以和下位機(jī)進(jìn)行實(shí)時(shí)通信。當(dāng)通過監(jiān)測系統(tǒng)給下位機(jī)發(fā)送讀取水平轉(zhuǎn)速指令(01 03 00 00 00 01 84 0A)后,下位機(jī)返回?cái)?shù)據(jù)(01 03 02 00 C8 B9 D2),其中00 C8為返回?cái)?shù)據(jù),轉(zhuǎn)換為二進(jìn)制表示水平轉(zhuǎn)速為200rpm,通過測速儀測得水平電機(jī)的轉(zhuǎn)速為197rpm,結(jié)果表明監(jiān)控系統(tǒng)的通信正常。

      4.2 監(jiān)控功能測試及結(jié)果

      將上位機(jī)和下位機(jī)連接完畢,進(jìn)入測試程序,打開GUI監(jiān)控界面并打開串口,點(diǎn)擊開始監(jiān)控按鈕,監(jiān)測系統(tǒng)的實(shí)驗(yàn)效果如圖6所示。

      圖5 串口通信GUI測試界面

      圖6 監(jiān)控功能測試界面

      結(jié)果表明,監(jiān)控系統(tǒng)可以將采集到的監(jiān)控?cái)?shù)據(jù)實(shí)時(shí)顯示在面板上,且實(shí)時(shí)位置動(dòng)態(tài)模擬面板和實(shí)時(shí)曲線繪制面板均正常顯示,監(jiān)控系統(tǒng)各模塊工作正常。此測試為云臺(tái)在低速運(yùn)行時(shí)的數(shù)據(jù)采集,實(shí)驗(yàn)基本上達(dá)到了所要實(shí)現(xiàn)的效果,監(jiān)測結(jié)果精確。

      5 結(jié)語

      本文基于MATLAB GUI的串口通信方法,以Mod?bus為基礎(chǔ)通信協(xié)議,設(shè)計(jì)了二自由度云臺(tái)的參數(shù)監(jiān)測系統(tǒng)。選用MATLAB GUI作為界面開發(fā)的工具是合適的,雖然其界面開發(fā)和數(shù)據(jù)采集的功能相對較簡單。但是,在一般的界面開發(fā)和普通功能的串口通信開發(fā)中,GUI的控制算法寫在M文件中,便于使用人員進(jìn)行修改,且GUI組件使用方便快捷,編程簡單易懂,很方便新手學(xué)習(xí)。實(shí)驗(yàn)結(jié)果證明了該GUI監(jiān)控系統(tǒng)界面豐富、功能完善,且運(yùn)行穩(wěn)定可靠。

      猜你喜歡
      下位云臺(tái)相電流
      單相三軸法與單軸三相法的等價(jià)性
      云上之家——萬科·郡西云臺(tái)
      龍門山·臥云臺(tái)
      地鐵牽引逆變器輸出電流傳感器測試策略優(yōu)化分析
      輪轂電機(jī)控制器相電流重構(gòu)方法
      電子與封裝(2021年7期)2021-07-29 10:58:48
      幫我買云臺(tái)
      基于STM32的無線FPV云臺(tái)設(shè)計(jì)
      電子制作(2019年23期)2019-02-23 13:21:16
      發(fā)射機(jī)房監(jiān)控系統(tǒng)之下位機(jī)
      景洪電廠監(jiān)控系統(tǒng)下位機(jī)數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
      圍觀黨“下位”,吐槽帝“登基”
      集安市| 中西区| 个旧市| 饶河县| 墨竹工卡县| 元江| 宁德市| 东光县| 邵阳县| 河东区| 巴彦县| 临江市| 九龙县| 宁河县| 满城县| 迭部县| 巴东县| 志丹县| 同江市| 博客| 青浦区| 大港区| 仙游县| 阿城市| 北京市| 随州市| 唐海县| 临泉县| 苗栗县| 都昌县| 大洼县| 芮城县| 蕉岭县| 岱山县| 会昌县| 成武县| 边坝县| 龙南县| 临泽县| 天气| 平江县|