朱曉明,李 欣,張淑芝,徐 巖
(1.哈爾濱工程大學 工程訓練中心,黑龍江 哈爾濱 150001;2.大慶石化公司 乙烯工程指揮部,黑龍江 大慶 163714)
運動控制是自動控制領域的一個分支領域,它一般以電機為控制對象,完成位移、速度和加速度等運動參數的快速而準確的控制。運動控制系統在數控、航天、醫療等多個領域都有廣泛應用,主要用于完成控制對象的位置與速度控制[1-2]。
本文所依托的運動控制系統設計是機電及控制專業的一門重要選修課程,其目的是使學生在編程實踐中結合TRIZ(發明問題的解決理論)創新理論,以創新思維方式完成對運動控制系統設計能力的訓練與培養。為了激發學生的興趣,并達到鍛煉效果,課程的多數訓練題目都與工業現場或者應用領域相關。本文所論述的速度跟蹤曲線設計是很多工業現場用于跟蹤電機速度參數的重要手段,可以直觀地反映現場中電機的運動變化規律。通過訓練,學生可以學習電機的速度反饋與動態曲線跟蹤方法設計,設計出滿足特定需要的速度曲線顯示系統[3-6]。
在實踐環節中,融入趣味性、實用性、動態可視化、互動性等特點才能達到更好的效果。為了使系統適應單機教學演示和聯機實踐教學,系統具有兩種運行狀態:仿真狀態與聯機狀態,可根據需要隨時切換。
根據TRIZ理論的分割原理,將系統分為如下5個模塊:速度采集與顯示模塊、T曲線控制模塊、S曲線控制模塊、手動控制模塊、隨機數測試模塊等。速度采集與顯示模塊采用動態曲線形式反映電機速度的變化趨勢,借鑒了示波器的曲線變化形式,該種曲線能夠始終保持最新的采集數據并動態顯示,在工業現場監控應用中有廣泛應用,并體現趣味性、實用性、動態可視化的特點;T曲線控制模塊和S曲線控制模塊在目標位移給定情況下,完成電機的梯形和S形的加減速控制,并可在一定范圍修改參數,體現互動性;手動控制模塊在目標位移未知情況下,完成電機在T形曲線模式下電機的手動加減速控制;隨機數測試模塊主要模擬工業現場一些參數的隨機發生過程,通過速度采集與顯示模塊顯示,訓練學生對通用數據的采集與顯示設計,體現實用性特點。系統軟件模塊結構如圖1所示。

圖1 系統軟件模塊結構
系統所使用的實驗設備是深圳固高公司的四軸運動控制開發平臺。硬件控制只有當系統處于聯機狀態時才可用,由用戶通過人機界面操作,完成單個電機的位置或速度控制,驗證控制效果。
實驗平臺結構示意圖如圖2所示,實驗平臺操作面板如圖3所示。系統主要由PC機、運動控制器、端子板、電機和驅動器以及操作面板組成。電機控制通過軟件編程實現。控制指令通過控制軟件的人機界面發出,到達運動控制器,經過PCI總線、端子板,由驅動器放大,傳給電機。控制指令的格式由運動控制器提供商專門定義,以動態鏈接庫文件的形式給出,設計時以庫函數的形式進行調用。
T曲線控制是使電機的速度曲線以梯形完成加、減速。該種模式的特點是參數設置簡單、直觀。要完成T曲線控制,用戶需要首先進行消息映射處理,將該模式的按鈕事件的處理函數調用以下4個指令庫函數:rtn=GT_PrflT()設置 T曲線模式;rtn=GT_SetVel(0.1)設置速度;rtn=GT_SetAcc(0.01)設置加速度;rtn=GT_SetPos(10000)設置位移目標。

圖2 實驗平臺結構示意圖

圖3 實驗平臺操作面板
目標單位是脈沖而非毫米或者度,需要用戶根據設備的機械結構進行相應的系數轉換。以下兩種控制模式也需要進行同樣的轉換。
S曲線控制是使電機的速度曲線以S形完成加、減速。該種模式的特點是速度變化平緩,對電機沖擊小,但是參數設置復雜。要完成S曲線控制,處理函數需要調用以下5個指令庫函數:rtn=GT_PrflS()設置T曲線模式;rtn=GT_SetVel(0.1)設置速度;rtn=GT_SetMAcc(0.01)設置最大加速度;rtn=GT_Jerk(0.001)設置加加速度;rtn=GT_SetPos(10000)設置目標終點。
手動模式控制和以上2種模式不同,不需設定目標坐標,只需設置目標速度和加速度,一般用于用戶手動控制電機,根據需要隨時停止和啟動。電機要實現手動控制,需要調用以下3個指令庫函數:rtn=GT_PrflV()設置運動模式為速度模式(手動模式);rtn=GT_SetAcc(0.01)設置加速度;rtn=GT_SetVel(0.1)設置目標速度。
速度數據采集主要采集電機的實際轉動速度,獲得電機的實時參數,并顯示速度曲線。由于庫函數中沒有提供直接讀取速度功能,設計了通過獲取位置的庫函數來間接實現速度讀取功能。庫函數GT_GetAtlPos(&atlpos)可直接讀取電機軸內置的光電式增量旋轉編碼器的位置脈沖值。通過求取其單位間隔內增加的數值,即可實現速度的換算。
采集與顯示模塊是整個系統的核心模塊,用于實現與用戶的信息交換。在設計時借鑒了示波器的電流顯示模式,以動態曲線的形式不斷更新最新采集數據,形象直觀。
為了實現嵌入式屏幕的顯示效果,設計了新類CVelPane,它繼承系統本身的靜態文本框類CStatic,并定義了自己的界面繪制函數 OnPaint()[7-8]。在該函數中將背景處理為黑色,并分為10×10黃色網格區域[9-10]。縱坐標代表速度值,其范圍為0~10;橫坐標代表離散的時間點,范圍0~10。為存儲采集的速度數據,定義了容器類型數組deque<double>m_data。為了增加易用性,定義了唯一的用戶函數接口Add-Vel(double data),自動完成數據的添加、判斷、更新、顯示等[11]。
每次用戶存儲數據時,都會對其有效性進行判斷,合法后存入數據數組;然后判斷全部數據的個數,只要超過100,就會刪除數組的第1個數據,直到小于等于100個數據;然后系統會使客戶區域失效,導致重繪背景,并調用曲線繪制函數void CVelPane::DrawCurve(CDC*pDC),函數中關鍵代碼是曲線繪制函數pDC->LineTo(x,y),通過 while循環,它將所有數據點坐標連接,完成速度曲線繪制。
為了使系統能夠在單機仿真狀態和聯機狀態都可使用,設計了狀態變量m_iStatus。每次用戶進行電機實驗測試時,首先判別該變量。如果該變量為0,代表處于仿真狀態,電機速度變化過程由單機通過算法仿真完成,并進行仿真數據的采集與曲線更新;如果該變量為1,電機的速度變化過程由運動控制器硬件完成,并進行實時速度采集與曲線更新。狀態切換設計為由用戶根據現場情況在人機界面上的單選按鈕完成。雖然控制過程不同,二者的采集數據最終都轉為0~10范圍內,便于屏幕顯示。
仿真狀態下,速度曲線有3種模式:T曲線模式、S曲線模式以及手動模式。其中最復雜的是S曲線,速度變化過程有7個階段:加速度勻加階段1、速度勻加階段2、加速度勻減階段3、速度勻速階段4,以及與階段1、2、3速度曲線對稱的階段5、6、7[12]。各階段終點的速度設為vi(i=1…7),每個階段所經過的時間設為ti(i=1…7)。各參數的運行曲線如圖4所示。下面重點對其速度曲線的仿真設計過程進行分析。

圖4 S曲線模式的速度、加速度、加加速度曲線
為了實現速度曲線過程仿真,采用了VC++6.0窗口內置定時器函數SetTimer(1,20,Null),即每隔20ms調用1次信息處理函數。由于Windows系統本身為多任務非實時系統,該定時器調用周期要大于設置值,且不穩定,因此無法按照模擬量的方法進行計算,而只能采用離散化方法。每次調用處理函數時認為時間過了單位時間dt,在該時間內位移s,速度v離散化如下:

其中j是加速度的變化率,稱為加加速度。
仿真的關鍵是判斷速度曲線每個階段終點速度。由圖及積分公式可推導如下公式:

其中vm、am、jm分別為用戶設定的目標速度、目標加速度和目標加加速度。通過式(2)獲得每個階段終點速度后,仿真狀態下,通過定時器循環不斷判斷速度的變化值,以確定其在7個階段的不同加減速策略。在第1階段,加加速度j為給定值jm,加速度a勻速遞增;速度v從零開始不斷增加;當速度v達到v1時,進入第2階段,加加速度j為零,加速度a為給定值am,速度v勻速遞增;當速度v達到速度v2時,進入第3階段,加加速度j變為給定值-jm,加速度a勻速遞減,速度v不斷增加;當速度v達到目標速度vm時,進入第4階段,速度v為恒速,加速度a和加加速度j都為零。后面3個階段的速度變化規律與前3個階段一致,只是速度變為遞減。通過這種策略,最終實現S曲線的速度變化規律。
實驗測試分為2個部分:單機仿真測試與聯機測試,以驗證在不同使用環境下的準確性與可靠性。
在仿真測試中,主要驗證T曲線模式和S曲線模式的運行效果。T曲線模式的目標設為210,速度設為8(最大顯示速度10),加速度設為0.5,所有單位無量綱。S曲線模式的目標設為240,速度設為8,加速度設為0.5,加加速度設為0.05。點擊開始按鈕后,開始調用定時器運行仿真過程。經過仿真運行,兩種模式的速度曲線如圖5所示。由圖5可見:T模式的速度變化曲線為梯形,參數設置僅需要3個參數;S模式的速度曲線為S形,即加速過程與減速過程為S形,變化平緩。因此可以判斷仿真結果符合理論要求。

圖5 仿真測試的T模式和S模式的速度曲線
在聯機測試中,需要系統和四軸運動控制開發平臺相連,并進行必要的運動控制器參數設置和控制軸的參數設置。實驗主要測試了經常使用的T曲線模式。參數設置如下:目標設為300,速度設為8,加速度為0.5,使用第1軸作為控制對象。經聯機運行后,電機軸T模式的速度曲線如圖6所示。由圖6可見電機的加減速過程符合T模式運行規劃,證明系統控制、信號采集設計合理。但是在勻速運行時存在小幅振蕩情況,這是由于速度值并非直接采集,而是由2個窗口定時器的位移差計算所得,窗口定時器本身不具有硬實時性,每次調用時間間隔存在微小差異,導致速度曲線存在輕微振蕩。

圖6 聯機測試中T模式的速度曲線
運動控制系統設計廣泛用于以電機為主要控制對象的工業現場中,具有廣泛的應用領域。其中電機的速度控制以及狀態反饋是重要的研究內容,具有積極的教學意義。本文主要對運動控制系統中電機速度跟蹤曲線教學系統進行了相關研究,分析了其軟件模塊結構,介紹了硬件控制方法、信號采集與顯示模塊的軟件設計,詳細論述了電機仿真控制中S曲線的數學理論及其軟件設計方法。經過仿真與聯機實驗測試表明,系統運行穩定可靠,達到預期的設計效果。
但是在仿真測試中,如果某些參數設置不當,比如在S曲線中加加速度設置過大,會導致曲線出現變形,甚至畸變,對于這種情況,系統缺乏精確的分析和適當的處理方法。這將成為后續改進研究的重要方向。
(
)
[1]盧秉娟.運動控制系統課程教學突出工程實際應用性研究[J].洛陽理工學院學報,2011,21(3):88-90.
[2]王亞麗,劉廣亮,李向東,等.基于CPAC多軸運動控制教學平臺的設計與實現[J].實驗室研究與探索,2012,31(8):17-20.
[3]林立,唐杰,邱雄邇.“電力電子及運動控制”教學方法探討[J].電氣電子教學學報,2012,34(4):114-115.
[4]潘庭龍,沈艷霞.大工程觀下運動控制系統課程教學體系改革探索[J].江蘇教育學院學報,2012,28(5):1-3.
[5]劉曉明,武業敏,高飛.基于VC的電機測試系統界面設計[J].湖南農機,2012(9):80-81.
[6]金海飛,丁文政,汪木蘭.基于運動控制卡的數控工作臺控制系統設計[J].機電產品開發與創新,2012,25(6):156-157.
[7]尚曉鋒,劉廷章,袁文.基于VC++的電機參數的在線采集與顯示[J].機床與液壓,2011,39(15):59-62.
[8]盧佳祺.基于VC++平臺的工程曲線繪圖軟件開發[J].電腦編程技巧與維護,2011(8):16-17.
[9]趙萬軍,鄧正華.基于VC++的數控DDA圓弧插補軌跡仿真[J].制造業自動化,2012,34(3):125-127.
[10]葛研軍,劉邦文,趙亮.二維曲線數控加工刀具軌跡仿真技術研究[J].機械制造,2005,43(5):53-55.
[11]田小靜,陳煜蒙.基于VC程序的四軸運動軌跡規劃控制[J].新技術新工藝,2012(1):16-18.
[12]胡磊,林示麟,徐建明,等.S曲線加減速速度控制新方法[J].組合機床與自動化加工技術,2010(1):22-34.