【正文】
反饋。運用 Matlab 編程 求出對應(yīng)于零點 ?? 的極點為 5cp?? ,因此校正后系統(tǒng)的開環(huán)傳遞函數(shù)為: ( 1 .2 )() ( 1 ) ( 2 ) ( 5 )KsGs s s s s?? ? ? ? 其根軌跡如圖 2所4 R o o t L o cu sR e a l A xi s ( se co n d s1)Imaginary Axis (seconds1) 2 5 2 0 1 5 1 0 5 0 5 10 1 5 1 05051015S yst e m : GG a i n : 2 9 . 5P o l e : 1 + 1 . 7 1 iD a m p i n g : 0 . 5 0 7O ve r sh o o t ( % ) : 1 5 . 8F r e q u e n cy ( r a d / s) : 1 . 9 8 圖 2 校正后系統(tǒng)根軌跡 根據(jù)幅值條件,可以求出系 統(tǒng)工作于點 ds 的 K 值為 30。 P0 口作為普通 I/O口使用,故需接入上拉電阻。 ( 3) D/A 選用 DAC0832。 D/A 轉(zhuǎn)換結(jié)果采用電流形式輸出,可通過外接運算放大 器將其轉(zhuǎn)換成電壓。 上一步選取了采樣周期為 ,由 Matlab運算得到離散化之后的控制器脈沖傳函為 : 0 .9 8 1 5 z 0 .9 6 9 8 z 0() .9 5 1 2cGz ? 求得相應(yīng)的差分方程為: ( ) 0. 98 15 ( ) 0. 96 98 ( 1 ) 0. 95 12 ( 1 )u k e k k u k? ? ? ? ?。首先啟動 A/D轉(zhuǎn)換,當(dāng)轉(zhuǎn)換完成時, 觸發(fā)單片機外部中斷,進入中斷服務(wù)子程序程序。 使用 keil 開發(fā)環(huán)境 進行程序編寫調(diào)試。 程序流程圖如下所示: 開 始初 始 化開 定 時 器 中 斷 T 0W h ile ( 1 ) 等 待定 時 器 T 0 中 斷開 始讀 A / D根 據(jù) 公 式 計 算u ( k ) 并 輸 出啟 動 A / D 轉(zhuǎn) 換更 新 u ( k 1 ) 、 e ( k 1 )重 裝 初 值等 待 A / D 轉(zhuǎn) 換 結(jié) 束中 斷 返 回 圖 12 軟件流程圖 心得體會 本次課程設(shè)計持續(xù)一周時間,在這一周內(nèi),我完成了從系統(tǒng)設(shè)計到控制器的具體編程 實現(xiàn) 等工作 ,有很大的收獲。 在以后的學(xué)習(xí)工程中,我一定會積極拓寬自己的視野,多接觸一些新知識,豐富自己,提升自己。 den=conv([1 1 0],[1 4])。 T=feedback(G,1)。 x=20::1。 figure(1)。%期望極點處閉環(huán)傳函 figure(2)。 Gs=tf(num,den)。%連續(xù)系統(tǒng)的被控對象傳函 Gpz=c2d(Gp,39。 sysd=Gz*Gpz。, sysd, 39。 grid。 sbit ADWR=P2^1。 static float uk=0。//P1口為讀 A/D的數(shù)據(jù)口,將其初始化為全 1 P2=0xff。//設(shè)置定時器 TO為工作方式 1 TH0=(6553610000)/256。 //開總中斷 ET0=1。 //重裝初值 TL0=(6553510000)%256。 ADWR=0。 //INTR低電平 表示 A/D轉(zhuǎn)換完成 //下面進行讀取 A/D,并賦值給 e(k) P1=0xff。 _nop_()。 P