這是我大三做的運動控制系統課程設計,對直流電機速度、電流雙閉環pid控制,有程序源碼,還有自己做的上位機,也包括源碼,上位機可顯示速度和電流曲線,并且可以設置速度,里面也有自己的設計文檔,里面也有演示視頻
制作出來的實物圖如下:
0.png (292.77 KB, 下載次數: 80)
下載附件
2018-8-22 17:37 上傳
0.png (180.58 KB, 下載次數: 92)
下載附件
2018-8-22 17:37 上傳
11.png (27.29 KB, 下載次數: 89)
下載附件
2018-8-22 11:25 上傳
拖動系統課程設計報告書
題目: 直流電機速度電流雙閉環控制器設計
任務書 | | | 隨著社會的發展,各種智能化的產品日益走入尋常百姓家。為了實現產品的便攜性、低成品以及對電源的限制,小型直流電機應用相當廣泛。對直流電機的速度調節,可分為勵磁控制法與電樞電壓控制法兩類。隨著電力電子技術的進步,發展了許多新的電樞電壓控制方法。其中,PWM斬波器進斬波調壓的驅動裝置與傳統晶閘管驅動裝置比較,具有下列優點:需用的大功率可控器件少,線路簡單;調速范圍寬:電流波形系數好,附加損耗。还β室驍蹈。可以廣泛應用于現代直流電機伺服系統中。為抑制負載擾動,同時提高啟動制動性能,閉環控制的PWM直流調速系統成為研究熱點。
一、該同學的主要任務 1、查找文獻,掌握直流電動機PWM調速的基本工作原理; 2、設計直流電動機雙閉環調速系統,建立系統模型并進行仿真試驗; 3、設計并調試基于51單片機的H橋驅動控制電路; 4、設計速度調節器算法,對閉環系統進行負載試驗;
二、功能測評要求 1、能獨立設置電機速度(按鍵設置或滑動變阻器設置或上位機設置); 2、能顯示當前電機的實際速度(單位為:r/min); 3、能控制電機啟動、停止、正反轉、軟啟動和軟制動; 4、給電機加載后,速度能迅速調節回給定值; 5、對電流能進行截止負反饋控制,抑制電流沖擊。
三、提供波形數據: 1、不同速度下的PWM波形; 2、加載后的速度波形;
| |
本課題主要研究直流電動機的閉環控制的調壓調速系統,采用PWM調壓控制方案,該同學主要工作是雙閉環調速系統建模與仿真,實際速度閉環PWM調速系統的設計與實現。
基本內容: 1、設計直流電動機雙閉環調速系統總體方案; 2、建立系統數學模型,并設計電流調節器和轉速調節器算法; 3、直流電機的控制電路、驅動電路、保護電路及其檢測電路設計 4、 基于單片機的閉環調速系統軟件程序設計; 5、分別對空載、負載和變給定工況進行調速系統實驗與分析; 6、記錄波形分析數據。
| | 一、主要參考文獻 1、電機原理與設計的matlab分析,戴文進,電子工業出版社; 2、電氣傳動的脈寬調制控制技術,吳守,機械工業出版社; 3、電力電子技術,浣喜明,高等教育出版社; 4、電動機的單片機控制,王曉明,北京航空航天出版社; 5、電機與拖動基礎,李發海,清華大學出版社;
| | | | | | | | | | | | | | | | | | | | | | | | | | | |
一、 雙閉環調速系統1.1雙閉環調速系統概述在許多場合,為了充分發揮生產機械的效能,提高生產率,速度控制系統經常處于起動、制動、反轉以及突加負載等過渡過程中,所以要求速度控制系統有較好的動態性能。 對高性能、靜態的速度控制系統的要求是具有快速跟隨特性(起制性)、較好的抗干擾性和高可可靠性(可瞬態過載但不過流)。因此引入了轉速、電流雙閉環調速系統。 轉速負反饋和比例積分調節器的單閉環調速系統能夠保證系統在穩定的條件下實現轉速無靜差調節。但是該控制系統也有自身的缺點,比如要求快速啟動、突加負載動態速降等。 這種單閉環系統就難以滿足要求,這是因為在單閉環調速系統中尚不能按要求來控制動態過程的電流和轉速。為解決這一矛盾,電流截止負反饋環節,它與轉速負反饋調速系統結合在一起,可以專門用來控制電流,從工作原理上分析,它只能是在超過臨界電流值以后,才能靠強烈的負反饋作用限制電流的沖擊,由于電流截止負反饋只能限制最大電流,電機轉矩也隨著電流減小而下降,使啟動加速過程變慢,啟動的時間也比較長,帶電流截止負反饋單閉環調速系統。為了能夠實現在允許條件下最快啟動,依照反饋控制規律,驗證與實踐,采用轉速、電流雙閉環調速系統就能達到上述要求。 1.2雙閉環調速系統電路原理如下圖為轉速、電流的雙閉環調速系統的原理圖。圖中兩個調節器ASR和ACR分別為轉速調節器和電流調節器,二者串級連接,即把轉速調節器的輸出作為電流調節器的輸入,在用電流調節器的輸出去控制晶閘管整流器的觸發裝置。電流環在內,稱之為內環;轉速環在外,稱之為外環。 兩個調節器輸出都帶有限幅,ASR的輸出限幅Uim決定了電流調節器ACR的給定電壓最大值Uim,對就電機的最大電流,電流調節器ACR輸出限幅電壓Ucm限制了整流器輸出最大電壓值,限最小觸發角a。 雙閉環調速系統電路原理圖
1.3雙閉環調速系統動態結構圖雙閉環調速系統的動態結構如下圖所示,電流采樣模塊采用2歐姆的碳膜電阻,根據驅動的設計我們把碳膜電阻加在MOS管和GND相連的地方,因為電流不管換向與否碳膜電阻采樣到的電流方向不變,所以給ADC采樣帶來了極大的方便,而且碳膜電阻功率比較大,當電機堵轉導致電流比較大的時候不至于燒壞。 由編碼器得到電機的轉速,,通過編碼器反饋脈沖信號,本次采用的編碼器精度為344,電機轉一圈產生344個脈沖。 雙閉環調速系統的動態結構圖
1.4雙閉環算法結構實現本次課程設計算法的實現分為如下幾個部分ADC采樣實現,中斷脈沖計數,定時器計算速度,定時器產生兩路PWM,通過這兩路PWM占空比的差值調節電機的轉速,一個串級PI調節器。 ADC采樣開了一路采樣,設置ARM采樣轉化時間為1微秒,設置PWM周期為5ms為了減小電流波動帶來的采樣誤差我采集到10000個數字電壓然后計算平均電壓,采集到10000個點正好是兩個PWM周期,計算值有效而且響應快速。中斷系統配置成上升沿觸發,當來一次脈沖count會加1,開啟另外一個定時器50ms獲取一次count的值,然后求的這50ms電機的轉速,及時與設定速度調節,計算速度誤差通過PI調節器調節速度和電流雙閉環,PI調節器采用位置式寫法,位置式PI需要注意的地方是一個積分飽和,如果不設定積分限制PI調節器會跑飛,帶來很大的問題,外環PI調節器的積分限制我采用分級控制的方式,當速度誤差大于500時設定積分限制為電機堵轉時能夠達到的最大電流積分限制設置為8000,根據pi參數計算的得出,當速度誤差大于300時設定積分限制為5000,當速度誤差小于300時,設定積分限制為2000最小,計算得到PID值為速度穩定是的ADC的值,這樣設計的好處就是不但能減小系統的超調量而且能夠加速系統的響應時間。
二、轉速、電流雙閉環調速系統電氣設計2.1驅動電路設計驅動電路的設計采用雙路PWM,采用MOS管搭建H橋,采用2104芯片,芯片的IN端輸入高電平時HO輸出端輸出高端平,左上角的MOS管導通,LO端輸出低電平左下角MOS管關斷,上下MOS管導通和關斷夠成互補,當芯片IN端輸入低電平輸出電平相反MOS管的導通關斷相反。 驅動電路
2.2過流保護電路設計過流保護的電路設計如下圖所示,過流保護電路的功能當電機兩端短路時繼電器斷開,電路斷開不供電。當電機堵轉時繼電器也斷開。過流保護電路設計如下:本電路設計的主要核心元件是比較器、555定時器、繼電器。比較器的正向輸入端設置一個比較電壓,反向輸入端輸入采樣電阻得到的電壓,如果電機堵轉或者電機兩端短路會導致采樣電阻的電壓值變得很大,反向輸入電壓大于正向輸入電壓比較器輸出低電平,555定時輸出高電平,繼電器采用常閉型當為高電平時繼電器斷開。通過電阻和電容的值設定555定時器的輸出高電平時間。 2.3上位機控制系統設計上位機的設計主要是為了顯示速度和電流的變化曲線,藍色線為實時速度的顯示,紅色線是設定速度的曲線顯示,黑色線是電流變化的曲線,本次電流的值用ADC的值統一表示,本上位機的功能涵蓋了所有電機控制的功能,可以通過上位機控制電機的正轉、反轉、和停止。基本的功能,同時還可以加速減速,每次按鍵加速或者減速10r,設定速度標度窗口輸入所要標定的速度然后點擊設置按鈕,紅色曲線便可按照設置的數值顯示曲線,上面還有兩個顯示速度和電流具體數值的窗口。
stm32單片機源程序如下: - #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "usart.h"
- #include "timer.h"
- #include "UserConfiguration.h"
- #include "UserFunction.h"
- #include "lcd.h"
- #include "exti.h"
- #include "adc.h"
- #include "PID_Current.h"
- //PWM輸出實驗
-
- u32 spd_now=0;
- u32 set_spd=3300,set_vol=300,PwmOne_Set,adcx;
- float av;
-
- enum
- {
- flag_add,flag_minus,flag
- }FLAG_SPEED;
- enum
- {
- flag_zheng,flag_fan,flag_stop
- }FLAG_DIR;
-
- int main(void)
- {
- // u8 i=0,key;
-
- delay_init(); //延時函數初始化
- KEY_Init();
- NVIC_Configuration(); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
- uart_init(9600); //串口初始化為9600
- LED_Init(); //LED端口初始化
- Adc_Init(); //ADC初始化
- TIM1_PWM_Init(4999,71);
-
- EXTIX_Init();
- LCD_Init();
-
- POINT_COLOR=RED;
- TIM3_Int_Init(9999,719);
-
- FLAG_DIR=flag_zheng; //開始是正轉
- FLAG_SPEED=flag;
- while(1)
- {
-
-
-
-
- // UserPIDCurrentControl(set_vol) ;
- av=adcx*3.3/4096;
- LCD_ShowxNum(130,100,spd_now,8,16,0); //nowspd;時時速度
- LCD_ShowxNum(130,130,set_spd,8,16,0); //設定速度
- LCD_ShowxNum(130,160,3600,8,16,0); //電機最大速度
- LCD_ShowxNum(130,190,adcx,8,16,0);
- LCD_ShowxNum(130,230,av*1000,8,16,0);
- LCD_ShowxNum(130,250,PwmOne_Set,8,16,0);
- LCD_ShowString(50,160,100,12,16,"Max_Speed:");
- LCD_ShowString(50,100,100,12,16,"Now_Speed:");
- LCD_ShowString(50,130,100,12,16,"Set_Speed:");
- LCD_ShowString(50,190,100,12,16,"ADC:");
- LCD_ShowString(50,230,100,12,16,"Voltage:");
- adcx=Get_Adc_Average(ADC_Channel_2,10000);
- //按鍵設置標量速度
-
- if(FLAG_SPEED==flag_add)
- {
- FLAG_SPEED=flag;
- set_spd+=10; //加速
- }
- else if(FLAG_SPEED==flag_minus)
- {
- FLAG_SPEED=flag;
- set_spd-=10; //減速
- }
- if(set_spd>=3600)
- {
- set_spd=3600;
- }
- if(set_spd<=0)
- {
- set_spd=0;
- }
-
- }
- }
復制代碼vb上位機源碼如下:
0.png (7.73 KB, 下載次數: 80)
下載附件
2018-8-22 17:40 上傳
0.png (48.18 KB, 下載次數: 90)
下載附件
2018-8-22 17:37 上傳
所有資料51hei提供下載:
直流電機雙閉環控制-.rar
(11 MB, 下載次數: 360)
2018-8-22 11:26 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|