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

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

-
單片機(jī)
+關(guān)注
關(guān)注
6072文章
45267瀏覽量
661152 -
控制器
+關(guān)注
關(guān)注
114文章
17530瀏覽量
189121 -
直流電機(jī)
+關(guān)注
關(guān)注
36文章
1766瀏覽量
73222 -
adc
+關(guān)注
關(guān)注
100文章
6863瀏覽量
552735 -
舵機(jī)
+關(guān)注
關(guān)注
17文章
368瀏覽量
42667
發(fā)布評(píng)論請(qǐng)先 登錄
直流電機(jī)控制方法的Matlab仿真研究
直流電機(jī)
直流電機(jī)PWM控制
無刷直流電機(jī)運(yùn)行原理與基本控制
直流電機(jī)PWM控制
動(dòng)手玩轉(zhuǎn)Arduino---運(yùn)動(dòng)控制(直流電機(jī)步進(jìn)電機(jī)舵機(jī))
驅(qū)動(dòng)有刷直流電機(jī)的簡(jiǎn)便方法
直流電機(jī)控制的基本方法
直流電機(jī)及PWM介紹
直流電機(jī)調(diào)速介紹
直流電機(jī)調(diào)速實(shí)驗(yàn)

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