TSM一體型步進伺服馬達PID調整_ST40實作範例
ST40螺桿定位台_PID調適
ST40螺桿定位台_PID調適
TSM PID Tuning 一般情況下,PID參數可使用馬達預設值即可。 當馬達與負載機構結合之後,可先讓馬達做簡單正反轉動作,並且監控軟體上的編碼器位置(Encoder Position)與下命令位置(Command Position)兩者間位置誤差(Position Error)是否為 “0” (如下圖),若位置誤差為 “0” 則不必進行PID參數調整。 除了特殊應用(ex:雙軸圓弧運動)外,大部分應用可直接從步驟四:調整位置環部分開始做PID調整,速度環部分可維持預設值。 何時需要調整PID參數? 當馬達與負載結合後,通電時產生振動與噪音時,表示系統不穩定,需要調整參數。如需快速解決此問題,將所有增益參數數值調低,並點擊軟體下載鍵將設定下載至馬達。 調整參數 速度環(Velocity Loop): Gain (VP): 比例增益(速度模式)用於增加馬達響應之剛度,與速度誤差成正比 IntegGain (VI): 積分增益(速度模式)用於增加剛度以及減少穩態速度誤差 FF Gain (KK): 慣性前饋增益利用補償負載慣量來改善加速度控制 Filter (KC): 整體伺服濾波器; 單極低通濾波器,用於衰減高頻振盪 位置環(Position Loop): Gain (KP): 比例增益(位置模式)用於增加馬達響應之剛度,與位置誤差成正比 Deri Gain (KD): 微分增益用於位置誤差之變化率 ,以提供系統阻尼與增加穩定性 Deri Filter (KE): 微分濾波器用於限制經常因微分增益增加而引起之高頻噪音,使系統更安靜且更穩定 調整時請格外小心,當馬達出現問題時(如:馬達不穩定、失速…等),請隨時做好禁用馬達伺服控制(disable)之準備。 請注意!速度環需要在位置環之前進行調整。 調整步驟 步驟一:將速度環增益起始設置為低值 (1) 將KC值設為預設值15000 (2) 將VI值與KK值設為0 (3) 對於低慣性負載與低加速度/減速度,將VP值設為1000~1500範圍內(請參見下面提示1和2) …
動作說明: 第一次按下INPUT X1瞬間,馬達移動至P1點,到定位時OUTPUT Y1亮滅一次。第二次按下INPUT X1瞬間,馬達移動至P2點,到定位時OUTPUT Y1亮滅一次。第三次按下INPUT X1瞬間,馬達移動至P1點,到定位時OUTPUT Y1亮滅一次。第四次…以此類推… 範例程式:
以TSM11Q-3RM+RGS06為例 範例code
範例程式碼一: 一個INPUT教導一個位置 範例程式碼二: 一個INPUT連續教導多個位置
如STM裝了encoder,有兩個目的 (只能2選1) 1. 偵測失步 : 會檢測失步,並出現alarm,但不會自動防止失步!!2. 預防失步 : stm會自動調整扭力,以保持正確位置,類似servo但是主控權要於stm,故不能使用於plc 的pulse command下試過降低馬達電流,並手動強制旋轉軸心,於+/- 7.2度(圓周運動360)時,步進會自己調整至正確位置,但超過7.2度,即超出可調範圍,這就類似於servo的position error!!系統不會判斷成失步,但可以利用讀取ENCODER位置,來判斷!! 以下為基本設定 將馬達電流調小至手可以轉動測試,此範例為1A(請參照馬達規格電流設定範圍) 2. 設定錯誤訊號輸出,Motion&I/O→Pulse&Direction Mode→Closed on fault 此功能需在位置模式下, Motion&I/O→Serial Command Language(SCL)→21. Point to Point Positioning 4.ENCODER設定 ※偵測失步 : 會檢測失步,並出現alarm,但不會自動防止失步!! ※預防失步 : stm會自動調整扭力,以保持正確位置,類似servo 註: 若ENCODER解析度未達到2000 counts/rev,無法使用此功能
https://montrol.com.tw/wp-content/uploads/2018/10/ST5驅動器-VB介面範例.mp4 ‘= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ‘ 建立通訊連接 ‘= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Private Sub Form_Load() If (MSComm1.PortOpen = True) Then MSComm1.PortOpen = False MSComm1.CommPort = Combo1.Text ‘Choose comport MSComm1.PortOpen = True MSComm1.Settings = “9600,N,8,1” End Sub ‘= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ‘ 設定原點 ‘= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Private Sub SetZeroPosition_Click() MSComm1.Output = “SP0” & Chr(13) ‘Set Absolute Position End Sub ‘= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ‘ 開始位置移動 ‘= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = …
範例code
***RS485 站號(Node ID) 設定: * 透過AMP ” Step-Servo Quick Tunner ”軟體內設定馬達ID,如下: *** 開啟VB軟體 :步驟一: 專案>設定使用元件>勾選”Microsoft Comm Control 6.0” 步驟二: 先製作介面 步驟三: 編寫程式碼 Private Sub Form_Load() If (MSComm1.PortOpen = True) Then MSComm1.PortOpen = False MSComm1.CommPort = 3 MSComm1.PortOpen = True MSComm1.Settings = “9600,N,8,1” End Sub Private Sub Command3_Click() MSComm1.Output = “1FL20000” + Chr(13) End Sub Private Sub Command4_Click() MSComm1.Output = “2FL20000” + Chr(13) End Sub Private Sub Command5_Click() MSComm1.Output = “1FL20000” + Chr(13) MSComm1.Output = “2FL20000” + Chr(13) End Sub