基於伺服驅動單元的數據處理方法
2023-10-04 01:25:54 3
基於伺服驅動單元的數據處理方法
【專利摘要】本發明涉及基於伺服驅動單元的數據處理方法,包括以下步驟伺服驅動單元內的DSP晶片接收來自主機端的採樣信息並進行初始化;DSP晶片內的虛擬A/D模塊根據DSP晶片內部定時器產生的周期性中斷對輸入的伺服電機反饋數據和控制輸入數據進行採樣,並經FIFO發送至主機端;主機端對接收到的數據幀進行處理並顯示伺服電機運行的時域、頻域波形和控制調節參數。本發明使伺服驅動單元的調試更加方便、靈活、高效;具有採集數據準確、數據精度高、直接獲取算法數據、嵌入伺服驅動單元內部等優點;具有友好的圖形化人機互動界面、實時顯示伺服驅動單元內部數據的優點,具有可放大圖像的任意細節部分而不受零點坐標軸偏移量限制的優勢。
【專利說明】基於伺服驅動單元的數據處理方法
【技術領域】
[0001]本發明涉及一種交流伺服驅動單元,特別涉及一種能夠顯示伺服驅動單元內部數據波形的數據處理方法。
【背景技術】
[0002]高性能伺服驅動單元對數控工具機具有重要的意義,它直接影響數控工具機的加工精度和加工速度。要使伺服驅動單元的各項性能達到最優,必須給伺服驅動單元設置合適的控制參數。由於伺服驅動單元中傳輸的是模擬信號或脈衝信號,使用示波器進行參數設置和調整時,只能使用示波器上旋轉按鈕進行微調,因此不能快速、準確的對伺服驅動單元的參數值進行設定和調整。示波器不僅使用複雜,需要有會使用示波器的專業數控技術人員,而且示波器存在以下缺點,首先,由於CRT的餘輝時間很短,因而難於顯示頻率很低的電信號;其次,因為示波管上的掃描的點跡亮度和掃描速度成反比,所以很難顯示具有快速上升、下降時間的低重複速率的信號;再次示波器體積龐大,價格昂貴,基於模擬量和脈衝接口方式下伺服驅動單元傳輸數據量少、單向通信的特點,決定了伺服驅動單元中不能用一個示波器同時對多個伺服驅動單元進行調試,且示波器又不具有數據存儲的功能,這些無疑增加了用戶的成本。
[0003]綜上,傳統基於模擬量的伺服驅動單元中示波器的調試方法不僅效率低、不靈活、操作難度大,而且不利於伺服驅動單元的現場調試和測試,不能滿足數控系統發展的需要。
【發明內容】
[0004]針對現有技術存在的缺陷及不足,本發明提供一種能夠直接顯示伺服驅動單元內部數據的波形方法,以方便開發人員對伺服驅動單元的內部算法的調整和電路的優化、測試人員進行產品性能測試、以及方便安裝調試人員進行產品的工業現場調試。
[0005]本發明為實現上述目的所採用的技術方案是:基於伺服驅動單元的數據處理方法,包括以下步驟:
[0006]伺服驅動單元內的DSP晶片接收來自主機端的採樣信息並進行初始化;DSP晶片內的虛擬A/D模塊根據DSP晶片內部定時器產生的周期性中斷對輸入的伺服電機反饋數據和控制輸入數據進行採樣,並經FIFO發送至主機端;主機端對接收到的數據幀進行處理並顯示控制調節參數、實時顯示伺服電機運行的時域、頻域波形。
[0007]所述採樣信息包括採樣頻率、觸發方式、觸發限值。
[0008]所述初始化為設置採樣頻率、觸發方式、觸發限值。
[0009]所述虛擬A/D模塊默認狀態為Ready態,能夠在採樣過程開始前切換為Busy態,在取得採樣數據後切換至Final態,在保存採樣數據後恢復到Ready態。
[0010]所述虛擬A/D模塊根據DSP晶片內部定時器產生的周期性中斷對輸入數據進行採樣包括以下步驟:
[0011]判斷採樣標誌位是否需要採樣;判斷採樣標誌位是否需要採樣;如果為否,則出中斷;如果需要採樣,虛擬A/D模塊將A/D狀態切換為Busy態,採入一個float型數據?』然後將採樣狀態切換為Final態;
[0012]判斷採樣信息中的觸發方式;
[0013]如果為上升沿觸發方式,判斷觸發方式標誌位是否為I ;若為1,則將該數據存入FIFO ;如果不為1,判斷本次採樣數據的數值是否大於上一次採樣數據;如果為不大於,則出中斷,如果大於,則判斷本次採樣數據是否大於觸發限值;若不大於,則出中斷,如果大於觸發限值,置觸發方式標誌位為1,將該數據存入FIFO ;
[0014]如果為下降沿觸發方式,判斷觸發方式標誌位是否為I ;若為1,則將該數據存入FIFO ;如果不為1,判斷本次採樣數據的數值是否小於上一次採樣數據;如果不小於,則出中斷,如果小於,則判斷本次採樣數據是否小於觸發限值;若不小於,則出中斷,如果小於觸發限值,置觸發方式標誌位為1,將該數據存入FIFO ;
[0015]虛擬A/D模塊將狀態恢復為Ready態;出中斷。
[0016]所述經FIFO發送至主機端包括以下步驟:
[0017]I)標記中斷採樣標誌位;
[0018]2)判斷採樣信息中的觸發方式是否為正常模式;
[0019]如果是,則執行3)判斷FIFO是否達到預設容量;
[0020]如果未達到,則返回步驟3);如果達到,則FIFO內所有數據發送至主機端,清空FIFO;判斷是否接收到主機端發來的停止幀,如果為否,則返回步驟3),如果收到,則清除中斷採樣標誌位,結束;
[0021]如果為否,則執行4)判斷FIFO是否已滿;
[0022]如果為否,則返回步驟4);如果已滿,則則FIFO內所有數據發送至主機端,清除中斷採樣標誌位,清空FIF0,結束。
[0023]所述主機端對接收到的數據幀進行處理並顯示伺服電機運行的時域、頻域波形和控制調節參數包括以下步驟:
[0024]主機端將接收到來自DSP晶片的數據幀通過調用函數顯示伺服電機的控制輸入、運行狀態數據和波形;具體包括:時域波形;頻域波形;峰值時間;超調量;穩態誤差。
[0025]所述時域波形通過以下方法顯示:調用dataToPixel (float data, int time, refint x, ref int y)計算得到坐標點,其中data為某一個數據的幅值,time為該數據採樣的時刻,X為計算出的橫坐標,y為計算出的縱坐標;並將所得坐標點保存,使用System.Drawing.Graphics.Drawlines (pen, points)繪製圖像並顯示,其中pen對象為繪製圖像所使用的畫筆,points為圖像的所有採樣點坐標集合。
[0026]所述頻域波形通過以下方法顯示:將時域數據轉換為頻域數據,然後調用freqToPixel (float data, int freq, ref int x, ref int y)計算得至丨J坐標點,其中 data為數據的幅值,freq為頻率,x為計算出的橫坐標,y為計算出的縱坐標,,並將所得坐標點保存,使用 System.Drawing.Graphics.Drawlines (pen, points)繪製圖像並顯不,其中 pen 對象為繪製圖像所使用的畫筆,points為圖像的所有採樣點坐標集合。
[0027]所述超調量、穩態誤差、峰值時間則通過調用calculatelnfo (float [] data, reffloat det, float dth, ref int ts)函數得出超調量、穩態誤差值、峰值時間,其中data為存儲所有數據的數組,det為超調量,dth為穩態誤差值,ts為峰值時間,通過調用函數showlnfo (float det, float dth, int ts)顯不,其中 det 為超調量,dth 為穩態誤差值,ts為峰值時間。
[0028]本發明具有以下有益效果及優點:
[0029]1.本發明在不增加額外設備成本的情況下,實現了一種伺服驅動單元調試的新手段,使伺服驅動單元的調試更加方便、靈活、高效。
[0030]2.本發明相較於常規示波器調試手段具有採集數據準確、數據精度高、直接獲取算法數據、嵌入伺服驅動單元內部、現場調試無需攜帶沉重的示波器設備等優點。
[0031]3.本發明的數據傳輸採用高速USB晶片TOIUSBD12,可以滿足大數據量,高實時性的要求,並且具有即插即用使用方便、生產成本低、研發資料全等優點,解決了傳統數據傳輸使用計算機串口傳輸速度慢、數據帶寬窄、抗幹擾性弱等問題。
[0032]4.本發明的PC端的控制與數據分析示波器軟體具有友好的圖形化人機互動界面、實時顯示伺服驅動單元內部數據的優點,相較於傳統示波器調試手段還具有可放大圖像的任意細節部分而不受零點坐標軸偏移量限制的優勢,且操作靈活、使用方便。
【專利附圖】
【附圖說明】
[0033]圖1為本發明的伺服驅動單元嵌入式示波器的體系結構示意圖;
[0034]圖2為本發明伺服驅動單元嵌入式示波器的原理圖;
[0035]圖3為本發明伺服驅動單元嵌入式示波器中實時數據採樣系統的原理圖;
[0036]圖4為本發明伺服驅動單元嵌入式示波器中實時數據採樣系統程序流程圖;
[0037]圖5為本發明伺服驅動單元嵌入式示波器中實時採樣系統中斷服務程序流程圖;
[0038]圖6為本發明伺服驅動單元嵌入式示波器中高速USB實時數據傳輸系統結構示意圖;
[0039]圖1為本發明伺服驅動單元嵌入式示波器中PC端控制與數據分析系統工作流程圖。
【具體實施方式】
[0040]下面結合附圖及實施例對本發明做進一步的詳細說明。
[0041]本發明的技術方案是:直接在伺服驅動單元內部DSP晶片TMS320F28335上,虛擬一個A/D模塊,該虛擬模塊由固定頻率的周期性中斷推動,在中斷的作用下採集要觀測的數據,該數據可以是實際的物理量,例如電機的A相電流,也可以是伺服驅動單元在該時刻下某一電機控制算法計算所得出的結果。然後將採集到的數據存儲在FIFO隊列中,並通過高速USB接口晶片TOIUSBD12將FIFO中的數據發送至PC端,最後由PC端對相關數據重新構建為時域波形圖像、頻譜圖,計算數據的峰值時間、超調量、穩態誤差,並顯示在PC端軟體示波器界面上。
[0042]本發明伺服驅動單元嵌入式示波器(以下簡稱示波器)的整體結構如圖1所示,本發明的示波器由三個子系統組成:
[0043]I)基於虛擬A/D模塊的採樣系統(以下簡稱採樣系統),功能是收集和存儲監視源(示波器的被測波形數據的來源,也是採樣系統的採樣目標)在一段時間內的採樣數據,並通過高速USB數據傳輸系統將數據發送至PC機;[0044]2)高速USB數據傳輸系統,實現了伺服驅動單元與PC機之間的通信,並完成它們之間的數據交換;
[0045]3)控制與數據分析示波器軟體系統(以下簡稱示波器軟體),對採樣系統進行監視源選擇、採樣頻率等功能性設置,並且接收到採樣系統發送過來的數據後,可繪製出該數據的時域波形圖、幅頻特性曲線、計算出調節時間等功能。
[0046]本發明伺服驅動單元嵌入式示波器工作原理如圖2所示,目標端為伺服驅動單元,主機端為PC機。目標端是由電源裝置、通用DSP控制晶片和USB接口晶片等組成。伺服控制單元控制伺服電機的運行,主要是通過控制三相交流伺服電機的電壓幅值和頻率並接收伺服電機背部的光電式編碼器反饋回來的速度和位置信號來實現的。伺服控制單元中DSP控制晶片主要實現對數據信號的採集並對其進行處理;USB接口晶片的主要功能是按照USB通信協議規範實現主機端與目標端的數據傳輸。
[0047]1.採樣系統的實施過程
[0048]採樣系統的原理圖如圖3所示。採樣系統為多種觸發方式實時採樣系統,系統實時既有採樣數據是實時之含義,又有觸發方式為正常方式時,數據的時域、頻域波形是實時顯示之涵義。包括:
[0049]I)虛擬A/D模塊,由伺服驅動器內部程序虛擬而出,用於完成對觀測數據的採樣;
[0050]2)監視源模塊,在程序中以結構體變量的形式表示具體某一被觀測量,該觀測量可以為實際物理量,也可以是某一電機算法的結果;
[0051 ] 3)周期性中斷產生模塊,用於產生推動虛擬A/D模塊採樣的中斷,該中斷時間間隔穩定可調,保證採樣數據的實時性;
[0052]4)數據存儲與轉發模塊,用於將採集到的數據存儲在FIFO隊列中並將其轉發至下一系統;
[0053]5)示波器設置模塊,用於完成對採樣頻率及觸發方式的設置。
[0054]採樣系統具體工作過程如圖4所示。
[0055]採樣系統在開始採樣前首先接收PC端示波器軟體系統發送的設置指令幀,進行初始化示波器設置,其幀格式如下:幀頭:3.5個字節的傳輸時間;從機地址:0x01 ;功能碼:0x64 ;子功能碼0x12 ;採樣周期(I字節);觸發方式:0代表正常方式,I代表上升沿觸發,2代表下降沿觸發;通道數目(I字節);保留位(4位元組);觸發限值(4位元組);觸發點位置:(4位元組);CRC校驗碼(2位元組);幀尾:3.5個字節傳輸時間。
[0056]採樣系統對此幀進行解析後,提取採樣周期信息,並按照提取的採樣周期設置周期性中斷產生模塊的中斷周期,並將中斷採樣標誌位置1,表示周期性中斷來臨後,需要在該中斷內採樣監視源數據。
[0057]若觸發方式為正常模式,則一直判斷FIFO內的數據容量是否達到了預設的容量,直到達到預設容量值為止。然後將數據通過高速USB數據傳輸系統轉發至PC端,判斷是否收到了 PC端停止採樣幀,若未收到,則等待FIFO內的數據容量達到預設值,繼續如上循環操作,由此可得到實時採樣的數據,可供PC端示波器軟體實時顯示波形使用。若收到停止幀,則清除中斷採樣標誌位,程序結束。
[0058]若觸發方式為上升沿或下降沿觸發方式,則一直判斷FIFO是否已滿,直到FIFO內的數據確實已滿,才將FIFO內的數據通過高速USB數據傳輸系統發送至主機端,此上升沿或下降沿觸發方式的採樣數據是實時的,但是數據的時域和頻域波形並非實時,主要原因為該功能用於抓取一小段突變的上升沿和下降沿附近的數據波形,而非連續觀測較長時間的數據波形。
[0059]虛擬A/D模塊的主要工作過程在周期性中斷服務程序中,如圖5所示。
[0060]進入中斷首先判斷採樣標誌位,如果標誌位為0(不需採樣之意),則出中斷。如果為I需要採樣,則分為以下三種情況:
[0061]當觸發方式為正常時,PC端下達開始採樣指令後,虛擬A/D模塊由Ready態切換至Busy態開始採樣,然後判斷監視源是否為實際物理量(例如電機的A相電流),若是物理量,則啟動物理A/D晶片,得到該物理量的採樣值;否則啟動監視源內部算法並計算出結果,切換虛擬A/D模塊的採樣狀態為Final態,最後將物理A/D晶片的值或算法計算結果存A FIFO,採樣結束,虛擬A/D模塊由Final態還原至Ready態。
[0062]當觸發方式為上升沿觸發,則在正常觸發方式的工作過程中加入如下判斷:
[0063]I)該數值是否大於上一次採樣的數值,此判斷可確定是否抓取到了上升沿,如果大於,則認為該沿是上升沿,否則保存本次採樣數值到臨時變量,出中斷;
[0064]2)該數值是否達到了觸發限值。若未達到限值,則保存本次採樣數值到臨時變量,出中斷。若達到了觸發限值,則將已抓取該沿標誌位置I,並將該值保存至FIFO,虛擬A/D模塊由Final態切換為Ready態。
[0065]觸發方式為下降沿觸發與上升沿觸發類似,不再贅述。
[0066]監視源模塊在程序中由結構體實現,具體成員變量包括:
[0067]I)監視源類別,char型,0代表一種算法,I代表實際物理量;
[0068]2)計算監視源數值函數指針,當虛擬A/D模塊對該監視源採樣時,會通過該指針調用算法或啟動物理A/D晶片;
[0069]3)監視源數據結果,float型,示波器的觀測數值保存在該變量中。
[0070]監視源模塊具體實施過程如下,當虛擬A/D器件要對監視源採樣時,虛擬A/D器件首先獲取監視源結構體變量中監視源類別,然後通過計算監視源數值函數指針調用計算監視源數值函數,函數的返回值保存在監視源數據結果中,虛擬A/D模塊即獲得該採樣數值。
[0071]2.高速USB數據傳輸系統的實施過程
[0072]本發明伺服驅動單元嵌入式示波器的目標端包含高速USB接口晶片,主機端PC機帶有USB接口,其特徵在於:所述高速USB數據傳輸系統的功能是按照USB通信協議規範實現主機端與目標端的數據傳輸,目標端的DSP控制晶片對採集到的數據進行相應的運算處理後,傳送到目標端的USB接口晶片,USB接口晶片將傳輸數據進行轉發,經過USB電纜線到達PC機的USB埠,應用PC端示波器軟體程序讀取USB接口的數據,以實現數據的分析和圖形顯示。
[0073]本發明伺服驅動單元嵌入式示波器的主機端為帶有USB接口的通用PC機,採用PC機上C#軟體語言調試工具可以對伺服驅動單元進行現場測試和調試。
[0074]系統的工作過程如下:伺服電機轉動過程中產生的模擬信號經檢測裝置反饋到目標端,經目標端的DSP控制晶片轉換成數位訊號並進行相應的處理運算後,傳送到目標端的USB接口晶片,USB接口晶片按照USB通信協議規範將傳輸數據進行轉發,經過USB電纜線到達PC機的USB埠,在PC機端採用C#軟體語言編寫示波器界面程序讀取USB接口的數據,並實現數據的分析和圖形顯示。
[0075]下面詳細介紹目標端所採用的元器件及其性能,以及為實現目標端和主機端的通信需要完成的設計。
[0076]目標端的任務是將模擬信號轉換為數位訊號,並按照USB通信協議規範將數據傳輸到主機端。目標端在硬體上採用了電源裝置、高速的DSP數位訊號處理晶片、高速的USB總線。
[0077]其中DSP晶片採用的型號為TMS320F28335,USB總線接口晶片的型號為PDIUSBD12 (以下簡稱 D12)。
[0078]固件程序設計主要是進行USB與DSP之間數據交換的固件程序設計,其目的是要實現USB設備枚舉、DSP與USB設備的數據交換以及USB設備端的數據處理與控制工作,如圖6所示。
[0079](I) DSP與D12的數據交換
[0080]DSP與D12之間的數據交換是通過事件標誌和緩衝區實現的。由於DSP要進行大量的設備控制和數據處理等任務,因此固件程序設計成前後臺模式分別實現。
[0081]前臺主要建立了 3個任務,TaskIdle為空閒任務,TaskSetup為控制傳輸處理任務,TaskStart為DSP寫入或讀取USB埠任務,這個任務建立之後一直運行,本文中它主要是讀取USB埠 I數據緩衝區(此數據緩衝區中為輸入伺服驅動單元的頻率值),然後計算出頻率的正弦值,並寫入USB埠緩衝區。
[0082]後臺為ISR(中斷服務程序),根據中斷寄存器值,轉向相應的中斷服務程序。當中斷寄存器值與端點I或端點2的輸入地址值相與為真時,進行USB_ReadISR中斷處理,即在USB端點緩衝區數據寫滿時,後臺ISR負責將數據衝USB端點緩衝區移到DSP內存緩衝區,並清空USB端點緩衝區,以便下一次讀數據。當中斷寄存器值與端點I或端點2的輸出地址值相與為真時,進行USB_WriteISR中斷處理,即在USB端點緩衝區數據為空時,後臺ISR負責將DSP內存緩衝區數據移到USB端點緩衝區。
[0083](2) USB端的數據處理與控制工作
[0084]USB端的數據處理主要是對D12硬體設備埠進行讀取和寫入,D12有兩個寫埠,I個讀埠。主要函數有以下三個:
[0085]void outportc (INT8U Data);//寫入數據
[0086]void outportd (INT8U Data);//寫入數據
[0087]INTU inportd(void) ;//發送數據
[0088]3.PC端示波器軟體系統
[0089]PC端示波器軟體採用C#語言進行編寫,主要包括數據接收與發送模塊、示波器設置模塊、示波器波形顯示模塊、數據處理與分析模塊,各個模塊的具體功能將在後面敘述。
[0090]示波器軟體流程如圖7所示。首先用戶通過滑鼠點擊主界面上的示波器設置控制項或填寫控制項內空白的方式確定示波器的採樣頻率、觸發方式、觸發限值,然後用戶點擊開始按鈕,示波器將設置信息封裝整理為數據幀,通過高速USB數據傳輸系統發送至伺服驅動單元內,由伺服驅動單元中的採樣系統接收,並改變採樣系統的採樣頻率、觸發方式、觸發限值設置。
[0091]採樣系統開始採樣工作並將採樣說得數據作為回復幀告知示波器軟體,最後示波器軟體將數據幀重構為數據時域波形圖像和頻域波形圖像,具體重構過程在示波器波形顯示模塊中敘述,並計算和顯示峰值時間、超調量、穩態誤差。
[0092]下面具體介紹各個模塊的功能:
[0093]1)數據接收與發送模塊
[0094]本示波器軟體使用C#語言封裝了一個USB_Port類來對USB埠進行讀寫訪問。該類中的成員函數如下:
[0095]USB_Port.1nit ;// 為查找並初始化 USB 埠
[0096]USB_Port.Read (byte [] send, int length, int offset) ;// 向 USB 埠發送數據
[0097]USB_Port.Write (byte [] receive, int length, int offset) ;//讀取 USB 埠接收的數據
[0098]USB_Port.Close ;關閉USB埠,USB埠讀寫完成後必須關閉,否則將無法再次打開。
[0099]數據接收完成和發送之前對數據解析和校驗的過程如下。
[0100]若數據為接收到的數據,則首先按照下述通信幀格式進行解析。幀頭:3.5個字節的傳輸時間;從機地址=0x0l ;功能碼:0x64 ;子功能碼0x16 ;通道號(1位元組);數據長度(4位元組);數據1(4位元組);數據2 (4位元組);……數據N (4位元組);CRC校驗碼(2位元組);幀尾:3.5個字節傳輸時間。提取接收到的最後2個字節內容作為CRC循環冗餘校驗的校驗碼。
[0101]若數據為發送的數據,則按照如下方式封裝數據包。幀頭:3.5個字節的傳輸時間;從機地址=0x0l ;功能碼:0x64;子功能碼0x12 ;採樣周期(1位元組);觸發方式:0代表正常方式,I代表上升沿觸發,2代表下降沿觸發;通道數目(1位元組);保留位(4位元組);觸發限值(4位元組);觸發點位置:(4位元組);CRC校驗碼(2位元組);幀尾:3.5個字節傳輸時間。按照上述校驗方法計算發送數據的校驗碼,寫入發送字節的最後2位,再調用USB_Port.WriteO重載將數據發送出去。
[0102]2)不波器設置模塊由.NET Framework中的System.Windows.Forms命名空間中的控制項組成,其中示波器通道數目、採樣頻率和監視源由界面上的ComboBox控制項給出相應顯示,觸發方式由3個RadioButton控制項進行顯示,觸發限值由NumbericUpDown控制項顯示,用戶進行選擇後,單擊發送按鈕,程序收集控制項內的信息,並將信息組成如上第1條敘述的通信幀格式,並使用上述數據接收與發送模塊中的USB_Port.Write 重載將數據幀發送出去。
[0103]3)不波器波形顯不模塊由System.Windows.Forms中的PictureBox控制項實現。首先將PictureBox的背景色設置為黑色,重寫PictureBox裡的Paint方法,實例化一個Pen penGard對象,選用白色作為penGard的顏色,並設置其DashStyle屬性為DashStyle.Dot,用penGard對象繪製出示波器的網狀參考線,同樣實例化出其他藍、紅等不同色彩Pen用於繪製波形。調用 dataToPixel (float data, int time, ref int x, ref int y)計算得到接收到的數據在PictureBox中的坐標點即完成數據到坐標點的重構過程,其中data為某一個數據的幅值,time為該數據採樣的時刻,X為計算出的橫坐標,y為計算出的縱坐標,並將所得坐標點保存在List〈Point>points對象中,使用System.Drawing.Graphics.Drawlines (pen, points)繪製在PictureBox上,其中pen對象為繪製圖像所使用的畫筆,points為圖像的所有採樣點坐標集合,即完成了圖像的顯示。
[0104]4)數據處理與分析模塊由顯示幅頻特性曲線按鈕、計算超調量按鈕、穩態誤差按鈕、調節時間按鈕、峰值時間按鈕組成。幅頻特性曲線顯示功能的實現通過調用calculateFrequency (float [] data, int time, ref float [] tarData, ref int freq)將接收到的時域數據轉換為頻域數據,其中data為時域數據,time為該數據採樣的時刻,tarData為轉換後頻域數據,freq為頻率,然後調用freqToPixel (float data, int freq, ref intx, ref int y)計算得到坐標點,其中data為數據的幅值,freq為頻率,x為計算出的橫坐標,y 為計算出的縱坐標,並使用 System.Drawing.Graphics.Drawlines (pen, points)將該頻域圖像繪製在PictureBox上,其中pen對象為繪製圖像所使用的畫筆,points為圖像的所有採樣點坐標集合。超調量、穩態誤差、峰值時間則調用calculatelnfo (float []data, ref float det, float dth, ref int ts)函數,其中 det 為超調量,dth 為穩態誤差值,ts為峰值時間,計算出相關數據,在窗口中的label控制項中顯示。
【權利要求】
1.基於伺服驅動單元的數據處理方法,其特徵在於包括以下步驟: 伺服驅動單元內的DSP晶片接收來自主機端的採樣信息並進行初始化;DSP晶片內的虛擬A/D模塊根據DSP晶片內部定時器產生的周期性中斷對輸入的伺服電機反饋數據和控制輸入數據進行採樣,並經FIFO發送至主機端;主機端對接收到的數據幀進行處理並顯示控制調節參數,以及實時顯示伺服電機運行的時域、頻域波形。
2.根據權利要求1所述的基於伺服驅動單元的數據處理方法,其特徵在於:所述採樣信息包括採樣頻率、觸發方式、觸發限值。
3.根據權利要求1所述的基於伺服驅動單元的數據處理方法,其特徵在於:所述初始化為設置採樣頻率、觸發方式、觸發限值。
4.根據權利要求1所述的基於伺服驅動單元的數據處理方法,其特徵在於:所述虛擬A/D模塊默認狀態為Ready態,能夠在採樣過程開始前切換為Busy態,在取得採樣數據後切換至Final態,在保存採樣數據後恢復到Ready態。
5.根據權利要求1所述的基於伺服驅動單元的數據處理方法,其特徵在於:所述虛擬A/D模塊根據DSP晶片內部定時器產生的周期性中斷對輸入數據進行採樣包括以下步驟: 判斷採樣標誌位是否需要採樣;判斷採樣標誌位是否需要採樣;如果為否,則出中斷;如果需要採樣,虛擬A/D模塊將A/D狀態切換為Busy態,採入一個float型數據;然後將採樣狀態切換為Final態; 判斷採樣信息中的觸發方式; 如果為上升沿觸發方式,判斷觸發方式標誌位是否為I ;若為1,則將該數據存入FIFO ;如果不為1,判斷本次採樣數據的數值是否大於上一次採樣數據;如果為不大於,則出中斷,如果大於,則判斷本次採樣數據是否大於觸發限值;若不大於,則出中斷,如果大於觸發限值,置觸發方式標誌位為I,將該數據存入FIFO ; 如果為下降沿觸發方式,判斷觸發方式標誌位是否為I ?』若為1,則將該數據存入FIFO ;如果不為1,判斷本次採樣數據的數值是否小於上一次採樣數據;如果不小於,則出中斷,如果小於,則判斷本次採樣數據是否小於觸發限值;若不小於,則出中斷,如果小於觸發限值,置觸發方式標誌位為I,將該數據存入FIFO ; 虛擬A/D模塊將狀態恢復為Ready態;出中斷。
6.根據權利要求1所述的基於伺服驅動單元的數據處理方法,其特徵在於:所述經FIFO發送至主機端包括以下步驟: 1)標記中斷採樣標誌位; 2)判斷採樣信息中的觸發方式是否為正常模式; 如果是,則執行3)判斷FIFO是否達到預設容量; 如果未達到,則返回步驟3);如果達到,則FIFO內所有數據發送至主機端,清空FIFO ;判斷是否接收到主機端發來的停止幀,如果為否,則返回步驟3),如果收到,則清除中斷採樣標誌位,結束; 如果為否,則執行4)判斷FIFO是否已滿; 如果為否,則返回步驟4);如果已滿,則則FIFO內所有數據發送至主機端,清除中斷採樣標誌位,清空FI FO,結束。
7.根據權利要求1所述的基於伺服驅動單元的數據處理方法,其特徵在於:所述主機端對接收到的數據幀進行處理並顯示伺服電機運行的時域、頻域波形和控制調節參數包括以下步驟: 主機端將接收到來自DSP晶片的數據幀通過調用函數顯示伺服電機的控制輸入、運行狀態數據和波形;具體包括:時域波形;頻域波形;峰值時間;超調量;穩態誤差。
8.根據權利要求7所述的基於伺服驅動單元的數據處理方法,其特徵在於:所述時域波形通過以下方法顯不:調用 dataToPixel (f1at data, int time, refint x, ref int y)計算得到坐標點,其中data為某一個數據的幅值,time為該數據採樣的時刻,x為計算出的橫坐標,y為計算出的縱坐標;並將所得坐標點保存,使用System.Drawing.Graphics.Drawlines (pen, points)繪製圖像並顯示,其中pen對象為繪製圖像所使用的畫筆,points為圖像的所有採樣點坐標集合。
9.根據權利要求7所述的基於伺服驅動單元的數據處理方法,其特徵在於:所述頻域波形通過以下方法顯示:將時域數據轉換為頻域數據,然後調用freqToPixel (floatdata, int freq, ref int x, ref int y)計算得到坐標點,其中data為數據的幅值,freq為頻率,X為計算出的橫坐標,y為計算出的縱坐標,,並將所得坐標點保存,使用System.Drawing.Graphics.Drawlines (pen, points)繪製圖像並顯示,其中pen對象為繪製圖像所使用的畫筆,points為圖像的所有採樣點坐標集合。
10.根據權利要求7所述的基於伺服驅動單元的數據處理方法,其特徵在於:所述超調量、穩態誤差、峰值時間則通過調用calculatelnfo (float [] data, ref float det, floatdth, ref int ts)函數 得出超調量、穩態誤差值、峰值時間,其中data為存儲所有數據的數組,det為超調量,dth為穩態誤差值,ts為峰值時間,通過調用函數showlnfo (floatdet, float dth, int ts)顯示,其中det為超調量,dth為穩態誤差值,ts為峰值時間。
【文檔編號】G01R13/02GK103809000SQ201210447013
【公開日】2014年5月21日 申請日期:2012年11月9日 優先權日:2012年11月9日
【發明者】王澤鵬, 杜桂紅, 陳猛, 於菲, 王志成, 袁田 申請人:瀋陽高精數控技術有限公司