Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 4383|回復: 6

PID 控制與實體馬達的連接

[複製鏈接]
發表於 2016-10-7 00:10:48 | 顯示全部樓層 |閱讀模式
本帖最後由 croma 於 2016-10-7 00:14 編輯

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

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

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

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

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

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

c.jpg

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

要控制伺服馬達轉''慢'' 可以從訊號端下手 , 上述的一些參數應該是要考量齒輪的慣性 ,馬達的出力和一些磨擦力等
 樓主| 發表於 2016-10-25 20:12:53 | 顯示全部樓層
嗚嗚 因為齒輪部分的延遲這個項目還卡著還沒開始~
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-3-29 06:44 , Processed in 0.214174 second(s), 9 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表