本文簡單介紹在舵機中的直流電機控制原理和方法。下圖是控制器原理圖,單片機選擇stm32f030,驅動選擇fm116b,ldo為lp2992,這個可以任意選擇兼容的芯片,電壓反饋端用tl431進行分流穩壓,確保反饋電阻器供電電壓的穩定。
舵機的工作原理很簡單,處理器實時獲取電阻器的ADC值來計算獲得當前的角度,如果與預期的角度一致,就不做任何操作,保持當前狀態;如果與預期角度不同,就計算出當前角度與預期角度的差值,然后通過PID算法計算出控制量,根據控制量輸出PWM控制電機旋轉,隨著電機旋轉,實時角度會越來越接近預期值,控制輸出也會越來越小,直到最后為0,就轉到了預期的位置。
本方案通過I2C接口獲取控制命令,可以實現比傳統模擬方式更多的功能。
PWM1和PWM2控制電機轉速和方向,當PWM1輸出高電平而PWM2輸出低電平就是正轉,反之就是反轉,如果二者都輸出低電平就停止。
ADC值需要標定,確定舵機角度為0和180時的ADC采樣值,這樣才能通過比例計算出任意ADC值對應的角度。
PID這里,ADC得到的角度減去預期角度就是角度差,乘以比例系數構成比例項;角度差的和乘以積分系數構成積分項,積分項要設置上限,防止該值過大影響響應速度;本次角度差與上一次的角度差的差乘以微分系數構成微分項(這里用固定的時間采樣,dt固定,故不需要計算變化率了)。三者之和就是預期的輸出值,再根據輸出限制得到最終的輸出值,該值可正可負,注意變量選取要合適。
-
單片機
+關注
關注
6043文章
44619瀏覽量
638471 -
控制器
+關注
關注
112文章
16444瀏覽量
179423 -
直流電機
+關注
關注
36文章
1710瀏覽量
70410 -
adc
+關注
關注
99文章
6533瀏覽量
545735 -
舵機
+關注
關注
17文章
280瀏覽量
41188
發布評論請先 登錄
相關推薦
評論