續前文,與車輛中心的鄭守益先生討論第三個重要議題 ─ 如何處理變動的負載,Q 為鄭先生的發問,A 為我的回覆,
Q1:
如遇到負載是變動的( 例如垂直的離心力)其PID控制參數是否有需要做修改的地方? 麻煩你了,感謝你。
A1:
使用 PID 控制的目的,在無論何種負載情形,都能平穩的定速控制,基本上 PID 參數無需更動,除非你的系統空載與滿載差異太大才考量變動。甚麼是垂直的離心力?
Q2:
我指的垂直離心力類似倒單擺的系統, 只是我這邊做的是轉速控制而不是位置控制, 使倒單擺做定速旋轉時擺槌會因為位置的不同而馬達出力也不一樣( 速度也會不同), 因馬達是電感性元件會有輸出延遲的效果造成補償響應太慢, 當這種情況下使否要修正PID的參數來因應不同位置的補償速度? 麻煩你了。
A2:
沒親眼看到東西不容易想像,如果你的負載是固定的, 我的建議是放慢調整的速度,就類似我的系統一樣, 假設你的系統響應需要兩秒才能穩定,那麼就每三秒鐘才執行一次 PID 調整控制,如果這個倒單擺三秒內就會倒下,那就不能這麼做, 表示你需要一個反應速度更快的系統,簡單的說, 你可能需要換一顆反應速度更快的馬達,否則這將是非常艱難的任務。
如果你的馬達已經可以達成固定負載的任務後,再考慮去變動 PID 參數的問題,不過這就非常複雜了。
Q3:
你好,
遇到週期性變動的負載,定值的 PID 也是可以定速控制, 不過你還是會觀察到馬達轉速在某個範圍內週期性微小的變動, 如果希望轉速穩定一點,提供兩種方案給你參考
一、慢速取樣,取樣調整週期是負載變動週期的整數倍數, 因為負載會自動平均,定值 PID 即可
二、快速取樣,負載變動週期內要取樣數次, 個人認為可採四的倍數(兩個零點、兩個峰值),這需要變動 PID,但是如何找出適合的 PID 係數,我沒有方案
無論快慢取樣,取樣速度必須與負載變動週期一致, 才能降低馬達轉速微小變化的情形
一、慢速取樣,取樣調整週期是負載變動週期的整數倍數,
二、快速取樣,負載變動週期內要取樣數次,
無論快慢取樣,取樣速度必須與負載變動週期一致,
Q4:
在PID控制裡面很常看到Wind up與Dead Band這兩個名詞,這對於控制上的意思(考量)為何?
A4:
Windup 是積分飽和,也就是 U 數值換算成輸出 power 超過最大值,例如 NXT 馬達 T = 1, U = 900,power = U / 8 = 112.5,這時你只能輸出 power = 100
Dead Band 是指無法控制的區域 (死區或死帶),它可以是時間,也可以指某速度或角度範圍,
像我提供的試算表 (請求閱覽權限需付費),step 0 設定輸出,step 1 還沒動作,step 2 才開始爬升,那這個系統的時間死區就是 1 step
再以角度控制為例,曾經討論過如果以一秒鐘檢知角度一次,
倒立單擺(pendulum)系統,系統極其複雜,考慮單擺擺錘偏角對應台車(cart)的輸出量。
回覆刪除簡易的單擺系統,一開始就已經立起來,剩下的就靠台車的前進後退來維持倒立單擺的穩定。回憶起研究所時光,實驗室的倒立單擺除了上述維持單擺立直穩定,在初期還得靠台車把向下的單擺擺錘甩上來立直。
在NXT的實務應用,單輪車、雙輪平衡車都算是倒立單擺的一種變形應用。
謝謝薛老師補充,
刪除是的,常見的倒單擺都是採角度控制,鄭先生的應用蠻特別的需速度控制!以前曾貼文討論 FUZZY 控制 http://4rdp.blogspot.tw/2008/07/fuzzy-control-on-nxt-motor.html,模糊邏輯發明人澤德教授,就是以倒單擺來證明模糊控制可行。老師最近有再研究甚麼好玩的東西嗎?