劉拓晟



摘要:倒立擺是開展各種控制實驗及進行控制理論的理想實驗平臺,是一個不穩定的、非線性的復雜控制系統,其控制方法在軍工、航天、機器人和一般工業過程領域中都有著廣泛的用途。該系統采用stm32f103rct6單片機為控制器,以角位移傳感器為反饋裝置,以直流減速電機作為執行裝置,采用PID控制算法,設計了一個簡易的旋轉倒立擺控制系統。能夠完成倒立擺的穩定倒立、起擺倒立、旋轉倒立等動作。
關鍵詞:stm32f103rct6;角位移傳感器;直流減速電機;PID算法;倒立擺
中圖分類號:TP302? ? ? ? ? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2018)36-0213-03
Abstract:Inverted pendulum is an ideal experimental platform for carrying out various control experiments and control theory teaching. It is an unstable and nonlinear complex control system. Its control methods are widely used in military, aerospace, robotics and general industrial processes. use. In this paper, the stm32f103rct6 micro-controller is used as the controller, the angular displacement sensor is used as the feedback device, the DC geared motor is used as the actuator, and the PID control algorithm is used to design a simple rotary inverted pendulum control system. The final test results show that the design of this program is basically feasible, and it can complete the actions of the inverted pendulum, such as a stable inverted handstand, a pendulum upside down, and an inverted handstand.
Key words: stm32f103rct6; Angular displacement sensor; DC geared motor; PID algorithm; Inverted pendulum
1 背景
倒立擺控制系統是一種經典的研究自動化控制的實驗裝置,其應用已經廣泛分布于機器人控制、工業自動化控制、航空航天及人工智能等領域,在自動化控制領域占據著非常重要的地位。同時,倒立擺因為結構簡單、成本低廉等特點,許多學校和相關研究機構都將其作為教學、實驗平臺,進行控制理論教學和開展各種控制實驗[1]。近年來,倒立擺控制系統的運用越來越廣泛,控制技術與方法也愈加成熟。人們通過對倒立擺控制系統的研究,處理各種多變量問題、非線性問題及不穩定系統問題,進而延伸到各類工控領域,與工業應用相結合,對解決實際問題有著顯著的幫助[2]。
2 總體方案設計
倒立擺硬件系統包括STM32主控模塊、角位移傳感器模塊、電機驅動模塊、穩壓模塊、直流減速電機等。系統的電源采用3節18650電池供電,利用穩壓模塊為電機驅動模塊提供8V的電壓,給單片機提供5V的電壓。將角位移傳感器傳回的實時角度和直流減速電機傳回的速度傳入主控制器,主控制器通過PID控制器計算并輸出電機下一步運行所需的PWM值,驅動電機運行,最終實現擺桿的動態平衡。系統運行期間,利用Nokia 5110進行實時數據顯示與模式調節顯示,方便整個系統的運行。在機械結構方面,采用不銹鋼制成的支架,提高了整體結構的穩定性;采用導線環與電機相連,解決了系統運行時的繞線問題。系統整個結構圖如圖1所示。
3 系統硬件設計
3.1 主控最小系統設計
該設計選用STM32F103RCT6作為控制核心,需要調用幾個片內外設,Nokia5110顯示器需要一組連續的普通GPIO口資源,驅動定時器需要定時器的PWM輸出,還需要一個串口USART用來調試。外部晶振采用了8MHz的無源晶振,另外還增加了22pF的補償電容,作為系統時鐘源。STM32F103RCT6的引腳數目能夠滿足要求。
3.2 穩壓模塊設計
該系統選用了LM317穩壓模塊為直流電機提供穩定電壓。LM317是一種可調3端正電壓穩壓器,具有穩壓性能好、輸出電壓可調、噪聲低、價格低廉等優點,廣泛應用于一些小型嵌入式系統。穩壓模塊原理圖如圖2所示。LM317模塊輸出電壓公式為:
3.3 電機驅動模塊
該系統選用的電機驅動模塊是L298N驅動模塊。L298N是ST公司生產的一種高電壓、大電流電機驅動芯片,可以用來驅動直流電動機和步進電動機、繼電器線圈等感性負載;采用標準邏輯電平控制,有四個信號輸入口,通過單片機輸出的PWM信號驅動模塊正常工作,實現電機的加減速與正反轉等動作[3]。該系統利用L298N驅動一個直流電機。
3.4 角位移傳感器
該系統采用WDD35D4角位移傳感器作為擺桿的實時姿態檢測與反饋裝置。WDD35D4角位移傳感器采用3.3V電壓供電,只有一根信號輸出線,由該信號線輸出角位移傳感器的實時電位值[4]。采用Stm32f103上集成的ADC外設直接測量傳感器的電位值,將ADC1的通道10(PC0)配置成模擬輸入模式,采用DMA方式將采集到的電位值周期性地存放到指定內存位置,在需要使用該變量時將其取出。擺桿與角位移傳感器的轉軸連接,系統通過實時測出的電位值,與擺桿處于平衡位置時的電位值進行比較,算出實時偏差并將其傳入PID控制器,控制電機糾正偏差,形成一個負反饋系統。
3.5 Nokia5110液晶模塊
該系統選用Nokia5110液晶模塊作為系統的顯示器件,用來顯示工作模式、角度與速度、PID參數等,方便系統調試。Nokia5110液晶模塊采用PCD8544作為驅動芯片,通過模擬串行總線協議發送指令和寫入數據RAM來控制和顯示數據;采用串行接口與主處理器進行數據通信,接口信號線相較于其他液晶模塊大幅減少,除去電源、背光電源與地,僅有5根信號線。其電路原理圖如圖3。
4 系統軟件設計
4.1 主程序流程圖
軟件設計的主體是一個閉環的負反饋系統:在6ms的采樣周期內,主控制器首先采集實時的角度、速度,通過Nokia5110實時顯示,然后將采集到的角度與平衡位置進行比較,判斷擺桿是否達到平衡;如果達到平衡,擺桿繼續保持當前位置;如果與平衡位置偏差較遠,則將采集的角度、速度傳入PID控制器,輸出合適的PWM值控制電機,調節擺桿靠近平衡位置,再進入下一個采樣周期。軟件設計的主程序流程圖如圖4:
4.2 角度采集
角度采集部分,該系統使用的是WDD35D4角位移傳感器,WDD35D4角位移傳感器實質上是一個高精度的電位器,擺桿連接在電位器上能夠旋轉的軸承之上。當擺桿處于運動狀態時,電位器的電阻也會時刻發生變化。通過將采樣點采回的電阻值與擺桿平衡時的電阻值進行比較,計算出一個類似角度的變量,傳入PID控制器中進行計算。
4.3 速度采集
速度采集部分,該系統采用的是帶編碼器的直流減速電機,電機尾部自帶了13線的磁(霍爾)編碼器,以減速比20:1的電機為例,車輪轉一圈,電機可以輸出260個脈沖,倍頻之后是1040。編碼器的額定工作電壓是5V,集成了上拉電阻和比較整形功能,可以直接輸出方波。利用stm32上的TIM2編碼器功能采集電機輸出的脈沖,測出電機的轉速。
4.4 電機控制
在電機控制方面,該系統采用stm32f103rct6 定時器3模擬PWM輸出來控制電機的調速,利用L298N模塊控制電機的正反轉。PWM全名為脈沖寬度調制,通過在一定周期時間內調節高低電平各自所占的時間,達到改變PWM占空比的目的。該次使用的直流減速電機,采用10Khz的PWM控制頻率,一個PWM周期內高電平的占空比越大,電機的轉速越快。因此控制電機轉速的問題就演變成了改變PWM高電平占空比的問題,具體控制流程如圖5。
4.5 PID控制器
該系統PID采用的是傾角PD控制與速度PI控制雙環控制。控制器的基本流程如圖6。
5 參數整定
該系統是雙環PID控制,需要整定的是倒立擺的角度環與速度環四個PID參數。
5.1 平衡位置角度整定
確定平衡位置的角度,該角度是由機械結構的安裝位置決定。將擺桿拉至平衡位置,讀出并記錄該位置角位移傳感器的AD值,并將此AD值作為角度環中的“0”度,后面角度環測出的角度都是以此為標準換算出來[5]。轉動擺桿,觀察到角位移傳感器的AD值變化正常,開始直立調試。
5.2 角度環整定
角度環使用的是PID控制器中的PD控制器:當在單位時間內,倒立擺擺桿由一個角度運動到另一個角度時,角速度從零變大再變成零,這里的角速度就可以理解為此次角度與平衡位置的差值和上次角度差值的差值(因為角度差值除以單位時間就是角速度),這剛好契合PID控制器中微分部分參數的要求。
5.3 速度環整定
當角度環有偏差的時候,電機本身也會存在一定的速度,倒立擺以什么速度維持平衡,光靠直立環無法做到。因此該系統加入了速度環,采用PID控制器中的PI控制器控制速度環輸出的PWM值。
6 結束語
該文提出基于stm32f103rct6單片機倒立擺控制系統設計方案,并通過綜合調試完成倒立擺的穩定倒立、起擺倒立、旋轉倒立等動作,確認設計方案可行。
參考文獻:
[1] 翟彥彥. 一級倒立擺模糊控制、LQR控制和PID控制的比較研究[J]. 電子設計工程, 2016(6):116-124.
[2] 王俊. 基于倒立擺的PID控制算法的研究[J]. 現代電子技術, 2012(23):152-154.
[3] 羅文韜. 基于Matlab和Automation Studio的倒立擺控制仿真[J]. 農業開發與設備, 2017(7):63-67.
[4] 曾憲陽, 楊紅莉. 基于單片機控制的旋轉倒立擺建模分析與系統設計[J]. 電子技術應用, 2016(9):76-79.
[5] 房朝暉, 蔣云鵬, 袁浩. 旋轉二級倒立擺的雙閉環模糊控制[J]. 實驗技術與管理, 2017, 34(6):50-53.
[通聯編輯:謝媛媛]