2013年12月7日 星期六

PID Control 精彩討論 (3) ─ 變動的負載

http://4rdp.blogspot.com/2013/12/pid-control-3.html

續前文,與車輛中心的鄭守益先生討論第三個重要議題 ─ 如何處理變動的負載,Q 為鄭先生的發問,A 為我的回覆,


Q1:
如遇到負載是變動的(例如垂直的離心力)其PID控制參數是否有需要做修改的地方?麻煩你了,感謝你。

A1:
使用 PID 控制的目的,在無論何種負載情形,都能平穩的定速控制,基本上 PID 參數無需更動,除非你的系統空載與滿載差異太大才考量變動。甚麼是垂直的離心力?



Q2:
我指的垂直離心力類似倒單擺的系統,只是我這邊做的是轉速控制而不是位置控制,使倒單擺做定速旋轉時擺槌會因為位置的不同而馬達出力也不一樣(速度也會不同),因馬達是電感性元件會有輸出延遲的效果造成補償響應太慢,當這種情況下使否要修正PID的參數來因應不同位置的補償速度?麻煩你了。

A2:
沒親眼看到東西不容易想像,如果你的負載是固定的,我的建議是放慢調整的速度,就類似我的系統一樣,假設你的系統響應需要兩秒才能穩定,那麼就每三秒鐘才執行一次 PID 調整控制,如果這個倒單擺三秒內就會倒下,那就不能這麼做,表示你需要一個反應速度更快的系統,簡單的說,你可能需要換一顆反應速度更快的馬達,否則這將是非常艱難的任務。

如果你的馬達已經可以達成固定負載的任務後,再考慮去變動 PID 參數的問題,不過這就非常複雜了。


Q3:
你好,我會想到倒單擺系統的例子是因為我們現在假設的負載都是為固定值,但有時候負載是週期性變動(類似sin波),遇到這種狀況的時候PID參數是否還能夠定速控制?還是必須要取決於馬達的響應速度(或取樣時間變快)?

A3:
遇到週期性變動的負載,定值的 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
再以角度控制為例,曾經討論過如果以一秒鐘檢知角度一次,電力供給 1% (這是最小解析),可以轉 8 度,那這系統有 8 度角度的死區 

2 則留言:

  1. 倒立單擺(pendulum)系統,系統極其複雜,考慮單擺擺錘偏角對應台車(cart)的輸出量。
    簡易的單擺系統,一開始就已經立起來,剩下的就靠台車的前進後退來維持倒立單擺的穩定。回憶起研究所時光,實驗室的倒立單擺除了上述維持單擺立直穩定,在初期還得靠台車把向下的單擺擺錘甩上來立直。

    在NXT的實務應用,單輪車、雙輪平衡車都算是倒立單擺的一種變形應用。

    回覆刪除
    回覆
    1. 謝謝薛老師補充,

      是的,常見的倒單擺都是採角度控制,鄭先生的應用蠻特別的需速度控制!以前曾貼文討論 FUZZY 控制 http://4rdp.blogspot.tw/2008/07/fuzzy-control-on-nxt-motor.html,模糊邏輯發明人澤德教授,就是以倒單擺來證明模糊控制可行。老師最近有再研究甚麼好玩的東西嗎?

      刪除