基於STM32F103的直流電機調速系統

一、引言

電動機作爲當前最主要的驅動部件,應用範圍已遍及國民經濟的各個領域,隨着微處理器、電力電子、控制等技術的發展,電機控制技術以電力半導體變流器件的應用爲基礎,以電動機爲控制對象,以自動控制理論爲指導,以電子技術和微處理器技術以及計算機輔助技術爲手段,結合檢測技術和數據通信技術相結合,實現數字化迴路的電機控制成爲可能。直流電動機以其調速性能好、起動轉矩大等優點,在相當長的一段時間內,在電動機調速領域佔據着很重要的位置。

電機控制的主控芯片採用意法半導體公司生產的32位微控制器STM32F103C8T6,該芯片是基於ARM Cortex-M3核心的帶64K字節閃存的微控制器,其工作頻率最高可達到72MHz,性能高,功耗低。該型器件包含2個12位的模數轉換器,1μs轉換時間,多達16路轉換通道;3個16位通用定時器和1個16位帶死區控制和緊急剎車,可輸出互補PWM波的高級定時器;具有多達9個通信接口,包括USART接口、I2C接口、SPI接口、CAN接口和USB2.0全速接口等外設接口,滿足電機控制的功能需求。

 

二、設計任務及要求

1.總體方案構思,設計基於STM32的直流電機調速系統總體結構。

2.針對所要求的設計內容進行具體的原理設計,包括 STM32 最小系統、驅動電路、顯示、總線接口(485)等電路設計。

3.基於MATLAB的控制系統直流調速系統仿真。

4.速度控制性能調試(速度控制器採用比例、比例積分),並分析速度控制響 應曲線。

5.畫出原理圖,寫出設計說明書。撰寫運動控制系統綜合課程設計報告

三、設計方案

3.1系統結構框圖

參考系統框圖如圖 1 所示,主要包含電源模塊、微處理器 STM32 最小系統、通信模塊、編碼器、電機驅動、電機等部分組成。

採用STM32爲系統控制核心,STM32產生PWM脈衝控制電機驅動模塊,進而控制電機,同時STM32檢測編碼器信號,實現電機速度和角度的檢測,提供反饋信號。

3.2電壓模塊

微處理器等相關器件工作電壓爲3.3V,需要選用芯片AMS1117-3.3構成穩壓電路,詳細設計資料查閱器件手冊。

3.3 電源模塊

PWR是電源插座,1腳對應實物的尾部有孔的那個腳,也就是VCC,其餘兩腳爲接地腳,需要給VCC加一個接地的濾波電容。

3.3 STM32微處理器設計

STM32最小系統如圖3所示。查閱手冊進行STM32最小系統連接。(主要包括系統復位、電源、程序下載、晶振電路啓動模式選擇等)查閱手冊確定使用定時器產生脈寬調製(PWM)信號連線並與設計對應管腳與驅動電路的控制端相連。查閱手冊確定編碼接口使用哪一路定時器,設計對應管腳與編碼器輸出相連。

3.4 驅動電路設計

項目訓練實物驅動採用集成採用集成電機驅動芯片 TB6612。該芯片主要是由兩組四個大功率晶體管組成的H橋電路構成,採用其中一個H橋即可。四個晶體管分 爲兩組,交替導通和截止,用 STM32 控制 MOS 管使之工作在開關狀態,通過調整控制邏輯輸入脈衝的佔空比,調整電動機轉速。

四、MATLAB仿真

電機速度控制系統仿真採用MATLAB課程相關內容,利用MATLAB/Simulink可視化仿真工具, 按如下步驟完成仿真:

4.1電機傳遞函數

通過查閱運動控制系統課程和自動控制系統課程相關章節,複習直流電機模型的傳遞函數,依據電機基本參數值,通過計算確定各參數值。

4.2仿真模型建立

參考運動控制書本直流電機MATLAB模型,建立仿真模型。

4.3調試過程

通過不斷更改PI調節的參數,選取符合設計要求的Kp、Ki,調節系統的快速性,準確性和超調量等參數。

速性,準確性和超調量等參數。


Kp=0.09,Ki= 0.14時,系統調節時間2S,並且趨於穩定。超調量14.4%滿足設計要求。

五、軟件設計

設計要求:

1) 電源電壓:5V

2) 速度階躍響應超調量:10—15%

3) 開關頻率:16K

4) 速度迴路採樣週期:140Hz

1.總體思路

使用TIM3(設計要求16KHz)作爲PWM波發生器,TIM2捕獲編碼器脈衝數,並經過計算轉換爲速度,在TIM4(140Hz)中對電機轉速進行一階滯後動態調整濾波,然後經過PI調解更新TIM3中cnt寄存器值改變佔空比從而形成單閉環控制,實現電機轉速控制。

電機的閉環控制指作爲被控的輸出以一定方式返回到作爲控制的輸入端,並對輸入端施加控制影響的一種控制關係。在控制論中,閉環通常指輸出端通過“旁鏈”方式回饋到輸入,所謂閉環控制。輸出端回饋到輸入端並參與對輸出端再控制,這纔是閉環控制的目的,這種目的是通過反饋來實現的。
  當受控客體受干擾的影響,其實現狀態與期望狀態出現偏差時,控制主體將根據這種偏差發出新的指令,以糾正偏差,抵消干擾的作用。在閉環控制中,由於控制主體能根據反饋信息發現和糾正受控客體運行的偏差,所以有較強的抗干擾能力,能進行有效的控制,從而保證預定目標的實現。

3.主程序模塊

4.PWM發生模塊

使用TIM3的PWM輸出功能。

PWM 信號的頻率的計算公式爲: F = TIM_CLK/arr*psc, 其中 TIM_CLK 爲TIM3的系統時鐘爲72MHZ ,任務要求開關頻率爲16KHz,則設arr = 900, psc = 5。PWM的佔空比爲TIM_Pulse/TIM_Period,佔空比初始設爲5000,由PI調節器將其更新。

5.編碼器脈衝捕獲模塊

TIM_EncoderInterfaceConfig函數將TIM2配置爲編碼器輸入模式,TIM2 -> CNT返回編碼器脈衝數。

配置編碼器模式:

編碼器脈衝輸出函數,只用到了第一路信號TIM2->CNT,取出脈衝值後,將cnt寄存器值置位65536/2,即表示電機正反轉脈衝數中間值,定時器模式爲上下計數模式,可以判斷電機正轉還是反轉;

6.TIM4模塊

在TIM4中斷中進行濾波以及PI調節。要求速度迴路採樣頻率爲140Hz,TIM4用來計時psc=7200,每0.1ms,cnt加一次,設定tim4採樣週期爲140hz,計算得每7.1ms採樣一次設置 arr = 71,採樣後進行分時濾波和PI調節。

TIM4配置:

TIM4中斷服務函數:

Read_Encoder函數輸出的是編碼器脈衝數,將編碼器脈衝數*242得到電機的轉速,單位爲rad/min,若不濾波,得到的轉速波形雜波較多,所以採用一階濾波軟件濾波法,但濾波係數會對平滑度和調節時間產生影響,所以基於一階RC數字濾波的基礎上採用動態調整濾波方法;

7.一階RC數字濾波的基本算法

X爲輸入,Y爲濾波後得輸出值,則:

a爲與RC值有關的一個參數,稱爲濾波係數,其值決定新採樣值在本次濾波結果中所佔的權重,其值通常遠小於1,當採樣間隔t足夠小的時候,

-濾波係數越小,濾波結果越平穩,但是靈敏度越低;

-濾波係數越大,靈敏度越高,但是濾波結果越不穩定

-本次輸出值主要取決於上次濾波輸出值,當前採樣值對本次輸出貢獻比較小,起到修正作用;

改善辦法:

改變濾波係數,增大會導致平穩度降低,濾波係數太大濾波也就喪失意義;

將小數位參與計算,會給CPU帶來沉重運算壓力;

優化方法 —– 動態調整濾波係數

1、實現功能:

-當數據快速變化時,濾波結果能及時跟進,並且數據的變化越快,靈敏度應該越高(靈敏度優先原則)

-當數據趨於穩定,並在一個範圍內振盪時,濾波結果能趨於平穩(平穩度優先原則)

-當數據穩定後,濾波結果能逼近並最終等於採樣數據(消除因計算中小數帶來的誤差)

2、調整前判斷:

-數據變化方向是否爲同一個方向(如當連續兩次的採樣值都比其上次濾波結果大時,視爲變化方向一致,否則視爲不一致)

-數據變化是否較快(主要是判斷採樣值和上一次濾波結果之間的差值)

3、調整原則:

-當兩次數據變化不一致時,說明有抖動,將濾波係數清零,忽略本次新採樣值

-當數據持續向一個方向變化時,逐漸提高濾波係數,提供本次採樣值得權;

-當數據變化較快(差值>消抖計數加速反應閾值)時,要加速提高濾波係數;

8.PI調節模塊

本設計採用了增量式PID算法。

所謂增量式 PID 是指數字控制器的輸出只是控制量的增量 ∆uk 。當執行機構需要的控制量是增量,而不是位置量的絕對數值時,可以使用增量式 PID 控制算法進行控制。
       增量式 PID 控制算法可以通過(式 2-2)推導出。由(式 2-2)可以得到控制器:

第 k-1個採樣時刻的輸出值爲 :

增量式 PID 控制算法公式爲:

將電機轉速與目標轉速進行比較,對偏差進行增量式PI調節:

9.可視調試模塊

將電機轉速輸送到匿名科創地面站,可得到轉速波形,方便進行實物調試。

數據通信函數採用匿名科創地面站提供的通信協議下位機示例代碼,調用函數

void ANO_DT_Send_GS(u16 goal, u16 speed) ;向匿名科創地面站發送數據。

六、控制性能調試

使用匿名科創地面站觀察電機轉速波形。

目標轉速2000

1.佔空比爲50%,不加PI調節器,開環時,波形如下:

此時波形未達預期要求,轉速性能不佳,轉速波動較大;

2.設KP = 2, KI = 0.1,無濾波器時波形如下:

增加PI調節器後,電機轉速性能還是沒有達標,沒有濾波,脈衝較多。

3.設KP = 2, KI = 0.1,增加濾波器(濾波係數0.3)時波形如下:

增加濾波器後,有效減少了雜波震盪幅度,但此時達到穩態後震盪依舊較大;

4.設KP = 1, KI = 0.05,增加濾波器(濾波係數0.3)時波形如下:

調整KP、KI參數,選取較爲適合的參數:

如果階躍響應的超調量太大,經過多次振盪才能穩定或者根本不穩定,應減小比例係數、增大積分時間。

如果階躍響應沒有超調量,但是被控量上升過於緩慢,過渡過程時間太長,應按相反的方向調整參數。

如果消除誤差的速度較慢,可以適當減小積分時間,增強積分作用。

5.設KP = 1, KI = 0.05,增加濾波器(濾波係數0.1)時波形如下:

適當減小濾波係數,使得波形更加平滑一些;

6.設KP = 1, KI = 0.05,增加濾波器(濾波係數0.01)時波形如下:

但是在減小濾波係數提升平滑性的同時,增加的調節時間,嚴重影響了系統的快速性,所以考慮採用動態調整濾波係數的方法,來達到一個平衡點。

7.設KP = 1, KI = 0.05,增加濾波器(濾波係數動態調整)時波形如下:

此時超調量爲 (2030 - 2000)/ 2000 =1.5% < 15%符合要求,且調節時間較短,速度基本穩定。

對於動態調整濾波係數的優點分析:

設KP = 1, KI = 0.05,增加濾波器(濾波係數不同)時波形如下對比:

 

在儘量提升濾波結果波形平滑度的情況下,實時調整濾波係數,在實際轉速與目標轉速相差較大時,採用較大濾波係數,提升靈敏度,犧牲平滑性,快速調整速度;在實際轉速接近目標轉速時,採用較小濾波係數,以提升波形的穩定性,提升電機轉速的穩定性。

其餘目標轉速,以及電機反轉目標轉速調整結果;

目標轉速1500

8.設KP = 1, KI = 0.05,增加濾波器(濾波係數動態調整)時波形如下:

目標轉速1500調整正常;

目標轉速-2000

9.設KP = 1, KI = 0.05,增加濾波器(濾波係數動態調整)時波形如下:

目標轉速-2000調整正常,達到預期要求;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章