
減速電機:減速電機克服了普通直流電機扭矩小的缺點,而且價格較低,通過 PWM 控制 平均電流,較易控制其轉速。
37GB-520直流減速電機參數 | ||||
減速比 | 額定電壓 v | 空載電流 mA | 轉速 rpm | 扭距 kg.cm |
1:30 | 12 | 180 | 330 | 1.5 |
TB6560 內部集成雙全橋 MOSFET 驅動,輪換效率較高,單路可提供約 1A 的電流,內 置溫度保護芯片,具有過流保護。
精密導電塑料電位器電路簡單,利用 AD 測量出電阻分壓值,即可推算出轉過的角度。 且選擇的處理器 STM32 自帶 8 路 AD,所以符合本系統設計的要求。
光電編碼器(接口已留下) 光電編碼器精度高,數字脈沖輸出,比較穩定。但價格較高。接口留下作為擴展。
獨立按鍵輸入。在輸入量不多的情況下,獨立按鍵輸入編程簡單,易于實現,是輸 入的首選。本系統中實際用了 6 個獨立按鍵:1個單個按鍵和 1 個五向按鍵。五向按鍵 如圖 1.1 所示:

圖 1.1 五向按鍵實物圖 使用五向按鍵,可以方便的進行 OLED 菜單的上下移動,左右調節參數,按下確認。 串口輸入。串口輸入操作方便,可以同時輸入較多參數,符合本系統設計要求 本系統使用了以上兩種方案,可根據需要選擇
采用理論建模的方法,在實際系統設計時會碰到很多問題。比如本系統中,各機械 連接間的摩擦力,減速電機齒輪的回程差等,這些參數都無法測得。
這種情況是需要控制的對象的參數不能完全的測量,不能得到完整的數學模型時, 需要根據經驗和實踐調試來確定參數。PID 控制技術就是用來測量不被完全掌控的系統 參數的。PID(比例(proportion)、積分(integral)、導數(derivative))通過線性組 合構成控制量,用這一控制量對被控對象進行控制,這樣的控制器稱 PID 控制器。


首先必須明確 PID 算法是基于反饋的。一般情況下,這個反饋就是速度傳感器返 回給單片機當前電機的轉速簡單的說,就是用這個反饋跟預設值進行比較,如果轉速偏 大,就減小電機兩端的電壓(電流);相反,則增加電機兩端的電壓(電流) 。
比例 P:比例項部分其實就是對預設值和反饋值差值的放大倍數。 比例控制是一種最簡單的控制方式。其控制器的輸出與輸入誤差信號成比例關系。當僅 有比例控制時系統輸出存在穩態誤差(Steady-state error)。 舉個例子,假如原來電機兩端的電壓為 U0,比例 P 為0.2,輸入值是 800,而反饋值是
1000,那么輸出到電機兩端的電壓應變為 U0+0.2*(800-1000)。從而達到了調節速度 的目的。顯然比例 P 越大時,電機轉速回歸到輸入值的速度將更快,及調節靈敏度就越 高。從而,加大 P 值,可以減少從非穩態到穩態的時間。但是同時也可能造成電機轉速 在預設值附近振蕩的情形,所以又引入積分 I 解決此問題。
系統,如果在進入穩態后存在穩態誤差,則稱這個控制系統是有穩態誤差的或簡稱有差 系統(System with Steady-state Error)。為了消除穩態誤差,在控制器中必須引入“積分 項”。積分項對誤差取決于時間的積分,隨著時間的增加,積分項會增大。這樣,即便 誤差很小,積分項也會隨著時間的增加而加大,它推動控制器的輸出增大使穩態誤差進 一步減小,直到接近于零。 因此,比例+積分(PI)控制器,可以使系統在進入穩態后幾乎無穩態誤差。
積分 I:顧名思義,積分項部分其實就是對預設值和反饋值之間的差值在時間上進行 累加。當差值不是很大時,為了不引起振蕩。可以先讓電機按原轉速繼續運行。當時要
振蕩現象的發生。可見,積分項的調節存在明顯的滯后。而且 I 值越大,滯后效果越明 顯。

圖 2.3 積分作用響應曲線 積分環節主要是用來消除靜差,所謂靜差,就是系統穩定后輸出值和設定值之間的
差值,積分環節實際上就是偏差累計的過程,把累計的誤差加到原有系統上以抵消系統 造成的靜差。


差的作用就應該是零。可以在一定程度上緩沖振蕩。比例項的作用僅是放大誤差的幅值, 而增加 “微分項”,能預測誤差變化的趨勢,這樣,具有比例+微分的控制器,就能夠提 前使抑制誤差的控制作用等于零,甚至為負值,從而避免了被控量的嚴重超調。 所以對有較大慣性或滯后的被控對象,比例+微分(PD)控制器能改善系統在調節過程 中的動態特性
系統偏差信號的變化率 e(t)-e(t-1),具有預見性,能預見偏差變化的趨勢,產生超 前的控制作用,在偏差還沒有形成之前,已被微分調節作用消除,因此可以改善系統的 動態性能。但是微分對噪聲干擾有放大作用,加強微分對系統抗干擾不利。 積分和微 分都不能單獨起作用,必須與比例控制配合。

圖 2.5 微分作用響應曲線 圖 2.6 PD 調節器的階躍響應曲線 總之,比例調節依據“偏差的大小”來動作,它的輸出與輸入偏差的大小成比例。比例調 節及時有力,但有余差。在系統中起著穩定被調參數的作用; 積分調節依據“偏差是否存在”來動作,它的輸出與偏差對時間的積分成比例,只有當 余差消失時,積分才會停止,其作用是消除余差; 微分調節依據“偏差變化速度”來動作,它的輸出與輸入偏差變化的速度成比例,其 效果是阻止被調參數的一切變化,有超前調節的作用,對滯后大的對象有很好的效果。
由各個參數的控制規律可知,比例 P 使反應變快,微分 D 使反應提前,積分 I 使反應滯 后。在一定范圍內,P,D 值越大,調節的效果越好。各個參數的調節原則如下:
• PID 其實有點小小的智能,P 是對現在情況的應對,I 是對過去的記憶,D 是對未 來的預測。
• P 是當下,在 3 個量里權重最大,是基礎,因為畢竟要解決當下問題,要對當下 做出反應。PID 有時可以簡化為 PI 或PD,但是從來沒有見過用 ID 就能控制住 的例子。
• I 是對過去的記憶,如果過去一段時間的曲線太高,就會自動將曲線整體下移, 反之亦然。至于記憶的時間窗口期有多長,與要調整的量變化速度有關。變化緩 慢的物理量時間窗口要長一些,如溫度;變化迅速的物理量要短一些,比位置。
• D 是對未來的預測,是對未來趨勢的一種預測。變化迅速的物理量容易引起超調 或震蕩,通過微分量預測上升的速度,從而對輸出量進行適當縮小避免“沖過頭”。 變化緩慢的量又太慢,D 可以適當推動調整速度。
Ziegler-Nichols 方法是基于系統穩定性分析的 PID 整定方法.在設計過程中無需考慮任 何特性要求,整定方法非常簡單,但控制效果卻比較理想.具體整定方法如下:
上式中 Kp 為比例控制參數 Kd 為微分控制參數 Ki 為積分控制參數
• 確定比例增益 P 時,首先去掉 PID 的積分項和微分項,一般是令 Ti=0、Td=0(具 體見 PID 的參數設定說明),使 PID 為純比例調節。輸入設定為系統允許的最大 值的 60%~70%,由 0 逐漸加大比例增益 P,直至系統出現振蕩;再反過來,從此 時的比例增益 P 逐漸減小,直至系統振蕩消失,記錄此時的比例增益 P,設定 PID 的比例增益 P 為當前值的 60%~70%。比例增益 P 調試完成。
比例增益 P 確定后,設定一個較大的積分時間常數 Ti 的初值,然后逐漸減小 Ti, 直至系統出現振蕩,之后在反過來,逐漸加大Ti,直至系統振蕩消失。記錄此時 的 Ti,設定 PID 的積分時間常數 Ti 為當前值的 150%~180%。積分時間常數 Ti 調試完成。
積分時間常數 Td 一般不用設定,為 0 即可。若要設定,與確定 P 和 Ti 的方法相 同,取不振蕩時的 30%。
參數整定找最佳, 從小到大順序查。 先是比例后積分, 最后再把微分加。 曲線振蕩很頻繁, 比例度盤要放大。 曲線漂浮繞大彎, 比例度盤往小扳。 曲線偏離回復慢, 積分時間往下降。 曲線波動周期長, 積分時間再加長。 曲線振蕩頻率快, 先把微分降下來。 動差大來波動慢, 微分時間應加長。 理想曲線兩個波, 前高后低四比一。 一看二調多分析, 調節質量不會低。


2. 本系統 PID 控制原理用角度傳感器測擺桿的角度,作為角度環(角度 PID 參數)。兩組 PID 參數共同決定電 機驅動的 PWM 占空比。定時器 5 中斷負責平衡位置 PID 調節。
本系統的全套裝置如圖3.1所示:圖3.1 本系統的機械結構及各電路模塊圖 本系統的電路板采用模塊插件式,主要模塊請見圖3.2,包括:




圖 3.4 OLED 第 1 頁菜單內容說明可以通過 5 向按鍵上下鍵移動當前選擇項,第 1 菜單中通過 5 向按鍵左右鍵增減參數值, 按中間鍵(第 1 頁菜單需要長按 2 秒以上)鎖定保存當前值。

校準平衡位置角度后,您可以進行下面的操作。 正常操作步驟:
上電后,OLED顯示第1面菜單,為各PID參數值,注意右下的OFF狀態,表示目前電機 驅動模塊TB6612處于禁止工作狀態,需要按下列步驟操作:
2) 上電后電機處于禁止狀態,通過按“啟/停”按鍵(見圖3.3)使能電機驅動使 能。此時右下顯示ON狀態;
3) 通過按“五向按鍵”上下鍵,切換到OLED菜單第2頁,選擇相應功能; 目前的菜單操作功能有兩項:
start:起擺 cycle:(原來標識為roll360):轉圈 此外,起擺直立后,一直有抗擾動功能。
5) 任何時候想停止電機工作,可按下“啟/停”按鍵 說明:本系統的起擺的思路是讓減速電機正向運動一定時間,形成一定擺角后,再反向 運動一定時間,一個來回便可豎立,進入平衡調節。

如圖3.6所示,通過五向按鍵修改PID參數后,長按中間鍵2秒以上,第一行會出現鎖 定圖標
,表示參數被記錄保存。
圖3.6第2頁菜單修改PID參數 如圖3.6所示,將擺桿垂直向上放置平衡位置,然后通過五向按鍵選擇”LockAngle”
選項,按5向按鍵中間鍵,可以重置平衡位置角度參數。此時第一行會出現鎖定圖標
, 表示參數被記錄保存。
系統中用的一階旋轉倒立擺機械結構為網上購買,機械結構包括:U 型夾座、支 撐桿、電機、過孔滑環、橫梁、角度傳感器及擺桿組成,如圖 3‐1 所示。

其中,U 型夾座可以將整個系統方便的固定在桌面上。 過孔滑環在電機轉動時起類似電刷的作用,可以有效避免信號線纏繞的情況。 擺桿直接與角度傳感器的軸固定,通過帶動軸的轉動,改變角度傳感器當前的分壓
一階旋轉倒立擺系統的原理框圖如圖 3‐2 所示: 控制模塊控制轉速測量模塊及角度測量模塊,得到當前電機的轉動速度及擺桿所處
角度,通過 PID 算法計算出所要進行操作,控制電機驅動模塊驅動電路加、減速,以及 是否反向旋轉。當前的運動狀態及 PID 參數在OLED 上顯示。
系統的啟動停止通過一個獨立按鍵控制,具體 PID 參數的調節,可以通過連接底板 上的 5 向按鍵調節,也可以通過串口調試助手在電腦上輸入參數。

模塊名稱 | 所用端口 | 占用中斷 | 說明 | |
電機測速 | (A6,PA7) | 定時器 3 | 兩路計數器,編碼器模式。 接電機電路上兩路霍爾元件脈沖輸出 | |
光電編碼器 | (A8,A9) (B6,B7) | 備用 | ||
驅動模塊 | 方向控制 | A 路:(B4,B15) B 路:(B12,B13) | (TB6612 只用到 A 路) | |
使能 | A11 | |||
PWM | A 路:A3 B 路:B14(未用) | 定時器 1 | (TB6612 只用到 A 路) | |
角度傳感器 AD | A2,B0(備用) | 查詢方式實現 | ||
串口通訊: | B10,B11 | |||
啟動/停止 | A12 | 外部中斷 12 | ||
五向按鍵 | 上 | A10 | 外部中斷 10 | |
下 | A5 | 外部中斷 5 | ||
左 | A0 | 外部中斷 0 | ||
右 | A4 | 外部中斷 4 | ||
中 | A1 | 外部中斷 1 | ||
系統板上測試按鍵 | A0 | 與五向按鍵 A0 重合 | ||
OLED 顯示 | B8(clk),B9(data) | 軟件 IIC 實現 | 可以用硬件 IIC | |
定時器 5 | 正常 PID 調節間隔 | |||
定時器 6 | 旋轉一周 PID 調節間隔 | |||

3-3 所示。PCB 板見圖 3-4.圖 3.4 連接底板 PCB 圖 通過連接底板,將系統中各電路模塊連接,保證系統能正常、穩定的運行。
用導電塑料角位移傳感器的一階倒立擺,只需要接右邊三腳,最左邊 的一個腳接了 STM32 的 AD8,在擴展為二階倒立擺時使用
用光電編碼器做角度傳感器的一階倒立擺,只需要接右邊四個 腳,最左邊的兩個腳接了 STM32 的 PB6、PB7,在擴展為二階倒立擺時使用



A.頂層視圖 B.底層視圖 圖 3.6 STM32 單片機最小系統 PCB 圖
電機驅動芯片選擇的是東芝半導體公司生產直流電機驅動芯片 TB6612FNG,其結構 為 MOSFET‐H 橋,能承受較大電流,有兩個輸出通道,輸出兩路 PWM 波,可以同時驅 動兩路直流電機。驅動模塊如圖 3.6 所示:

圖 3.7 電機驅動芯片實物圖 TB6612FNG 每個通道輸出最高 1.2A 的連續驅動電流; 啟動峰值電流達 2A/3.2A(連續脈沖/單脈沖); 四種電機控制模式:正轉、反轉、制動、停止;
PWM 支持頻率高達 100KHz; 片內低壓檢測電路和熱停機保護電路; 工作溫度:‐20~85℃;
A 電機輸入端 2 ‐‐‐‐‐‐AIN2 VCC ‐‐‐‐‐‐邏輯電平輸入端 A 電機輸入端 1 ‐‐‐‐‐‐AIN1 GND ‐‐‐‐‐‐ 接地 正常工作/待機狀態控制端‐‐‐‐‐‐STBY AO1 ‐‐‐‐‐‐‐ A 電機輸出端 1
B 控制信號輸入端‐‐‐‐‐‐PWMB BO1 ‐‐‐‐‐‐ B 電機輸出端 1 接地‐‐‐‐‐‐GND GND ‐‐‐‐‐‐‐ 接地 TB6612FNG 功能表見表 3‐1。

根據表 3‐1 所示,TB6612FNG 使用時注意其 STBY 引腳應接高電平。 本設計使用的 TB6612FNG 電機驅動模塊原理圖見圖 3‐6:

本設計選用的角度傳感器是 WDD35D4 角度傳感器。這個傳感器是一個精密可調電 阻,如圖 3‐7 所示。中間抽頭(2 腳)接數模轉換器(ADC),根據 AD 轉換器的值可判 斷當前的角度值。

圖 3.9 WDD35D4 角度傳感器是實物圖與原理圖通過直角支架將角度傳感器固定在倒立擺橫桿的頂端,轉軸用機米螺絲固定倒立 擺的擺桿。電機轉動帶動擺桿擺動,擺桿帶動角度傳感器軸轉動。滑動變阻器的阻值變 化,通過片上 AD 測得第 2 腳的分壓值,可以推算出當前的角度值。
注意在系統啟動之前,要確定擺桿豎立時,2 腳測得的分壓值,以此作為平衡狀態 的基本參數。系統機械結構固定好后,可以通過編程測試這一值。但本設計中采用通過 按鍵實時確定平衡位置的分壓值,具體方法請見軟件設計部分。
系統中選用了開關式霍爾傳感器 44E 和磁環作為測量電機轉速的方式。選用的磁 環為 26 極充磁,每一對磁極通過霍爾傳感器時,會產生一個脈沖。磁環測量圖如圖 3‐8 所示。

采用了霍爾傳感器來測量磁環轉動時帶來的磁場變化,霍爾傳感器前轉過 1 對磁 極產生一個脈沖。當帶動磁環轉動的減速電機后軸轉動一圈,一個霍爾傳感器上可以產 生 13 個脈沖。而選用的直流減速電機的減速比為 1:30,所以電機前軸轉動一圈,一個 霍爾傳感器上可以產生 13*30=390 個脈沖。圖 3‐9 所示的是增量式輸出的霍爾編碼器 模塊,原理圖如圖 3‐10 所示。

圖 3.11 霍爾測速模塊實物 圖 3.12 霍爾測速模塊原理圖 模塊中采用了兩個相位角相差 90 度的霍爾傳感器來測量磁環轉動時帶來的磁場
變化,能過判斷兩個霍爾傳感器的輸出脈沖的先后關系得到電機轉動的方向。 編碼器輸出 AB 相測速脈沖,輸出方波相位存在 90 度相位差,如圖 3‐11 所示。通

編碼器軟件四倍頻技術:以圖 3.11 為例,常用的測速方法是 A 相或者 B 相的下降 沿進行計數,這樣前軸轉一圈,一個霍爾元件測得的計數值只有 390 個。而使用軟件四 倍頻技術,對霍爾元產生的脈沖采用沿觸發。兩個霍爾元,A 相和 B 相的上升沿和下降 沿個數都進行統計,測得的計數值就有 1560 個(390*4=1560 個)。這項技術可以將 編碼器的精度提高 4 倍,這樣減速電機前軸轉一圈,編碼器的輸出脈沖可達四倍,對測 速精度的提高有很大幫助。


OLED 是有機發光二極管,又稱有機發光半導體。OLED 顯示與液晶顯示的發光原理 不同,具有自發光、厚度薄、廣視角、幾乎無窮高的對比度、較低耗電、極高反應速度 等優點。本系統選用的顯示模塊是 9.6 英寸的 OLED 顯示模塊,點陣為 128*64,足夠顯 示各項相關信息。
顯示模塊的控制信號通信方式為 IIC 總線控制。OLED 顯示模塊實物如圖 3‐13。如圖 所示,該顯示屏模塊只有四個管腳,VCC 管腳是顯示屏的電源正,可以接 3.3V 到 5V 的 電源,GND 管腳是 OLED 顯示屏的電源地,SCL 管腳表示 OLED 的 IIC 時鐘線,SDA 管腳 表示OLED 的 IIC 數據線。OLED 顯示屏可以顯示多種顏色,同時可以顯示數字、字符、 漢字、圖形,功能強大,使用方便。(由于進貨批次不同,您收到的 OLED 可能是單色 的)

1) 電機驅動電源,需要 12V 電壓,所以開關電源直接連接到驅動芯片 TB6612 的電機 電源口;
2) 轉速測量模塊中,霍爾元件需要 5V 電壓供電,12V 轉 5V 是采用了一款商用開關電 源降壓模塊




圖 4‐4 OLED 頁面 1 菜單中五向按鍵按下外部中斷流程圖



注:串口數據協議格式:“kpa kia kda kpv kdv\n",數據間以空格分隔。 接收到數據后用atoi()函數提取數據。 STM32接收到數據如果并未保存,如要保存,須在第1頁菜單內長按5向按鍵中間鍵2秒以 上。
倒立擺說明匯總Ver2.5.pdf
(3.44 MB, 下載次數: 21)
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |