直流伺服電機(jī)控制系統(tǒng)設(shè)計(jì)_第1頁
直流伺服電機(jī)控制系統(tǒng)設(shè)計(jì)_第2頁
直流伺服電機(jī)控制系統(tǒng)設(shè)計(jì)_第3頁
直流伺服電機(jī)控制系統(tǒng)設(shè)計(jì)_第4頁
直流伺服電機(jī)控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

電3倍息與電氣工程系課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目:直流伺服電機(jī)控制系統(tǒng)設(shè)計(jì)系別:電壬信息與電氣工?系年級(jí)專業(yè):學(xué)號(hào): 學(xué)生姓名: 2006級(jí)自動(dòng)化專業(yè)《計(jì)算機(jī)控制技術(shù)》課程設(shè)計(jì)任務(wù)書Kp=KKi=EKd二時(shí)仿真圖和PI控制閉環(huán)響應(yīng)曲線相比較可知:系統(tǒng)響應(yīng)時(shí)間變短,超調(diào)變小,但仍不符合要求;Kp=5、Ki=EKd二時(shí)仿真圖與KP=1、KI=1、KD=時(shí)的仿真圖相比,系統(tǒng)超調(diào)和調(diào)節(jié)時(shí)間都變小,仍然不符合要求,繼續(xù)校正。需加大Kp及Ki。

Kp二12、Ki=KKd二時(shí)仿真圖由上曲線知此時(shí)系統(tǒng)有微量的超調(diào),進(jìn)一步加大Ki時(shí)超調(diào)為零。Kp二12、Ki=l.Kd=時(shí)仿真圖經(jīng)過多次校正參數(shù),此時(shí)當(dāng)Kp=12、Ki=l、Kd=時(shí)系統(tǒng)超調(diào)量為0,穩(wěn)態(tài)誤差為0,性能滿足設(shè)計(jì)要求,穩(wěn)定、準(zhǔn)確、快速得到了完滿的統(tǒng)一。6.小結(jié)控制系統(tǒng)特點(diǎn)是以單片機(jī)為控制器,通過鍵盤設(shè)置輸入轉(zhuǎn)速值,使得電機(jī)的轉(zhuǎn)速設(shè)置方便快捷,另外又通過軟件實(shí)現(xiàn)系統(tǒng)轉(zhuǎn)速設(shè)置范圍的保護(hù)。但在proteus中沒能實(shí)現(xiàn)閉環(huán)系統(tǒng)的PID控制。此缺點(diǎn)通過軟件彌補(bǔ),在MATLAB軟件中的SIMULINK中進(jìn)行了直流伺服電機(jī)的開環(huán)控制系統(tǒng)仿真,單位閉環(huán)控制系統(tǒng)仿真,,閉環(huán)PI控制系統(tǒng)仿真,閉環(huán)PD控制仿真,,閉環(huán)PID控制仿真能夠更好的測(cè)試和控制系統(tǒng)的性能,從而為設(shè)計(jì)事物提供了更準(zhǔn)確的性能指標(biāo)。參考文獻(xiàn)[1]于海生.計(jì)算機(jī)控制技術(shù)[加.北京:機(jī)械工業(yè)出版社,[2]周荷琴等.微型計(jì)算機(jī)原理及接口技術(shù)[M].合肥:中國科技大學(xué)出版社,[3]張毅剛等.單片機(jī)原理與應(yīng)用設(shè)計(jì)[M].北京:電子工業(yè)出版社[4]樓然苗.51系列單片機(jī)設(shè)計(jì)實(shí)例[M].北京:北京航空航天大學(xué)出版,⑸陳小忠等.單片機(jī)接口技術(shù)實(shí)用子程序.北京:人民郵電出版社,[6]計(jì)算機(jī)控制技術(shù)實(shí)驗(yàn)指導(dǎo)書附錄單片機(jī)控制程序清單:^include”〃//#include””//#include””//#include””//^include””#defineuncharunsignedchar"defineunintunsignedintvoidwdata(unchardat);//writedatafunctionvoidwcom(uncharcom);//writecommandfunctionvoiddelay(unchart);//delayfunctionsbitrw=P3l;//rwsbitrs=P3^0;//rssbiten=P3*2;//en^defineMAX.LEN16 //數(shù)據(jù)最大長度#definecount_Ml50000#defineH_0(65536-counOIl)/256#defineL_0(65536-counOIl)%256uncharcodetab2[]={0x31,0x32,0x33,0x41,0x34,0x35,0x36,0x42,0x37,0x38,0x39,〃鍵盤求值表0x43,OxOe,0x30,OxOf,0x44};〃鍵盤求值表uncharcodetab3[]={,,TargetValue:”};uncharcodetab4口二{""};uncharcodetab6口={“inputERR"};uncharserial-data[MAX_LEN],serial_len=0,sure_flag=0;voidwdata(unchardat);//writedatafunctionvoidwcom(uncharcom);//writecommandfunctionvoiddelair(unchart);//delayfunctionvoidkeyscan(void);〃鍵盤操作程序uncharscankey(void);//鍵盤求值程序voidchushi(void);〃初始化程序//voidinit_serial(void);〃串口初始化//voiduart_serial(void);〃串口主程序voidlcd_wTite(void);〃液晶顯示待發(fā)送指令uncharjisuan(void);〃計(jì)算結(jié)果為十進(jìn)制unintfreq=0;〃頻率變量sfrl6DPTR=0x82;〃申明DPTRchartimes=0;〃計(jì)算TO中斷次數(shù)//delayfunction//P0=0x00;〃中斷初始化voidinit_interrup(void)IE=0x8a;〃啟用TO,T1中斷TM0D=0x51;〃Tl為計(jì)數(shù)器,T2為定時(shí)器,都采用modelTH0=H_0;TL0=L_0;TH1=O;TL1=O;TRO=1;TR1=1;)voiddelay(unchart)(unchara,b;for(a=0;a<t;a++)for(b=0;b<128;b++);)//ThefunctionforwritedatatoLCDscreenvoidwdata(unchardat)(Pl二dat;rs=l;rw=0;en=0;delay(6);en=l;)//ThefunctionforwritecommandtoLCDscreenvoidwcom(uncharcom)(Pl=com;rs=0;rw=0;en=0;delay(6);en=l;)〃初始程序voidchushi(void)(unchari;wcom(0x01);wcom(0x38);wcom(OxOc);wcom(0x06);delay(4);wcom(0x80);delay(4);for(i=0;i<17;i++)(wdata(tab3[i]);)wcom(OxcO);delay(2);)〃鍵盤求值程序uncharscankey(void)(unchartemp,c,d;P2=0x0f;temp=P2;temp二temp&OxOf;〃屏蔽高四位,取列值temp=~(tempOxfO);〃將temp中的內(nèi)容與OxfO進(jìn)行相加,最后求反可得到是那列按下if(temp==l)c=0;〃位低電平elseif(temp==2)c=l;〃位低電平elseif(temp==4)c=2;〃位低電平elseif(temp==8)c=3;〃位低電平elsec=0;〃否則給返回值C=0P2=0xf0;〃給P2的行為高電平,以來判斷是高四為的那位為低電平delay(1);temp=P2;temp=temp&OxfO;〃屏蔽低四位temp="((temp?4)OxfO);〃將temp中的高四位向右移動(dòng)4位,與OxfO相加,最后求反可以得到是那行按下if(temp==l)C=c+0;〃將行的值加上列的值elseif(temp==2)C=c+4;〃將行的值加上列的值elseif(temp==4)C=c+8;〃將行的值加上列的值elseif(temp==8)c=c+12;〃將行的值加上列的值elsec=0;d=tab2[c];return(d);〃最后返回行加列的值}//lcd_writefunctionvoidlcd_write(void){uncharwrite_0,write」,jian_zhi[MAX_LEN];for(write_0=0;write_0<MAX_LEN;write_0H)(serial_data[write_0]=0;} 〃清空發(fā)送緩沖數(shù)組wcom(OxOf); //將光標(biāo)置在oxcO處serial_len=0;delay(2);while(1){write_l=0xc0; 〃光標(biāo)地址wcom(write」);for(write.0=0;write_0<MAX_LEN;) 〃輸入指令最大為MAX.LEN(wcom(write_l);P2=0x0f; //等待鍵盤值while((P2&0x0f)==0x0f);jian_zhi[write_O]=scankey0;delay(l);P2=0x0f;while((P2&0x0f)!=0x0f); 〃等待按鍵放松if(jian_zhi[write_0]^0x0e) 〃當(dāng)按一下取消鍵時(shí)清空所有發(fā)送緩沖數(shù)組,( 〃當(dāng)連續(xù)按下兩次時(shí)則取消本次通訊,退出if(write_0==0)gotowrite_out;elseif(write_0>=l){write_l-=l;wcom(write」);write_0-=l;wdata(tab4[0]);serial_data[write_0]=0;serial_len—;)elseif(jian_zhiEwrite_O]=OxOf) 〃確定發(fā)送的指令(if(serial_len==3){if(serial.data[0]<2)sure_flag-H-;elseif(serial_data[0]>2);else{if(serial_dataEl]<5)sure_flag++;elseif(serial_datall]>5);else(if(serial_data[2]<6)sure_flag++;else;)))elsesure_flag++; 〃確定的標(biāo)志位gotowrite_out; 〃退出本次輸入指令}else(wdata(jian_zhi[write_0]);if(jian_zhi[write_0]<=0x39)serial_data[write_0]=jian__zhi[write_0]-0x30;elseserial_dataEuTite_O]=jian_zhi[write_0]-0x37;write_l++;write_0++;serial_len++;}))write_out:delay(1);)〃合并數(shù)組voidserial_and(void)uncharandO,andl,and2=0;andl=serial」en/2;for(and0=0;andO<andl;andO++)(serial_dataLandO]=(serial_dataEand0+and2++]?4)serial_data[and0+and2];))〃鍵盤操作voidkeyscan(void)(uncharks_0,ks_l;delay(2);〃延時(shí)去抖動(dòng)P2=0x0f;if((P2&0x0f)!=0x0f)〃延時(shí)后在判斷一次,去除抖動(dòng)影響(ks_O=scankey0;〃求鍵盤值P2=0x0f;while((P2&0x0f)!=0x0f);〃等待放松while(ks_0二二0x41)(switch(ks_0)(case0x41:(chushi();lcd_write();〃調(diào)用寫指令程序if((sure_flag-l)&&(serial_len<=3)&&(jisuan0<256))〃發(fā)送指令的條為確認(rèn)發(fā)送標(biāo)志sure_flag=l&&本次發(fā)送指令的個(gè)數(shù)erial_len=6(sure_flag=0;//清除確定標(biāo)志〃serial_and();〃合并數(shù)組//serial_len/=2;//uart_serial();〃調(diào)用發(fā)送指令程序//P0=serial_data[0];P0=jisuan0;//P0=255;)else{wcom(OxcO);for(ks_O=O;ks_0<10;ks_0++)(wdata(tab6[ks_O]);}for(ks_O=O;ks_0<10;ks_O++)delay(250);)delay(1);}break;default:break;)ks_0=0;)sure_flag=0;serial_len=0;chushi0; 〃初始化,等待下一次發(fā)送指令wcom(OxcO);for(ks_l=O;ks_l<MAX_LEN;ks_l++)〃清空發(fā)送緩沖數(shù)組serial_data[ks_l]=0;)}//求取輸入值轉(zhuǎn)換為十進(jìn)制uncharjisuan(void)(uncharjieguo;if(serial_len==3)jieguo=serial_data[0]*100+serial_data[l]*10+serial_data[2];elseif(serial_len==2)jieguo=serial_dataL0j*10+serial_data.l];elseif(serial_len==l)jieguo=serial_data[0^;else;//jieguo?2;return(jieguo);)〃的中斷,計(jì)算頻率voidT0_lS(void)i

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論