找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 14080|回復(fù): 13
收起左側(cè)

STM32直流電機(jī)電流、速度雙閉環(huán)調(diào)速控制系統(tǒng)(vb上位機(jī),單片機(jī)源碼,視頻)

  [復(fù)制鏈接]
ID:388829 發(fā)表于 2018-8-22 11:26 | 顯示全部樓層 |閱讀模式
這是我大三做的運(yùn)動(dòng)控制系統(tǒng)課程設(shè)計(jì),對(duì)直流電機(jī)速度、電流雙閉環(huán)pid控制,有程序源碼,還有自己做的上位機(jī),也包括源碼,上位機(jī)可顯示速度和電流曲線,并且可以設(shè)置速度,里面也有自己的設(shè)計(jì)文檔,里面也有演示視頻

制作出來(lái)的實(shí)物圖如下:
0.png 0.png 11.png

拖動(dòng)系統(tǒng)課程設(shè)計(jì)報(bào)告書

題目: 直流電機(jī)速度電流雙閉環(huán)控制器設(shè)計(jì)


任務(wù)書
課題名稱

閉環(huán)控制的PWM直流調(diào)速系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

主要任務(wù)與
測(cè)評(píng)要求
隨著社會(huì)的發(fā)展,各種智能化的產(chǎn)品日益走入尋常百姓家。為了實(shí)現(xiàn)產(chǎn)品的便攜性、低成品以及對(duì)電源的限制,小型直流電機(jī)應(yīng)用相當(dāng)廣泛。對(duì)直流電機(jī)的速度調(diào)節(jié),可分為勵(lì)磁控制法與電樞電壓控制法兩類。隨著電力電子技術(shù)的進(jìn)步,發(fā)展了許多新的電樞電壓控制方法。其中,PWM斬波器進(jìn)斬波調(diào)壓的驅(qū)動(dòng)裝置與傳統(tǒng)晶閘管驅(qū)動(dòng)裝置比較,具有下列優(yōu)點(diǎn):需用的大功率可控器件少,線路簡(jiǎn)單;調(diào)速范圍寬:電流波形系數(shù)好,附加損耗;功率因數(shù)高?梢詮V泛應(yīng)用于現(xiàn)代直流電機(jī)伺服系統(tǒng)中。為抑制負(fù)載擾動(dòng),同時(shí)提高啟動(dòng)制動(dòng)性能,閉環(huán)控制的PWM直流調(diào)速系統(tǒng)成為研究熱點(diǎn)。

一、該同學(xué)的主要任務(wù)
1、查找文獻(xiàn),掌握直流電動(dòng)機(jī)PWM調(diào)速的基本工作原理;
2、設(shè)計(jì)直流電動(dòng)機(jī)雙閉環(huán)調(diào)速系統(tǒng),建立系統(tǒng)模型并進(jìn)行仿真試驗(yàn);
3、設(shè)計(jì)并調(diào)試基于51單片機(jī)的H橋驅(qū)動(dòng)控制電路;
4、設(shè)計(jì)速度調(diào)節(jié)器算法,對(duì)閉環(huán)系統(tǒng)進(jìn)行負(fù)載試驗(yàn);

二、功能測(cè)評(píng)要求
1、能獨(dú)立設(shè)置電機(jī)速度(按鍵設(shè)置或滑動(dòng)變阻器設(shè)置或上位機(jī)設(shè)置);
2、能顯示當(dāng)前電機(jī)的實(shí)際速度(單位為:r/min);
3、能控制電機(jī)啟動(dòng)、停止、正反轉(zhuǎn)、軟啟動(dòng)和軟制動(dòng);
4、給電機(jī)加載后,速度能迅速調(diào)節(jié)回給定值;
5、對(duì)電流能進(jìn)行截止負(fù)反饋控制,抑制電流沖擊。

三、提供波形數(shù)據(jù):
1、不同速度下的PWM波形;
2、加載后的速度波形;

主要內(nèi)容

本課題主要研究直流電動(dòng)機(jī)的閉環(huán)控制的調(diào)壓調(diào)速系統(tǒng),采用PWM調(diào)壓控制方案,該同學(xué)主要工作是雙閉環(huán)調(diào)速系統(tǒng)建模與仿真,實(shí)際速度閉環(huán)PWM調(diào)速系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。

基本內(nèi)容:
1、設(shè)計(jì)直流電動(dòng)機(jī)雙閉環(huán)調(diào)速系統(tǒng)總體方案;
2、建立系統(tǒng)數(shù)學(xué)模型,并設(shè)計(jì)電流調(diào)節(jié)器和轉(zhuǎn)速調(diào)節(jié)器算法;
3、直流電機(jī)的控制電路、驅(qū)動(dòng)電路、保護(hù)電路及其檢測(cè)電路設(shè)計(jì)
4、 基于單片機(jī)的閉環(huán)調(diào)速系統(tǒng)軟件程序設(shè)計(jì);
5、分別對(duì)空載、負(fù)載和變給定工況進(jìn)行調(diào)速系統(tǒng)實(shí)驗(yàn)與分析;
6、記錄波形分析數(shù)據(jù)。


主要參
考資料

一、主要參考文獻(xiàn)
1、電機(jī)原理與設(shè)計(jì)的matlab分析,戴文進(jìn),電子工業(yè)出版社;
2、電氣傳動(dòng)的脈寬調(diào)制控制技術(shù),吳守,機(jī)械工業(yè)出版社;
3、電力電子技術(shù),浣喜明,高等教育出版社;
4、電動(dòng)機(jī)的單片機(jī)控制,王曉明,北京航空航天出版社;
5、電機(jī)與拖動(dòng)基礎(chǔ),李發(fā)海,清華大學(xué)出版社;


計(jì)劃進(jìn)度:

序號(hào)
內(nèi)容
1
任務(wù)布置與介紹
2
系統(tǒng)總體方案設(shè)計(jì)
3
雙閉環(huán)直流PWM調(diào)速系統(tǒng)建模
4
仿真調(diào)試與分析
5
硬件電路設(shè)計(jì)
6
硬件平臺(tái)搭建與調(diào)試
7
軟件程序設(shè)計(jì)
8
軟件硬件聯(lián)合調(diào)試
9
撰寫課程設(shè)計(jì)報(bào)告
10
答辯
實(shí)習(xí)地點(diǎn)

15-212

指導(dǎo)教師
簽    名


年   月   日



一、       雙閉環(huán)調(diào)速系統(tǒng)1.1雙閉環(huán)調(diào)速系統(tǒng)概述

在許多場(chǎng)合,為了充分發(fā)揮生產(chǎn)機(jī)械的效能,提高生產(chǎn)率,速度控制系統(tǒng)經(jīng)常處于起動(dòng)、制動(dòng)、反轉(zhuǎn)以及突加負(fù)載等過渡過程中,所以要求速度控制系統(tǒng)有較好的動(dòng)態(tài)性能。

對(duì)高性能、靜態(tài)的速度控制系統(tǒng)的要求是具有快速跟隨特性(起制性)、較好的抗干擾性和高可可靠性(可瞬態(tài)過載但不過流)。因此引入了轉(zhuǎn)速、電流雙閉環(huán)調(diào)速系統(tǒng)。

轉(zhuǎn)速負(fù)反饋和比例積分調(diào)節(jié)器的單閉環(huán)調(diào)速系統(tǒng)能夠保證系統(tǒng)在穩(wěn)定的條件下實(shí)現(xiàn)轉(zhuǎn)速無(wú)靜差調(diào)節(jié)。但是該控制系統(tǒng)也有自身的缺點(diǎn),比如要求快速啟動(dòng)、突加負(fù)載動(dòng)態(tài)速降等。

這種單閉環(huán)系統(tǒng)就難以滿足要求,這是因?yàn)樵趩伍]環(huán)調(diào)速系統(tǒng)中尚不能按要求來(lái)控制動(dòng)態(tài)過程的電流和轉(zhuǎn)速。為解決這一矛盾,電流截止負(fù)反饋環(huán)節(jié),它與轉(zhuǎn)速負(fù)反饋調(diào)速系統(tǒng)結(jié)合在一起,可以專門用來(lái)控制電流,從工作原理上分析,它只能是在超過臨界電流值以后,才能靠強(qiáng)烈的負(fù)反饋?zhàn)饔孟拗齐娏鞯臎_擊,由于電流截止負(fù)反饋只能限制最大電流,電機(jī)轉(zhuǎn)矩也隨著電流減小而下降,使啟動(dòng)加速過程變慢,啟動(dòng)的時(shí)間也比較長(zhǎng),帶電流截止負(fù)反饋單閉環(huán)調(diào)速系統(tǒng)。為了能夠?qū)崿F(xiàn)在允許條件下最快啟動(dòng),依照反饋控制規(guī)律,驗(yàn)證與實(shí)踐,采用轉(zhuǎn)速、電流雙閉環(huán)調(diào)速系統(tǒng)就能達(dá)到上述要求。

1.2雙閉環(huán)調(diào)速系統(tǒng)電路原理

如下圖為轉(zhuǎn)速、電流的雙閉環(huán)調(diào)速系統(tǒng)的原理圖。圖中兩個(gè)調(diào)節(jié)器ASR和ACR分別為轉(zhuǎn)速調(diào)節(jié)器和電流調(diào)節(jié)器,二者串級(jí)連接,即把轉(zhuǎn)速調(diào)節(jié)器的輸出作為電流調(diào)節(jié)器的輸入,在用電流調(diào)節(jié)器的輸出去控制晶閘管整流器的觸發(fā)裝置。電流環(huán)在內(nèi),稱之為內(nèi)環(huán);轉(zhuǎn)速環(huán)在外,稱之為外環(huán)。

兩個(gè)調(diào)節(jié)器輸出都帶有限幅,ASR的輸出限幅Uim決定了電流調(diào)節(jié)器ACR的給定電壓最大值Uim,對(duì)就電機(jī)的最大電流,電流調(diào)節(jié)器ACR輸出限幅電壓Ucm限制了整流器輸出最大電壓值,限最小觸發(fā)角a。

雙閉環(huán)調(diào)速系統(tǒng)電路原理圖

1.3雙閉環(huán)調(diào)速系統(tǒng)動(dòng)態(tài)結(jié)構(gòu)圖

雙閉環(huán)調(diào)速系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)如下圖所示,電流采樣模塊采用2歐姆的碳膜電阻,根據(jù)驅(qū)動(dòng)的設(shè)計(jì)我們把碳膜電阻加在MOS管和GND相連的地方,因?yàn)殡娏鞑还軗Q向與否碳膜電阻采樣到的電流方向不變,所以給ADC采樣帶來(lái)了極大的方便,而且碳膜電阻功率比較大,當(dāng)電機(jī)堵轉(zhuǎn)導(dǎo)致電流比較大的時(shí)候不至于燒壞。

由編碼器得到電機(jī)的轉(zhuǎn)速,,通過編碼器反饋脈沖信號(hào),本次采用的編碼器精度為344,電機(jī)轉(zhuǎn)一圈產(chǎn)生344個(gè)脈沖。

雙閉環(huán)調(diào)速系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)圖

1.4雙閉環(huán)算法結(jié)構(gòu)實(shí)現(xiàn)

本次課程設(shè)計(jì)算法的實(shí)現(xiàn)分為如下幾個(gè)部分ADC采樣實(shí)現(xiàn),中斷脈沖計(jì)數(shù),定時(shí)器計(jì)算速度,定時(shí)器產(chǎn)生兩路PWM,通過這兩路PWM占空比的差值調(diào)節(jié)電機(jī)的轉(zhuǎn)速,一個(gè)串級(jí)PI調(diào)節(jié)器。

ADC采樣開了一路采樣,設(shè)置ARM采樣轉(zhuǎn)化時(shí)間為1微秒,設(shè)置PWM周期為5ms為了減小電流波動(dòng)帶來(lái)的采樣誤差我采集到10000個(gè)數(shù)字電壓然后計(jì)算平均電壓,采集到10000個(gè)點(diǎn)正好是兩個(gè)PWM周期,計(jì)算值有效而且響應(yīng)快速。中斷系統(tǒng)配置成上升沿觸發(fā),當(dāng)來(lái)一次脈沖count會(huì)加1,開啟另外一個(gè)定時(shí)器50ms獲取一次count的值,然后求的這50ms電機(jī)的轉(zhuǎn)速,及時(shí)與設(shè)定速度調(diào)節(jié),計(jì)算速度誤差通過PI調(diào)節(jié)器調(diào)節(jié)速度和電流雙閉環(huán),PI調(diào)節(jié)器采用位置式寫法,位置式PI需要注意的地方是一個(gè)積分飽和,如果不設(shè)定積分限制PI調(diào)節(jié)器會(huì)跑飛,帶來(lái)很大的問題,外環(huán)PI調(diào)節(jié)器的積分限制我采用分級(jí)控制的方式,當(dāng)速度誤差大于500時(shí)設(shè)定積分限制為電機(jī)堵轉(zhuǎn)時(shí)能夠達(dá)到的最大電流積分限制設(shè)置為8000,根據(jù)pi參數(shù)計(jì)算的得出,當(dāng)速度誤差大于300時(shí)設(shè)定積分限制為5000,當(dāng)速度誤差小于300時(shí),設(shè)定積分限制為2000最小,計(jì)算得到PID值為速度穩(wěn)定是的ADC的值,這樣設(shè)計(jì)的好處就是不但能減小系統(tǒng)的超調(diào)量而且能夠加速系統(tǒng)的響應(yīng)時(shí)間。


二、轉(zhuǎn)速、電流雙閉環(huán)調(diào)速系統(tǒng)電氣設(shè)計(jì)2.1驅(qū)動(dòng)電路設(shè)計(jì)

驅(qū)動(dòng)電路的設(shè)計(jì)采用雙路PWM,采用MOS管搭建H橋,采用2104芯片,芯片的IN端輸入高電平時(shí)HO輸出端輸出高端平,左上角的MOS管導(dǎo)通,LO端輸出低電平左下角MOS管關(guān)斷,上下MOS管導(dǎo)通和關(guān)斷夠成互補(bǔ),當(dāng)芯片IN端輸入低電平輸出電平相反MOS管的導(dǎo)通關(guān)斷相反。

驅(qū)動(dòng)電路

2.2過流保護(hù)電路設(shè)計(jì)

過流保護(hù)的電路設(shè)計(jì)如下圖所示,過流保護(hù)電路的功能當(dāng)電機(jī)兩端短路時(shí)繼電器斷開,電路斷開不供電。當(dāng)電機(jī)堵轉(zhuǎn)時(shí)繼電器也斷開。過流保護(hù)電路設(shè)計(jì)如下:本電路設(shè)計(jì)的主要核心元件是比較器、555定時(shí)器、繼電器。比較器的正向輸入端設(shè)置一個(gè)比較電壓,反向輸入端輸入采樣電阻得到的電壓,如果電機(jī)堵轉(zhuǎn)或者電機(jī)兩端短路會(huì)導(dǎo)致采樣電阻的電壓值變得很大,反向輸入電壓大于正向輸入電壓比較器輸出低電平,555定時(shí)輸出高電平,繼電器采用常閉型當(dāng)為高電平時(shí)繼電器斷開。通過電阻和電容的值設(shè)定555定時(shí)器的輸出高電平時(shí)間。

2.3上位機(jī)控制系統(tǒng)設(shè)計(jì)

上位機(jī)的設(shè)計(jì)主要是為了顯示速度和電流的變化曲線,藍(lán)色線為實(shí)時(shí)速度的顯示,紅色線是設(shè)定速度的曲線顯示,黑色線是電流變化的曲線,本次電流的值用ADC的值統(tǒng)一表示,本上位機(jī)的功能涵蓋了所有電機(jī)控制的功能,可以通過上位機(jī)控制電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、和停止;镜墓δ,同時(shí)還可以加速減速,每次按鍵加速或者減速10r,設(shè)定速度標(biāo)度窗口輸入所要標(biāo)定的速度然后點(diǎn)擊設(shè)置按鈕,紅色曲線便可按照設(shè)置的數(shù)值顯示曲線,上面還有兩個(gè)顯示速度和電流具體數(shù)值的窗口。


stm32單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "timer.h"
  7. #include "UserConfiguration.h"
  8. #include "UserFunction.h"
  9. #include "lcd.h"
  10. #include "exti.h"
  11. #include "adc.h"
  12. #include "PID_Current.h"
  13. //PWM輸出實(shí)驗(yàn)  
  14.         
  15. u32 spd_now=0;
  16. u32 set_spd=3300,set_vol=300,PwmOne_Set,adcx;
  17. float av;

  18. enum
  19. {
  20.         flag_add,flag_minus,flag
  21. }FLAG_SPEED;
  22. enum
  23. {
  24.         flag_zheng,flag_fan,flag_stop
  25. }FLAG_DIR;

  26. int main(void)
  27. {               
  28. //        u8 i=0,key;
  29.          
  30.         delay_init();                     //延時(shí)函數(shù)初始化         
  31.         KEY_Init();
  32.         NVIC_Configuration();          //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  33.         uart_init(9600);         //串口初始化為9600
  34.          LED_Init();                             //LED端口初始化
  35.         Adc_Init();                                  //ADC初始化            
  36.          TIM1_PWM_Init(4999,71);         
  37.         
  38.         EXTIX_Init();
  39.         LCD_Init();
  40.          
  41.         POINT_COLOR=RED;
  42.         TIM3_Int_Init(9999,719);
  43.                         
  44.         FLAG_DIR=flag_zheng;   //開始是正轉(zhuǎn)
  45.         FLAG_SPEED=flag;
  46.         while(1)
  47.   {   
  48.                  
  49.         
  50.         
  51.                        
  52.           //  UserPIDCurrentControl(set_vol) ;
  53.                 av=adcx*3.3/4096;
  54.                 LCD_ShowxNum(130,100,spd_now,8,16,0);    //nowspd;時(shí)時(shí)速度
  55.                 LCD_ShowxNum(130,130,set_spd,8,16,0);    //設(shè)定速度
  56.                 LCD_ShowxNum(130,160,3600,8,16,0);    //電機(jī)最大速度
  57.                 LCD_ShowxNum(130,190,adcx,8,16,0);           
  58.                 LCD_ShowxNum(130,230,av*1000,8,16,0);
  59.                 LCD_ShowxNum(130,250,PwmOne_Set,8,16,0);
  60.                 LCD_ShowString(50,160,100,12,16,"Max_Speed:");         
  61.                 LCD_ShowString(50,100,100,12,16,"Now_Speed:");
  62.                 LCD_ShowString(50,130,100,12,16,"Set_Speed:");        
  63.                 LCD_ShowString(50,190,100,12,16,"ADC:");        
  64.                 LCD_ShowString(50,230,100,12,16,"Voltage:");        
  65.                 adcx=Get_Adc_Average(ADC_Channel_2,10000);
  66.                  //按鍵設(shè)置標(biāo)量速度
  67.                  
  68.                  if(FLAG_SPEED==flag_add)
  69.                         {
  70.                                 FLAG_SPEED=flag;
  71.                                 set_spd+=10;    //加速
  72.                         }
  73.                         else if(FLAG_SPEED==flag_minus)
  74.                         {
  75.                                 FLAG_SPEED=flag;
  76.                                 set_spd-=10;    //減速
  77.                         }
  78.                         if(set_spd>=3600)
  79.                         {
  80.                                 set_spd=3600;
  81.                         }
  82.                         if(set_spd<=0)
  83.                         {
  84.                                 set_spd=0;
  85.                         }
  86.                

  87.         }

  88. }

復(fù)制代碼
vb上位機(jī)源碼如下:
0.png 0.png

所有資料51hei提供下載:
直流電機(jī)雙閉環(huán)控制-.rar (11 MB, 下載次數(shù): 360)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:104779 發(fā)表于 2018-8-26 12:26 | 顯示全部樓層
為何下載后解壓不了????提示無(wú)壓縮文件
回復(fù)

使用道具 舉報(bào)

ID:337376 發(fā)表于 2018-8-26 19:39 | 顯示全部樓層
謝謝分享&#128516;
回復(fù)

使用道具 舉報(bào)

ID:236898 發(fā)表于 2018-10-20 14:23 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:424022 發(fā)表于 2018-11-10 12:53 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:242969 發(fā)表于 2018-12-18 11:58 | 顯示全部樓層

學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:478002 發(fā)表于 2019-2-19 10:22 | 顯示全部樓層
感謝大神,學(xué)習(xí)一波
回復(fù)

使用道具 舉報(bào)

ID:383300 發(fā)表于 2019-4-3 14:12 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:502029 發(fā)表于 2019-4-3 22:35 | 顯示全部樓層
為什么下載后只要一個(gè)vb文件
回復(fù)

使用道具 舉報(bào)

ID:383300 發(fā)表于 2019-4-18 15:02 | 顯示全部樓層

可以分享一下嗎
回復(fù)

使用道具 舉報(bào)

ID:371737 發(fā)表于 2019-6-30 12:12 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:282095 發(fā)表于 2019-6-30 13:39 | 顯示全部樓層
資源不錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:482316 發(fā)表于 2019-9-25 11:40 | 顯示全部樓層
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:366517 發(fā)表于 2020-3-23 20:34 | 顯示全部樓層
我想問一下用的是哪一款驅(qū)動(dòng)芯片啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表