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