




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、電氣控制技術電氣控制技術研究生課程設計報告研究生課程設計報告題題 目目 基于 STM32 的直流電機 PID 調速系統 學學 院院 機械與汽車工程學院 專業班級專業班級 車輛工程 學學 號號 221601852020 學生姓名學生姓名 李躍軒 指導教師指導教師 康 敏 完成日期完成日期 2017 年 01 月 03 日 智能控制基礎研究生課程設計報告第 1 頁頁/共共 14 頁頁目錄1.緒論.12.設計方案.13系統硬件電路設計.23.1 整體電路設計 .23.2 最小單片機系統設計 .33.2.1STM32F103 復位電路 .33.2.2 電源電路.43.3 電機驅動電路設計 .53.4
2、光電碼盤編碼器電路設計 .63.5 顯示電路設計 .63.6 按鍵電路設計 .74.系統軟件設計.74.1 PID 算法.74.2 電機速度采集算法 .85.系統調試.85.1 軟件調試 .85.2 系統測試與分析 .96.總結與展望.10附錄一.11附錄二.16智能控制基礎研究生課程設計報告11.緒論緒論本文主要研究了利用 STM32 系列單片機,通過 PWM 方式控制直流電機調速的方法。PWM 控制技術以其控制簡單、靈活和動態響應好的優點而成為電力電子技術最廣泛應用的控制方式,也是人們研究的熱點。由于當今科學技術的發展已經沒有了學科之間的界限,結合現代控制理論思想或實現無諧振軟開關技術將會
3、成為PWM 控制技術發展的主要方向之一。本文就是利用這種控制方式來改變電壓的占空比實現直流電機速度的控制。采用的芯片組成了 PWM 信號的發生系,然后通過 L298N 放大來驅動電機。利用光電編碼盤器測得電機速度,然后反饋給單片機,在內部進行 PID 運算,輸出控制量完成閉環控制,實現電機的調速控制。2.設計方案設計方案根據系統設計的任務和要求,設計系統方框圖如圖 1 所示。圖中控制器模塊為系統的核心部件,鍵盤和顯示器用來實現人機交互功能,其中通過鍵盤將速度參數輸入到單片機中,并且通過控制器顯示到顯示器上。在運行過程中控制器產生PWM 脈沖送到電機驅動電路中,經過放大后控制直流電機轉速,同時利
4、用速度檢測模塊將當前轉速反饋到控制器中,控制器經過數字 PID 運算后改變 PWM 脈沖的占空比,實現電機轉速實時控制的目的。按鍵模塊顯示模塊控制器模塊電機驅動模塊直流電機碼盤PWM脈沖圖 1 系統方案框圖智能控制基礎研究生課程設計報告23系統硬件電路設計系統硬件電路設計3.1 整體電路設計整體電路設計單片機直流調速系統可實現對直流電動機的平滑調速。PWM 是通過控制固定電壓的直流電源開關頻率,從而改變負載兩端的電壓,進而達到控制要求的一種電壓調整方法。在 PWM 驅動控制的調整系統中,按一個固定的頻率來接通和斷開電源,并根據需要改變一個周期內“接通”和“斷開”時間的長短。通過改變直流電機電樞
5、上電壓的“占空比”來改變平均電壓的大小,從而控制電動機的轉速。因此,PWM 又被稱為“開關驅動裝置” 。本系統以 STM32 單片機為核心,通過單片機控制,C 語言編程實現對直流電機的平滑調速。本直流電機調速系統以單片機系統為依托,根據 PWM 調速的基本原理,以直流電機電樞上電壓的占空比來改變平均電壓的大小,從而控制電動機的轉速為依據,實現對直流電動機的平滑調速,并通過單片機控制速度的變化。本文所研究的直流電機調速系統主要是由硬件和軟件兩大部分組成。硬件部分是前提,是整個系統執行的基礎,它主要為軟件提供程序運行的平臺。而軟件部分,是對硬件端口所體現的信號,加以采集、分析、處理,最終實現控制器
6、所要實現的各項功能,達到控制器自動對電機速度的有效控制。本系統硬件資源分配見圖 2 所示。采用 STM32F103 單片機作為核心器件,轉速檢測模塊作為電機轉速測量裝置,通過 STM32F103 的 PA1(A 相)將電脈沖信號送入單片機處理,L298 作為直流電機的驅動模塊,利用 320240TFTLCD 顯示器和3 個獨立按鍵作為人機接口。智能控制基礎研究生課程設計報告3S ST TM M3 32 2F F1 10 03 3Z ZE ET T6 6碼盤測速直流電機電機驅動模塊L298NTFT顯示屏按鍵模塊PA1PA3 RESET:PE1KEY-3:PE3KEY-2:PE2PGPDGND圖
7、2 系統電路連接及硬件資源分配圖3.2 最小單片機系統設計最小單片機系統設計STM32F103ZETT6 作為 MCU,該芯片是 STM32F103 里面配置非常強大的了,它擁有的資源包括:64KB SRAM、512KB FLASH、2 個基本定時器、4 個通用定時器、2 個高級定時器、2 個 DMA 控制器(共 12 個通道) 、3 個 SPI、2 個 IIC、5 個串口、1 個 USB、1 個 CAN、3 個 12 位 ADC、1 個 12 位 DAC、1 個 SDIO 接口、1 個 FSMC 接口以及 112 個通用 IO 口。該芯片的配置十分強悍,并且還帶外部總線(FSMC)可以用來外
8、擴 SRAM 和連接 LCD 等,通過 FSMC 驅動 LCD,可以顯著提高 LCD 的刷屏速度,是 STM32F1 家族常用型號里面,最高配置的芯片了。3.2.1STM32F103 復位電路復位電路STM32F103 的復位電路如圖 3 所示:智能控制基礎研究生課程設計報告4 圖 3 復位電路圖因為 STM32 是低電平復位的,所以我們設計的電路也是低電平復位的,這里的R3 和 C12 構成了上電復位電路。同時,開發板把 TFT_LCD 的復位引腳也接在RESET 上,這樣這個復位按鈕不僅可以用來復位 MCU,還可以復位 LCD。3.2.2 電源電路電源電路STM32F103板載的電源供電部
9、分,其原理圖如圖4所示:圖 4 電源電路圖中,總共有3個穩壓芯片:U12/U13/U15,DC_IN用于外部直流電源輸入,范圍是DC624V,輸入電壓經過U13 DC-DC芯片轉換為5V電源輸出,其中D4是防反接二極管,避免外部直流電源極性搞錯的時候,燒壞開發板。K2為開發板的總電源智能控制基礎研究生課程設計報告5A1A2SE N111Y 121Y 23Vs41A 151E N61A 27GN D8Vcc92A 1102A 2122E N112Y 1132Y 214SE N215U5L298ND4D3D1D2C1020FC920F+5V+12V+12VR1470R25KR45KR3470R54
10、70MG 1P2.7P2.6P2.5開關,F1為1000ma自恢復保險絲,用于保護USB。U12為3.3V穩壓芯片,給開發板提供3.3V電源,而U15則是1.8V穩壓芯片,供VS1053的CVDD使用。3.3 電機驅動電路設計電機驅動電路設計驅動模塊是控制器與執行器之間的橋梁,在本系統中單片機的 I/O 口不能直接驅動電機,只有引入電機驅動模塊才能保證電機按照控制要求運行,在這里選用L298N 電機驅動芯片驅動電機,該芯片是由四個大功率晶體管組成的 H 橋電路構成,四個晶體管分為兩組,交替導通和截止,用單片機控制達林頓管使之工作在開關狀態,通過調整輸入脈沖的占空比,調整電動機轉速。其中輸出腳(
11、SENSEA 和SENSEB)用來連接電流檢測電阻,Vss 接邏輯控制的電源。Vs 為電機驅動電源。IN1-IN4 輸入引腳為標準 TTL 邏輯電平信號,用來控制 H 橋的開與關即實現電機的正反轉,ENA、ENB 引腳則為使能控制端,用來輸入 PWM 信號實現電機調速。其電路如圖 5 所示,利用兩個光電耦合器將單片機的 I/O 與驅動電路進行隔離,保證電路安全可靠。這樣單片機產生的 PWM 脈沖控制 L298N 的選通端,使電機在PWM 脈沖的控制下正常運行,其中四個二極管對芯片起保護作用。圖 5 電機驅動電路智能控制基礎研究生課程設計報告63.4 光電碼盤編碼器電路設計光電碼盤編碼器電路設計
12、在本系統中由于要將電機本次采樣的速度與上次采樣的速度進行比較,通過偏差進行 PID 運算,因此速度采集電路是整個系統不可缺少的部分。本次設計中應用了比較常見的光電測速方法來實現,其具體做法是將電機軸上固定一圓盤,且其邊緣上有 N 個等分凹槽如圖 6 所示,在圓盤的一側固定一個發光二極管,其位置對準凹槽處,在另一側和發光二極光平行的位置上固定一光敏三極管,如果電動機轉到凹槽處時,發光二極管通過縫隙將光照射到光敏三極管上,三極管導通,反之三極管截止,電路如圖 7 所示,從圖中可以得出電機每轉一圈在 PA3 的輸出端就會產生N 個低電平。這樣就可根據低電平的數量來計算電機此時轉速了。例如當電機以一定
13、的轉速運行時,PA3 將輸出如圖 7 所示的脈沖,若知道一段時間 t 內傳感器輸出的低脈沖數為 n,則可求出電機轉速。 圖 6 電機速度采集方案 圖 7 傳感器輸出脈沖波形3.5 顯示電路設計顯示電路設計根據設計要求要對電機的轉速進行讀取,因此在電路中加入顯示模塊是很有必要的。在系統運行過程中需要顯示的數據比較多,而且需要漢字顯示,在這里選用320240 液晶顯示器比較適合,它是一種圖形點陣液晶顯示器,主要由行驅動器/列驅動器及 320240 全點陣液晶顯示器組成,可完成漢字顯示。圓盤 光敏三極管發光二極管+5VP3.3470200R1R2智能控制基礎研究生課程設計報告7TFTLCD 模塊采用
14、 16 位的并方式與外部連接,之所以不采用 8 位的方式,是因為彩屏的數據量比較大,如果用 8 位數據線,就會比 16 位方式慢一倍以上,我們當然希望速度越快越好,所以我們選擇 16 位的接口。3.6 按鍵電路設計按鍵電路設計根據設計需求,本系統中使用了 3 個獨立按鍵用以實現對電機轉速的設定以及復位功能。鍵盤操作說明:在系統開始運行時,320240TFTLCD 將顯示開機界面,按KEY_2 增加速度,按 KEY_3 減少速度,按 KEY_RESET 鍵是復位,使程序回到初始狀態。4.系統軟件設計系統軟件設計4.1 PID 算法算法本系統設計的核心算法為 PID 算法,它根據本次采樣的數據與設
15、定值進行比較得出偏差,對偏差進行 P、I、D 運算最終利用運算結果控制 PWM 脈沖的占空)(ne比來實現對加在電機兩端電壓的調節,進而控制電機轉速。其運算公式為: 1( ) (n)(n1)(n) (n)2 (n1)(n2)pdutK eeKeK eee(1)如何選擇控制算法的參數,要根據具體過程的要求來考慮。一般來說,要求被控過程是穩定的,能迅速和準確地跟蹤給定值的變化,超調量小,在不同干擾下系統輸出應能保持在給定值,操作變量不宜過大,在系統和環境參數發生變化時控制應保持穩定。顯然,要同時滿足上述各項要求是很困難的,必須根據具體過程的要求,滿足主要方面,并兼顧其它方面。PID 調節器是一種線
16、性調節器,它根據給定值與實際輸出值構成的控)(tr)(tc制偏差: = )(te)(tr)(tc(2)智能控制基礎研究生課程設計報告8將偏差的比例、積分、微分通過線性組合構成控制量,對控制對象進行控制,故稱為 PID 調節器。在實際應用中,常根據對象的特征和控制要求,將 P、I、D 基本控制規律進行適當組合,以達到對被控對象進行有效控制的目的。例如,P 調節器,PI 調節器,PID 調節器等。模擬 PID 調節器的控制規律為 )()(1)()(0dttdeTdtteTteKtuDtIp(3)式中,為比例系數,為積分時間常數,為微分時間常數。PKITDT簡單的說,PID 調節器各校正環節的作用是
17、:(1)比例環節:即時成比例地反應控制系統的偏差信號,偏差一旦產生,)(te調節器立即產生控制作用以減少偏差;(2)積分環節:主要用于消除靜差,提高系統的無差度。積分作用的強弱取決于積分時間常數,越大,積分作用越弱,反之則越強;ITIT(3)微分環節:能反映偏差信號的變化趨勢(變化速率) ,并能在偏差信號的值變得太大之前,在系統中引入一個有效的早期修正信號,從而加快系統的動作速度,減少調節時間。4.2 電機速度采集算法電機速度采集算法本系統中電機速度采集是一個非常重要的部分,它的精度直接影響到整個控制的精度。在設計中采用了光電傳感器做為測速裝置,其計算公式為: v= r/min 60tNn(3
18、)式中,速度 v 的誤差主要是由圓盤邊緣上的凹槽數的多少決定的,為了減少系統誤差應盡量提高凹槽的數量,在本次設計中取凹槽數 N 為 260,采樣時間 t 為10ms。智能控制基礎研究生課程設計報告95.系統調試系統調試5.1 軟件調試軟件調試在程序編寫的過程中,出現了很多問題,包括鍵盤掃描處理、PWM 信號發生電路的控制、以及單片機控制直流電機的轉動方向等問題,雖然問題不是很大,但是也讓我研究了好長時間,在解決這些問題的時候,我不斷向老師和同學請教,希望能通過大家一塊的努力把軟件編寫的更完整,讓系統的功能更完備。經過多天的努力探索,也經過老師的指導,大部分問題都已經解決,就是程序還是不能實現應
19、該實現的功能,這讓我很著急。后來經過一點一點的調試,并認真總結,發現了問題其實在編寫中斷處理程序時出現了錯誤,修改后即可實現直流電機調速的目的。總結這次軟件調試,讓我認識到了做軟件調試的基本方法與流程:(1)認真檢查源代碼,看是否有文字或語法錯誤(2)逐段子程序進行設計,找出錯誤出現的部分,重點排查(3)找到合適的方法,仔細檢查程序,分步調試直到運行成功5.2 系統測試與分析系統測試與分析為了確定系統與設計要求的符合程度,需要進行系統測試與分析,下面以 PID調節器為例,具體說明經驗法的整定步驟:讓調節器參數積分系數=0,實際微分系數=0,控制系統投入閉環運IKDK行,由小到大改變比例系數,讓
20、擾動信號作階躍變化,觀察控制過程,直到獲PK得滿意的控制過程為止。取比例系數為當前的值乘以 5,由小到大增加積分系數,同樣讓擾動PKIK信號作階躍變化,直至求得滿意的控制過程。積分系數保持不變,改變比例系數,觀察控制過程有無改善,如有IKPK改善則繼續調整,直到滿意為止。否則,將原比例系數增大一些,調整積分系PK智能控制基礎研究生課程設計報告10數,力求改善控制過程。如此反復,直到找到滿意的比例系數和積分系數IKPK為止。IK引入適當的實際微分系數和實際微分時間,此時可適當增大比例系DKDT數和積分系數。和前述步驟相同,微分時間的整定也需反復調整,直到控PKIK制過程滿意為止。根據上訴方法,通
21、過觀察得出該系統比較合適的 P、I、D 三者的參數值為: =5, =0.00105, =0。PKIKDK6.總結與展望總結與展望這一段時間過的無比的充實,每天都在忙碌著,查閱資料,翻看文檔,了解相關的知識,每一個設計細節都要仔細的考慮,每一個環節都要查閱相關的資料,爭取做到完美。在這個系統中以前學的很多東西現在都用上了,數碼管的移位顯示等等都是在以前學習的基礎上慢慢調試出來的,所以在寫這篇論文的時候又讓我對以前的知識進行了一次回顧,對知識又有了新的認識!真是受益匪淺!通過本次課程設計,我學到了許多了東西,知道光靠書本上的東西是不夠的,需額外去查資料。無論是在硬件、軟件還是設計思路上,我都遇到了
22、不少的問題,在克服困難的過程中,我學到了許多。知道了 PID 算法的應用,以前總覺得 PID 就是像做數學一樣,不知道實際應用。通過本次設計,讓我很好的鍛煉了理論與具體項目、課題相結合開發、設計產品的能力。既讓我們懂得了怎樣把理論應用于實際,又讓我們懂得了在實踐中遇到的問題怎樣用理論去解決。智能控制基礎研究生課程設計報告11附錄一附錄一 部分程序源程序#include stm32f10 x.h#include delay.h#include exti.h#include lcd.h#include text.h#include #include float WishSpeedMax=360;f
23、loat WishSpeedMin=0;float WishSpeed;extern float U_Out2;u8 WishSpeedChar11;u8 RealSpeedChar11;int main(void)SystemInit();delay_init(72);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);EXTI_Config();PID_ParameterReckon();Tim3_Init();DCMotor_Init(); DCMotor_Out(U_Out0);WishSpeed=200; POINT_COLOR=BLUE;B
24、ACK_COLOR=WHITE; LCD_Init();LCD_Clear(WHITE);LCD_ShowString(30,50,Wished Speed,POINT_COLOR);WishSpeedLCDShow();LCD_ShowString(30,90,Real Speed,POINT_COLOR);智能控制基礎研究生課程設計報告12while(1)Add_PID_Control();PID_Controller.c#include #include extern float WishSpeed;extern float RealSpeed;float U_OutMAX=1000;/
25、100%float U_OutMIN=0;float Kp;float Ki;float Kd;float Error3;float U_Out2;float U_Add;void PID_ParameterReckon(void)Kp=5;Ki=0.00105;Kd=0; U_Out0=0.0;Error2=0.0;Error1=0.0;Error0=0.0;void Add_PID_Control(void)Error2=WishSpeed-RealSpeed;if(Error2(-0.05*WishSpeed)&(Error2U_OutMAX)U_Out1=U_OutMAX;if
26、(U_Out1U_OutMIN)U_Out1=U_OutMIN;DCMotor_Out(int16_t)(U_Out1); U_Out0=U_Out1;Error0=Error1;Error1=Error2;Dcmotor_PWM.c#include #include delay.hextern float U_Out2;int InPWM_HzNew;int InPWM_HzOld;int16_t OutPWM;static void Tim2_Init(void)TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef
27、TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseStructure.TIM_Period=1000-1; TIM_TimeBaseStructure.TIM_Prescaler=4-1; TIM_TimeBaseStructure.TIM_ClockDivision=0; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStruc
28、ture); TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse=0; TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High; TIM_OC4Init(TIM2,&TIM_OCInitStructure); TIM_OC4PreloadConfig(TIM2,TIM_OCPreload_Enable); TIM
29、_ARRPreloadConfig(TIM2,ENABLE); TIM_Cmd(TIM2,ENABLE); 智能控制基礎研究生課程設計報告14static void Tim5_Init(void)TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_ICInitTypeDef TIM_ICInitStructure;GPIO_InitTypeDef GPIO_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, EN
30、ABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_ResetBits(GPIOA,GPIO_Pin_0);TIM_TimeBaseStructure.TIM_Period=65
31、536-1; TIM_TimeBaseStructure.TIM_Prescaler=72-1; TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInit(TIM5,&TIM_TimeBaseStructure);TIM_ICInitStructure.TIM_Channel=TIM_Channel_2;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPo
32、larity_Rising;TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICFilter=0;TIM_ICInit(TIM5,&TIM_ICInitStructure);NVIC_InitStructure.NVIC_IRQChannel=TIM5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);TIM_ITConfig(TIM5,TIM_IT_CC2,ENABLE);TIM_Cmd(TIM5,ENABLE);void Tim3_Init(void)智能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 反射java面試題及答案
- 記者編輯考試題及答案
- 入戶宣傳面試題及答案
- java面試題及答案專題之ssh框架
- 健康幼師面試題及答案
- 消防規程考試題及答案
- 地熱能源供暖系統在北方地區冬季供暖中的應用現狀與挑戰報告
- 聚焦2025:城市公共停車場建設社會穩定風險評估與城市歷史文化傳承與發展報告
- 2025年中小學安全教育日
- 2025年企業消防安全培訓課件
- 求職心理調適專家講座
- GB/T 6344-2008軟質泡沫聚合材料拉伸強度和斷裂伸長率的測定
- GB/T 3532-1995日用瓷器
- 學術論文寫作規范與技巧課件
- 生物高中-基于大數據分析的精準教學課件
- 工程結算審計實施方案(共8篇)
- 樂東221氣田投產專家驗收匯報
- 信任五環(用友營銷技巧)課件
- 2022年廣東省深圳市中考化學真題試卷
- 危險貨物道路運輸安全生產管理制度
- GB∕T 8110-2020 熔化極氣體保護電弧焊用非合金鋼及細晶粒鋼實心焊絲
評論
0/150
提交評論