本文簡單介紹在舵機(jī)中的直流電機(jī)控制原理和方法。下圖是控制器原理圖,單片機(jī)選擇stm32f030,驅(qū)動選擇fm116b,ldo為lp2992,這個可以任意選擇兼容的芯片,電壓反饋端用tl431進(jìn)行分流穩(wěn)壓,確保反饋電阻器供電電壓的穩(wěn)定。

舵機(jī)的工作原理很簡單,處理器實時獲取電阻器的ADC值來計算獲得當(dāng)前的角度,如果與預(yù)期的角度一致,就不做任何操作,保持當(dāng)前狀態(tài);如果與預(yù)期角度不同,就計算出當(dāng)前角度與預(yù)期角度的差值,然后通過PID算法計算出控制量,根據(jù)控制量輸出PWM控制電機(jī)旋轉(zhuǎn),隨著電機(jī)旋轉(zhuǎn),實時角度會越來越接近預(yù)期值,控制輸出也會越來越小,直到最后為0,就轉(zhuǎn)到了預(yù)期的位置。
本方案通過I2C接口獲取控制命令,可以實現(xiàn)比傳統(tǒng)模擬方式更多的功能。
PWM1和PWM2控制電機(jī)轉(zhuǎn)速和方向,當(dāng)PWM1輸出高電平而PWM2輸出低電平就是正轉(zhuǎn),反之就是反轉(zhuǎn),如果二者都輸出低電平就停止。
ADC值需要標(biāo)定,確定舵機(jī)角度為0和180時的ADC采樣值,這樣才能通過比例計算出任意ADC值對應(yīng)的角度。
PID這里,ADC得到的角度減去預(yù)期角度就是角度差,乘以比例系數(shù)構(gòu)成比例項;角度差的和乘以積分系數(shù)構(gòu)成積分項,積分項要設(shè)置上限,防止該值過大影響響應(yīng)速度;本次角度差與上一次的角度差的差乘以微分系數(shù)構(gòu)成微分項(這里用固定的時間采樣,dt固定,故不需要計算變化率了)。三者之和就是預(yù)期的輸出值,再根據(jù)輸出限制得到最終的輸出值,該值可正可負(fù),注意變量選取要合適。

-
單片機(jī)
+關(guān)注
關(guān)注
6074文章
45325瀏覽量
663104 -
控制器
+關(guān)注
關(guān)注
114文章
17627瀏覽量
190102 -
直流電機(jī)
+關(guān)注
關(guān)注
36文章
1772瀏覽量
73453 -
adc
+關(guān)注
關(guān)注
100文章
7335瀏覽量
553631 -
舵機(jī)
+關(guān)注
關(guān)注
17文章
373瀏覽量
42818
發(fā)布評論請先 登錄
直流電機(jī)控制方法的Matlab仿真研究
直流電機(jī)
直流電機(jī)PWM控制
無刷直流電機(jī)運(yùn)行原理與基本控制
動手玩轉(zhuǎn)Arduino---運(yùn)動控制(直流電機(jī)步進(jìn)電機(jī)舵機(jī))
驅(qū)動有刷直流電機(jī)的簡便方法
直流電機(jī)控制的基本方法
直流電機(jī)及PWM介紹
直流電機(jī)調(diào)速介紹
直流電機(jī)調(diào)速實驗

舵機(jī)中的直流電機(jī)控制原理和方法
評論