直流電機PWM調速系統(tǒng)的設計及仿真_第1頁
直流電機PWM調速系統(tǒng)的設計及仿真_第2頁
直流電機PWM調速系統(tǒng)的設計及仿真_第3頁
直流電機PWM調速系統(tǒng)的設計及仿真_第4頁
直流電機PWM調速系統(tǒng)的設計及仿真_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、. z. . . . . 資料. . .直流電機PWM調速系統(tǒng)的設計與仿真引言1本課題設計的目的和要求1.直流電機PWM調速系統(tǒng)的目的: 1 熟悉直流電機PWM調速系統(tǒng)的整體運行過程和總體布局 2 掌握該硬件電路的設計方法 3 掌握電機PWM調速系統(tǒng)程序的設計和調試 2. 直流電機PWM調速系統(tǒng)的要求 1可輸入01*圍的占空比,占空比可用電位器輸入、撥碼開關輸入或鍵盤輸入。2設計電機驅動電路,根據輸入的占空比控制電機轉速。3檢測電機轉速,并用LED或LCD顯示。4在PROTUES下仿真。二、系統(tǒng)總體框圖與原理說明2.1 總體方案原理及設計框圖本設計是基于AT89c51為核心的直流調速器,由單片

2、機控制和產生適合要求的PWM信號,該PWM信號通過驅動芯片電路進展直流調速,使輸出電壓平均值和功率可以按照PWM信號的占空比而變化,從而到達對直流電機調速的目的。撥碼開關輸入01*圍的占空比,用LCD1602作為主液晶顯示器,顯示輸入的占空比控制電機轉速,能夠實現較好的人機交互。撥碼開關輸入模塊撥碼開關輸入模塊AT89c51單片機LCD1602顯示模塊電機驅動模塊直流電機示波器顯示PWM波形用壓控振蕩器可用555電路構成來模擬直流電機的運行總體方案設計框圖三、硬件電路圖3.1 PWM產生方式1PWM脈沖寬度調制是通過控制固定電壓的直流電源開關頻率,改變負載兩端的電壓,從而到達控制要求的一種電壓

3、調整方法。PWM可以應用在很多方面,比方:電機調速、溫度控制、壓力控制等等。在PWM驅動控制的調整系統(tǒng)中,按一個固定的頻率來接通和斷開的電源,并且根據需要改變一個周期內接通和斷開時間的長短。通過改變直流電機電樞上電壓的占空比來到達改變平均電壓大小的目的,從而來控制電動機的轉速。正因為如此,PWM又被稱為開關驅動裝置。PWM波形如下圖:PWM波形圖設電機始終接通電路時,電機轉速最大為,設占空比為:則電機的平均轉速為其中指的是電機的平均速度,是指電機在全通電時最大速度,D指的是占空比。由上面的公式可見,當改變占空比D時,就可以得到不同電機平均速度,從而到達調速的目的。2單片機片內軟件生成PWM信號

4、PWM信號采用單片機定時中斷的方式軟件模擬產生,這樣實現比擬容易,可以節(jié)約硬件本錢。/=定時器0初始化設置=/=定時器0初始化設置=void Time0_Init() /定時器0初始化函數TMOD=0*01; /定時器0為工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256; /初始化為定時時間為50msET0=1; /開定時器0中斷TR0=1; /開定時器EA=1; /開總開關/=定時器0中斷效勞程序= void timer0_server(void) interrupt 3 if(PWM_flag) TH0=(65536-PWM_data*200

5、)/256; TL0=(65536-PWM_data*200)%256; PWM=1; PWM_flag=PWM_flag; else TH1=(45536+PWM_data*200)/256; TL1=(45536+PWM_data*200)%256; /初始化為定時時間為20ms PWM=0; PWM_flag=PWM_flag; 3.2撥碼開關模塊的設計本設計輸入用8位的撥碼開關,能產生256數值,每一種數值對應于一個占空比的值,當輸入為256時,最大的占空比為99%,能調節(jié)到最大的電機轉速。3.3顯示模塊的設計本設計用LCD1602作為顯示模塊,它是一種專門用來顯示字母、數字、符號等的

6、點陣型液晶模塊,可以顯示兩行,提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能。3.4直流電機驅動模塊本設計采用光電隔離器,光耦合器以光為媒介傳輸電信號。它對輸入、輸出電信號有良好的隔離作用,然后把信號通過晶體管IRF640進展放大,驅動直流電機的驅動和調速。3.3模擬直流電機測速模塊555定時器,構成簡單的振蕩電路,利用電阻和電容充放電原理,是輸出端產生方波信號,即可模擬簡單的脈沖,代替電機的測速,電機測速一般都是利用霍爾元件測出電機轉了多少圈,電機轉一圈,霍爾元件檢測電機觸發(fā)的脈沖,則會輸出響應的信號。光電隔離主要用來處理控制局部和強電局部的信號,減少控制局部受強電的干擾

7、。起隔離作用。四、程序流程圖開場開場LCD1602、定時器t1和t0初始化撥碼開關設置PWM值主函數把數據送到LCD1602,顯示轉速,并調節(jié)電機的轉速等待重新設置PWM值YN五、仿真說明1初始界面時,撥碼開關沒有設置PWM,直流電機處于停頓狀態(tài),LCD1602顯示PWM為000%在LCD上顯示Motor_Speed為256,這就是在一定時間內低電平的數目。由于INT0是屬于低電平輸入中斷類型的,根據這個原理再通過計數器T1來記錄INT0的中斷次數即是轉速。2通過調節(jié)撥碼開關的值,使占空比增大,從而使直流電機的轉速變大。六、心得體會本設計通過仿真根本能實現對直流電機的調速和測速。課程設計重點在

8、于對單片機的應用與理解,引入了555芯片的使用與了解其作用,對掌握驅動直流電機的方法有一定得要求,通過這幾天網上的一些相關資料的查閱,順利的完成了這個課程設計,但在仿真過程中的一些細節(jié)問題上還有著紕漏,在電機的測速的模塊的編程不夠完美。通過本次課程設計,加深了之前的單片機知識和相應仿真軟件的使用。拓寬了本人的知識面,拓展了視野和思維。設計一個直流電機調速系統(tǒng),無論從學習還是實踐的角度上來說,對電氣專業(yè)的大學生都會產生積極的作用,有利于提高學習熱情。參考文獻:1.單片機技術及系統(tǒng)設計 周美娟 清華大學2.微型計算機控制技術實用教程 潘新民 王燕芳 電子工業(yè) 附錄#include#include#

9、include#include#include /=#define uchar unsigned char#define uint unsigned int/=#define Data_Bus P1sbit PWM=P30;bit PWM_flag=0;unsigned char Time_flag=0;unsigned char DSW_data=0*00;unsigned char PWM_data=0;unsigned int Speed_data=0;unsigned char PWM_Precent5=0*30,0*30,%;unsigned char MotorSpeed5=0*3

10、0,0*30,0*30;/ 函數聲明 void delay(uint);void delay_ms(unsigned int ii);/1ms延時函數void get_PWM(void);void get_Speed(void);/=延時子函數=void delay(uint z) uint *,y; for(*=z;*0;*-) for(y=110;y0;y-);void delay_ms(unsigned int ii)/1ms延時函數unsigned int i,*;for (*=0;*ii;*+) for (i=0;i200;i+);/=外部中斷0初始化程序=void Init_int

11、0(void) E*0=1;/開外部中斷0 IT0=1;/觸發(fā) EA=1;/=外部中斷0效勞程序= void Int0_server(void) interrupt 0 EA=0; Speed_data+; EA=1;/=定時器0初始化設置=void Time0_Init() /定時器0初始化函數TMOD=0*01; /定時器0為工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256; /初始化為定時時間為50msET0=1; /開定時器0中斷TR0=1; /開定時器EA=1; /開總開關/=定時器0中斷效勞程序=void Time0_Int() in

12、terrupt 1 /定時器0中斷子函數TH0=(65536-50000)/256;TL0=(65536-50000)%256; /初始化為定時時間為50msTime_flag+;if(Time_flag=20) Time_flag=0; get_Speed(); /=定時器1初始化設置=計算方波數void init_timer1(void)TMOD|=0*10; /定時器1為工作方式1 16bitTH1=0*FF;TL1=0*FE; ET1=1; /開定時器1中斷TR1=1; /開定時器EA=1; /開總開關/=定時器1中斷效勞程序= void timer1_server(void) int

13、errupt 3 if(PWM_flag) TH1=(65536-PWM_data*200)/256; TL1=(65536-PWM_data*200)%256; PWM=1; PWM_flag=PWM_flag; else TH1=(45536+PWM_data*200)/256; TL1=(45536+PWM_data*200)%256; /初始化為定時時間為20ms PWM=0; PWM_flag=PWM_flag; /=get_PWM=void get_PWM(void) DSW_data=Data_Bus; if(DSW_data=0*00) TR1=0; PWM=0; PWM_Pr

14、ecent0=0*30; PWM_Precent1=0*30; else PWM_data=DSW_data*100/256; PWM_Precent0=PWM_data/10+0*30; PWM_Precent1=PWM_data%10+0*30; TR1=1; /=get_Speed=void get_Speed(void) MotorSpeed0=Speed_data/100+0*30;MotorSpeed1=Speed_data/10%10+0*30;MotorSpeed2=Speed_data%10+0*30;Speed_data=0;/ 主函數 void main() PWM=0; get_PWM(); Init_int0(); Time0_Init(); init_timer1(); LCD_init(); /LCD1602初始化 LCD_write_mand(0*01

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論