Robofun 機器人論壇

標題: PID 控制與實體馬達的連接 [打印本頁]

作者: croma    時間: 2016-10-7 00:10
標題: PID 控制與實體馬達的連接
本帖最後由 croma 於 2016-10-7 00:14 編輯

不好意思~ 我才剛試著做馬達控制,有些地方不太清楚想請教一下各位版友

我剛閱讀了版上幾位的討論也看了 泛用伺服馬達應用技術 這本書也根據網路上的範本在電腦上進行結果驗證,在產生的數據上確實是越來越趨近指定位置,不過實際使用時應該還是要與馬達的參數相結合,馬達的參數應該要怎麼結合呢?


在主程式中的 PID 計算
>Power =  PIDCalc(&Moto, NowPoint);

這個回傳直應該是 PID 計算時預期的移動量,我們是根據馬達和負載特性讓 MCU 控制馬達往這個移動量靠攏是嗎? 有什麼要注意的地方嗎?
作者: 超新手    時間: 2016-10-7 09:02
我亂猜的......
這個範例的 nowpoint 是計算而來
如果要上真的馬達, 必須有一個"位置偵測感知器",
而實際的 nowpoint , 就從這個"位置偵測感知器"讀回來
去取代最後一行的程式
也就是用真的感器去取代
nowpoint  += (fabS(Power)>25........
作者: croma    時間: 2016-10-7 12:57
本帖最後由 croma 於 2016-10-7 13:03 編輯

是的~ 最後的讀數應該由位置傳感器取回,那問題來瞜~

請留意這裡 Power 的讀數,假設這是設定從 0 度 轉到 -90 度,根據 Power 這個數值上的變化 相當於 PID 計算出馬達應該正反轉的角度,從最簡單的 PWM 應該要輸出多少秒,再考慮到馬達的特性、現在的負載變化、重力影響、啟動速度,最大轉速,急速的加減速等等 長長一大串~



我試過的幾個舵機每個都跟砲彈似的用最高速衝到指定的位置,像這個圖表在邊界上的部分瞬間就要從 -73 跳轉到 8.5 我不確定馬達這樣玩會不會出問題
作者: 超新手    時間: 2016-10-7 13:34
可以把 P 設小點, 變化就不會太快
作者: croma    時間: 2016-10-8 01:35
嗯嗯 下週訂購的  MLX90316 就到貨了,到時候用實驗檢驗結果
作者: alpha    時間: 2016-10-24 07:22
一點想法 , 以伺服馬達的角色來說 , 應該一開始是 ''使盡全力'' 轉 , 到達接近目標角度前開始放慢 , 當然理想的模型是 ''剛好''停在目標角度 , 不要回頭 , 但是這不太容易 , 伺服馬達有負擔 , 需要伺服馬達出手去保持目標角度 , 假設你想控制伺服馬達的扭力 , 有可能會讓馬達處於幾乎停轉的境界 , 這馬達很容易燒掉 , 除非一直''換向''讓馬達維持現狀 , 但這會讓伺服馬達發抖

要控制伺服馬達轉''慢'' 可以從訊號端下手 , 上述的一些參數應該是要考量齒輪的慣性 ,馬達的出力和一些磨擦力等
作者: croma    時間: 2016-10-25 20:12
嗚嗚 因為齒輪部分的延遲這個項目還卡著還沒開始~




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2