文/鄧新宇
系統(tǒng)要求要實現(xiàn)對擺桿角度以及擺桿運動的控制,并要保證運動控制的快速性、實時性和平穩(wěn)性,盡量提高對擺桿擺動角度范圍的精度控制。我們的設(shè)計結(jié)構(gòu)如圖1所示,其中主要包括主控、外設(shè)、和角度變化率檢測、旋臂控制等模塊,通過按鍵選擇模式及參數(shù)的調(diào)整、用角度傳感器反饋擺桿角度數(shù)據(jù)給主控模塊,有主控模塊控制電機(jī)帶動旋轉(zhuǎn)臂,以實現(xiàn)間接控制擺桿的角度變化。
功能結(jié)構(gòu)框圖如圖2所示。
1.2.1 按鍵輸入部分
按鍵主要負(fù)責(zé)控制模式的選擇,根據(jù)設(shè)計要求,功能主要包括如下部分:
(1)初始模式,擺桿自然下垂?fàn)顟B(tài);
(2)工作模式一,擺桿擺角來回擺動達(dá)到或超過-60度到60度;
(3)工作模式二,擺桿處于自然下垂?fàn)顟B(tài)開始,盡快增大擺桿的擺動幅度,直至完成圓周運動;
(4)工作模式三,擺桿自然下垂外力作用下到倒立狀態(tài);
(5)工作模式四,擺桿無外力作用到倒立狀態(tài);
(6)工作模式五,擺桿倒立狀態(tài)下旋轉(zhuǎn)臂旋轉(zhuǎn)達(dá)到或超過單方向360度。
1.2.2 STM32F4控制芯片
作為系統(tǒng)的核心控制及數(shù)據(jù)模塊,功能主要包括如下部分:
(1)接收按鍵輸入命令,控制系統(tǒng)工作模式;
表1:擺桿擺動角度與計算角度是否一致
表2:擺桿完成圓錐擺測試所得數(shù)據(jù)
表3:擺桿完成調(diào)整到倒立狀態(tài)所得數(shù)據(jù)
(2)接收歐姆龍旋轉(zhuǎn)編碼器的電脈沖量數(shù)據(jù)反饋,穩(wěn)定系統(tǒng)整體的工作狀態(tài);
(3)根據(jù)系統(tǒng)工作要求,控制直流電機(jī)工作方式,并接收直流電機(jī)編碼器電脈沖量數(shù)據(jù),穩(wěn)定電機(jī)的運轉(zhuǎn)。
1.2.3 直流電機(jī)
直流電機(jī)作為旋轉(zhuǎn)臂的控制部分,根據(jù)設(shè)計要求,功能主要包括如下部分:
(1)控制旋轉(zhuǎn)臂的旋轉(zhuǎn),達(dá)到系統(tǒng)的工作要求;
(2)其電機(jī)編碼器反饋電機(jī)的速度等運轉(zhuǎn)數(shù)據(jù),通過主控間接實現(xiàn)電機(jī)運轉(zhuǎn)的穩(wěn)定。
1.2.4 歐姆龍旋轉(zhuǎn)編碼器
歐姆龍旋轉(zhuǎn)編碼器其功能主要是對擺桿旋轉(zhuǎn)的角位移、角速度以及旋轉(zhuǎn)方向等數(shù)據(jù)向主控芯片進(jìn)行電脈沖量的反饋。
1.2.5 電源和直流電機(jī)驅(qū)動
電源和直流電機(jī)驅(qū)動功能主要包括如下部分:
(1)電源:對STM32F4主控模塊和直流電機(jī)驅(qū)動進(jìn)行供電;
(2)直流電機(jī)驅(qū)動:驅(qū)動直流電機(jī)達(dá)到工作狀態(tài)。
倒立擺的自主擺起就是要使擺桿在很短時間內(nèi)從靜止下垂的狀態(tài)迅速擺起到倒立穩(wěn)態(tài)位置。起擺算法通過旋轉(zhuǎn)臂的作用力給擺桿提供動能,通過動能使擺桿擺起。電機(jī)能提供作用力,在擺桿的運動過程中,為了避免力相互抵消而導(dǎo)致的一些問題,僅在擺桿擺起一定角度時施加作用力。擺桿起擺的示意圖如圖3所示。
圖1:系統(tǒng)結(jié)構(gòu)圖
圖2:功能結(jié)構(gòu)框圖
圖3:擺桿起擺示意圖
圖中區(qū)域3與區(qū)域4之間為擺桿下垂靜止時的位置,區(qū)域1與區(qū)域2之間為垂直倒立平衡時的位置,設(shè)定擺桿順時針旋轉(zhuǎn)時角速度為正,逆時針則為負(fù),那么旋轉(zhuǎn)臂左轉(zhuǎn)為正方向,而右轉(zhuǎn)則為負(fù)。開始擺動時,給擺桿正角速度,當(dāng)檢測到擺桿進(jìn)入?yún)^(qū)域3且角速度為正時,給旋轉(zhuǎn)臂施加負(fù)力,如圖(b)所示,因為慣性擺桿將會繼續(xù)擺起,此時動能和重力勢能、作用力會相互抵消,使其正好擺到最高點并相對靜止。此時施加一個負(fù)作用力擺桿進(jìn)入2象限,擺桿的重力勢能會轉(zhuǎn)換為動能從而使得擺桿進(jìn)入?yún)^(qū)域4。當(dāng)檢測到擺桿在區(qū)域4且角速度為負(fù)時,給旋轉(zhuǎn)臂一個正方向的作用力,如圖(c)所示,由于慣性擺桿會繼續(xù)擺起,動能和重力勢能、作用力再次相互抵消,隨后擺桿會進(jìn)入?yún)^(qū)域1,并最終到達(dá)倒立平衡位置并相對靜止,起擺結(jié)束。
采用了PID雙閉環(huán)的方法,由于速度控制對于角度的控制是一種干擾,所以角度閉環(huán)輸出減去速度閉環(huán)輸出作用于電機(jī)來控制擺臂,進(jìn)而控制擺桿倒立,兩種控制作用在程序中進(jìn)行耦合
2.3.1 算法設(shè)計
通過STM32用adc采集角位移傳感器(WDD35D-4導(dǎo)電塑料電位器)的值,由之前學(xué)到的PID控制算法理論可以得出,通過控制電機(jī)的轉(zhuǎn)動與PWM的值來使倒立擺達(dá)到我們所希望的角度。根據(jù)所需要的系統(tǒng)要求,只需要讓其達(dá)到所期望的角度,歷史的差值對其影響并不大,所以只需要PD調(diào)節(jié)即可完成所需。
2.3.2 參數(shù)整定
KP:逐漸增大KP的值,直到出現(xiàn)反向或者低頻抖動的情況;
KD:微分控制,用來抑制轉(zhuǎn)動慣量(即轉(zhuǎn)動過猛)。
單純進(jìn)行角度環(huán)的控制,會穩(wěn)定一段時間,但是最終會朝一個方向運動下去,因此還必須加上位置環(huán)的控制位置環(huán)就是盡可能的讓轉(zhuǎn)動的軸不要移動。
先使擺桿靜止使其保持鉛錘狀態(tài),選擇模式一開始同時使用STM32F407調(diào)試窗口觀察旋轉(zhuǎn)編碼器返回的脈沖數(shù)計算其角度,看是否達(dá)到要求,并測量實際擺桿擺動角度,看是否一致。如表1所示。
先使擺桿靜止使其保持鉛錘狀態(tài),選擇模式二開始同時觀察實際情況下擺臂控制擺桿的擺動,擺桿是否做圓周擺。如表2所示。
用手將擺桿輕觸到165度附近,松手。選擇模式三開始計時,觀察擺桿能否在極短時間內(nèi)調(diào)整到倒立狀態(tài),并觀察擺臂擺動角度是否小于90度。如表3所示。
從測試結(jié)果反映,整個旋轉(zhuǎn)倒立擺能夠完成基本要求,其能在短時間內(nèi)實現(xiàn)擺桿擺動及圓周運動,并在受到外力的情況下迅速回到正常狀態(tài),整個旋轉(zhuǎn)倒立擺穩(wěn)定性好,抗干擾能力強(qiáng)。