版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《計(jì)算機(jī)控制》課程設(shè)計(jì)報(bào)告</p><p> 題目: 無(wú)波紋最小拍控制設(shè)計(jì) </p><p> 《計(jì)算機(jī)控制》課程設(shè)計(jì)任務(wù)書(shū)</p><p> 指導(dǎo)教師簽字: 系(教研室)主任簽字:</p><p> 2010年 7 月 5 日</p><p>
2、<b> 目 錄</b></p><p> 《計(jì)算機(jī)控制》課程設(shè)計(jì)任務(wù)書(shū)2</p><p> 1 設(shè)計(jì)任務(wù)與理論基礎(chǔ)4</p><p><b> 1.1設(shè)計(jì)任務(wù)4</b></p><p> 1.2 離散化設(shè)計(jì)方法4</p><p> 2 控制器的設(shè)計(jì)與
3、仿真5</p><p> 2.1無(wú)波紋最小拍控制器的設(shè)計(jì)5</p><p> 2.1.1 Z傳遞函數(shù)G(z)5</p><p> 2.1.2閉環(huán)Z傳遞函數(shù)Ф(z)5</p><p> 2.1.3 Z傳遞函數(shù) D(z)6</p><p> 2.1.4 數(shù)字控制器的差分方程形式6</p>
4、<p> 2.2 Simulink仿真7</p><p><b> 3 電路設(shè)計(jì)9</b></p><p> 3.1 器件選擇9</p><p> 3.2 電路設(shè)計(jì)10</p><p> 3.2.1 總電路圖10</p><p> 3.2.2 8051外圍電路1
5、0</p><p> 3.2.3ADC0809模塊11</p><p> 3.2.4 DAC0832模塊外圍電路12</p><p> 4流程圖與程序12</p><p> 4.1 流程圖12</p><p> 4.2 源程序代碼13</p><p> 5 工作總結(jié)與體會(huì)
6、16</p><p><b> 附:參考文獻(xiàn)17</b></p><p> 1 設(shè)計(jì)任務(wù)與理論基礎(chǔ)</p><p><b> 1.1設(shè)計(jì)任務(wù)</b></p><p> 無(wú)波紋最小拍控制設(shè)計(jì)</p><p> 采用零階保持器的單位反饋離散系統(tǒng),被控對(duì)象為,要求系統(tǒng)在
7、單位斜坡輸入時(shí),實(shí)現(xiàn)無(wú)波紋最小拍控制,用離散設(shè)計(jì)法設(shè)計(jì)數(shù)字控制器。</p><p> 1.2 離散化設(shè)計(jì)方法</p><p> 圖1-1計(jì)算機(jī)控制系統(tǒng)框圖</p><p> Gc(s) —— 被控對(duì)象的連續(xù)傳遞函數(shù),</p><p> D(z) —— 數(shù)字控制器的Z傳遞函數(shù),</p><p> H(s) ——
8、 零階保持器的傳遞函數(shù),</p><p> T —— 采樣周期。</p><p> 廣義對(duì)象G (s)的Z傳遞函數(shù)為:</p><p> 則閉環(huán)Z傳遞函數(shù)為:</p><p> 若已知Gc(s) ,且可根據(jù)控制系統(tǒng)的性能指標(biāo)要求構(gòu)造Ф(z),則根據(jù) </p><p><b> 和</b>
9、</p><p> 得數(shù)字控制器得離散化設(shè)計(jì)步驟:</p><p> 1)求廣義對(duì)象的Z傳遞函數(shù)G(z);</p><p> 2)根據(jù)控制系統(tǒng)的性能指標(biāo)和其他約束條件,確定所需的閉環(huán)Z傳遞函數(shù)Ф(z); </p><p> 3)求數(shù)字控制器的Z傳遞函數(shù) D(z);</p><p> 4)根據(jù)D(z)求取控制算
10、法的遞推公式,設(shè)D(z)的一般形式:</p><p> 得D(z)的計(jì)算機(jī)控制算法</p><p> 2 控制器的設(shè)計(jì)與仿真</p><p> 2.1無(wú)波紋最小拍控制器的設(shè)計(jì)</p><p> 2.1.1 Z傳遞函數(shù)G(z)</p><p> 按照離散化設(shè)計(jì)的步驟,先求得連同零階保持器的廣義對(duì)象脈沖傳遞函數(shù)為
11、:</p><p> 其在MATLAB環(huán)境下的描述語(yǔ)句如下:</p><p> G=zpk([],[0 -1],10);%傳遞函數(shù)</p><p> HG=c2d(G,1,'zoh'); %帶ZOH的離散化,采樣周期為1s</p><p><b> 程序運(yùn)行結(jié)果如下:</b></p>
12、<p> Zero/pole/gain: Zero/pole/gain:</p><p> 103.6788 (z+0.7183)</p><p> ------------------------</p><p> s (s+1)(z-1) (z-0.3679
13、)</p><p><b> 與手算結(jié)果一致。</b></p><p> 2.1.2閉環(huán)Z傳遞函數(shù)Ф(z)</p><p> 閉環(huán)脈沖傳遞函數(shù)為:</p><p> 誤差脈沖傳遞函數(shù)為:</p><p> 其在MATLAB環(huán)境下的描述語(yǔ)句如下:</p><p>
14、 z=tf([1 0],[1],1);</p><p> phil=(1+0.593/z)*(1-1/z)^2; %φe(z)</p><p> phi=1.407*(1+0.718/z)*(1-0.586/z)/z; %φ(z)</p><p><b> 程序運(yùn)行結(jié)果如下:</b>&l
15、t;/p><p> Transfer function: Transfer function:</p><p> z^3 - 1.407 z^2 - 0.186 z + 0.593 1.407 z^2 + 0.1857 z - 0.592</p><p> --------------------------
16、------- ----------------------------</p><p> z^3 z^3</p><p><b> 與手算結(jié)果一致。</b></p><p> 2.1.3 Z傳遞函數(shù) D(z)</p><p> D
17、=phi/(HG*phil); %控制器D(z)</p><p> sys0=feedback(HG,1); %未加控制器時(shí)的閉環(huán)傳函</p><p> sys=feedback(HG*D,1); %加控制器后的閉環(huán)傳函</p><p&
18、gt;<b> 程序運(yùn)行如下:</b></p><p> Zero/pole/gain:</p><p> 0.38246 z^3 (z+0.718) (z-0.586) (z-0.3679) (z-1)</p><p> ------------------------------------------------</p>
19、;<p> z^3 (z+0.7183) (z+0.593) (z-1)^2</p><p> Sampling time: 1</p><p><b> 與手算結(jié)果一致。</b></p><p> 2.1.4 數(shù)字控制器的差分方程形式</p><p><b> 根據(jù)輸出函數(shù)</b
20、></p><p><b> 可得差分方程形式</b></p><p> 2.2 Simulink仿真</p><p> 在simulink環(huán)境下建立控制模型如圖2-6所示:</p><p><b> 圖2-1</b></p><p> 輸入為單位速度輸入,運(yùn)
21、行后,雙擊虛擬示波器查看輸出</p><p> 相應(yīng)性能曲線如下所示:</p><p> 1.離散化后斜坡輸入</p><p><b> 圖2-2</b></p><p><b> 2.e(k)波形圖</b></p><p><b> 圖2-3</b
22、></p><p><b> 3.u(k)波形圖</b></p><p><b> 圖2-4</b></p><p><b> 4.離散化后輸出</b></p><p><b> 圖2-5</b></p><p>&l
23、t;b> 5.未離散化后輸出</b></p><p><b> 圖2-6</b></p><p> 由仿真圖可知控制器輸出在3拍后達(dá)到恒定,同時(shí)系統(tǒng)輸出不產(chǎn)生波紋</p><p> 經(jīng)MATLAB下的分析設(shè)計(jì)與SIMULINK下的模型仿真,我們認(rèn)為當(dāng)前設(shè)計(jì)完全符合最小拍無(wú)波紋系統(tǒng)的要求。下面將具體討論硬件電路的設(shè)計(jì)與程
24、序算法。</p><p><b> 3 電路設(shè)計(jì)</b></p><p><b> 3.1 器件選擇</b></p><p> 由于本設(shè)計(jì)對(duì)單片機(jī)的要求不高,因此控制器選擇傳統(tǒng)的8051單片機(jī)即可滿足要求,同時(shí)由于系統(tǒng)精度要求不高,可選用8位AD與DA。模數(shù)轉(zhuǎn)換芯片采用ADC0809,數(shù)模轉(zhuǎn)換芯片采用DAC0832。
25、由于系統(tǒng)采用總線結(jié)構(gòu),需要鎖存器74HC373。ADC0809的時(shí)鐘可由ALE二分頻得到,需要D觸發(fā)器74LS74, 由于ADC0809的時(shí)鐘所限,單片機(jī)晶振可選擇為6MHz。考慮到DAC0832為電流型DAC,故需要運(yùn)放轉(zhuǎn)換電路,選擇運(yùn)算放大器為L(zhǎng)M324。</p><p><b> 3.2 電路設(shè)計(jì)</b></p><p> 3.2.1 總電路圖</p&
26、gt;<p> 控制器電路原理圖如下圖所示:</p><p><b> 圖3-1</b></p><p> 3.2.2 8051外圍電路</p><p> 由于本課程設(shè)計(jì)對(duì)單片機(jī)的性能不高,因此8051單片機(jī)完全可以滿足此要求,同時(shí)51單片機(jī)也有著低廉的價(jià)格,不錯(cuò)的性能等諸多優(yōu)點(diǎn)</p><p>
27、 8051的最小系統(tǒng)電路如下圖所示</p><p><b> 圖3-2</b></p><p> 3.2.3ADC0809模塊 </p><p> 這里采用ADC0809芯片,此芯片時(shí)8位逐次逼近型A/D轉(zhuǎn)換器,帶8個(gè)模擬量輸入通道,芯片內(nèi)帶通道地址譯碼器,輸出帶三態(tài)數(shù)據(jù)鎖存器啟動(dòng)信號(hào)為脈沖啟動(dòng)方式,每一通道轉(zhuǎn)換大約100µs。
28、</p><p> ADC0809與單片機(jī)連接方式如下所示:</p><p><b> 圖3-3</b></p><p> 3.2.4 DAC0832模塊外圍電路 </p><p> DAC0832帶有數(shù)據(jù)輸入寄存器,是總線兼容型,可直接與總線相連。本電路中DA與單片機(jī)之間采用單緩沖接法,輸出采用雙極性輸出。&l
29、t;/p><p> DAC082的外圍電路如下圖所示:</p><p><b> 圖3-4</b></p><p><b> 4流程圖與程序</b></p><p><b> 4.1 流程圖</b></p><p> 算法流程圖如圖4-1所示:&l
30、t;/p><p><b> 圖4-1</b></p><p> 采樣周期設(shè)定為1s,系統(tǒng)初始化后,由定時(shí)器計(jì)時(shí),系統(tǒng)不斷查詢,若采樣周期到,則啟動(dòng)AD采樣,并根據(jù)前面計(jì)算所得公式計(jì)算D(z),最后輸出控制量u(k)經(jīng)DAC轉(zhuǎn)換后輸出。</p><p><b> 4.2 源程序代碼</b></p><p
31、> 采用C語(yǔ)言編程,編譯環(huán)境為wave6000?,F(xiàn)附含詳細(xì)注釋的源代碼如下:</p><p> /*********************************</p><p> 程序名稱:無(wú)波紋最小拍控制器</p><p> *****************************************/</p><p&g
32、t; #include <reg51.h></p><p> #include <absacc.h></p><p> #include <math.h></p><p> /*****************************************</p><p><b> 宏
33、定義</b></p><p> *****************************************/</p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> #define ADC_7 XBYTE[0x
34、7ff0] //定義模數(shù)轉(zhuǎn)換IO地址</p><p> #define DAC_1 XBYTE[0x7ff2] //定義D/A第一路的IO地</p><p> /*****************************************</p><p><b> 全局變量定義</b></p><p&
35、gt; *****************************************/</p><p> sbit str = P1^7; //定義A/D啟動(dòng)信號(hào)</p><p> sbit DIN0 = P1^0; //聲明同步信號(hào)</p><p> uint data time; //聲明變量,用于定時(shí)</p&g
36、t;<p> uchar data t0_h,t0_l; //用于存儲(chǔ)定時(shí)器0的初值</p><p> int TK=100; //聲明采樣周期變量,//采樣周期=TK*10ms</p><p> int TC; //TK的變量</p><p> float KK0=0.382 //系數(shù)kk0<
37、/p><p> float KK1=-0.364 //系數(shù)kk1</p><p> float KK2=0.082; //系數(shù)kk2</p><p> float KK3=0; //系數(shù)kk3</p><p> float PP1=-0.407; //系數(shù)pp1</p><p&g
38、t; float PP2=-0.593; //系數(shù)pp2</p><p> float PP3=0; //系數(shù)pp3</p><p> char UK; //當(dāng)前時(shí)刻的D/A輸出</p><p> char EK; //當(dāng)前時(shí)刻的偏差</p><p> char UK_1,UK_2
39、,UK_3,EK_1,EK_2,EK_3;//前3次采樣時(shí)刻的控制量和偏差</p><p> /*****************************************</p><p><b> 主函數(shù)</b></p><p> *****************************************/</p&g
40、t;<p> void main(void)</p><p><b> { </b></p><p> TMOD = 0x01;</p><p> time = 10; //定時(shí)10ms</p><p> t0_h = (65536-500*time)/256; //計(jì)算定時(shí)器0
41、初值</p><p> t0_l = (65536-500*time)%256;</p><p> t0_l = t0_l+20; //修正因初值重裝而引起的定時(shí)誤差</p><p> TH0 = t0_h;</p><p> TL0 = t0_l;</p><p> IT1 = 1;
42、 //邊沿觸發(fā)中斷</p><p> EX1 = 1; //開(kāi)外部中斷1</p><p> ET0 = 1; //開(kāi)定時(shí)中斷0</p><p> TR0 = 1; //啟動(dòng)定時(shí)器</p><p><b> TC = 1;</b></p><p&g
43、t; DAC_1= 0x80; //D/A清零</p><p> UK=UK_1=UK_2=UK_3=0;</p><p> EK=EK_1=EK_2=EK_3=0;</p><p> EA = 1; //開(kāi)總中斷</p><p><b> while(1);</b></p>
44、;<p><b> }</b></p><p> /**********************************************</p><p><b> 函數(shù)名:INT1</b></p><p> 功能 :1號(hào)外部中斷服務(wù)程序 </p><p><b&g
45、t; 參數(shù) :無(wú)* </b></p><p><b> 返回值:無(wú) * </b></p><p> ***********************************************/</p><p> void int1() interrupt 2 using 2</p><p> {
46、 float i,j;</p><p> DIN0 = 1; //讀取輸入前,先輸出高電平</p><p> if(DIN0) //判同步信號(hào)到否</p><p><b> {</b></p><p> UK=UK_1=UK_2=UK_3=0;</p><p>
47、; EK=EK_1=EK_2=EK_3=0;</p><p> DAC_1 =0x80; //D/A輸出零</p><p><b> TC=1;</b></p><p><b> }</b></p><p><b> else</b></p>
48、<p><b> {</b></p><p> TC--; //判采樣周期到否</p><p><b> if(TC==0)</b></p><p><b> {</b></p><p> EK = ADC_7-128; //采樣當(dāng)前的偏
49、差值,并計(jì)算偏差的變化量</p><p> i=EK*KK0; //計(jì)算i=EK*KK0+EK_1*KK1+EK_2*KK2+EK_3*KK3)</p><p> i=i+EK_1*KK1;</p><p> i=i+EK_2*KK2;</p><p> i=i+EK_3*KK3;</p><p>
50、 j=UK_1*PP1; //計(jì)算j=UK_1*PP1+UK_2*PP2+UK_3*PP3</p><p> j=j+UK_2*PP2;</p><p> j=j+UK_3*PP3;</p><p> i=i-j; //i-j</p><p> if(i>0) //判控制量是否溢出,溢出賦極值&
51、lt;/p><p><b> {</b></p><p> if(i>=127)</p><p><b> UK=127;</b></p><p><b> else</b></p><p> UK=(char)i;</p>&
52、lt;p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(i<-128)</p><p><b> UK=-128;</b></p><
53、;p><b> else</b></p><p> UK=(char)i;</p><p><b> } </b></p><p> DAC_1=UK+128; //D/A輸出控制量</p><p> UK_3=UK_2; //控制量遞推</p>
54、<p> UK_2=UK_1;</p><p><b> UK_1=UK;</b></p><p> EK_3=EK_2; //偏差遞退</p><p> EK_2=EK_1;</p><p><b> EK_1=EK;</b></p><p>
55、; TC=TK; //采樣周期變量恢復(fù)</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /****************************************
56、******</p><p> 函數(shù)名:Timer0</p><p> 功能 :定時(shí)器0中斷服務(wù)程序</p><p><b> 參數(shù) :無(wú) </b></p><p><b> 返回值:無(wú) </b></p><p> ***********************
57、************************/</p><p> void Timer0() interrupt 1 using 1</p><p><b> {</b></p><p> str = !str; //產(chǎn)生A/D啟動(dòng)信號(hào)</p><p> TH0 = t0_h; /
58、/重新裝入初值</p><p> TL0 = t0_l;</p><p><b> }</b></p><p><b> 5 工作總結(jié)與體會(huì)</b></p><p> 經(jīng)過(guò)兩天多的設(shè)計(jì),《計(jì)算機(jī)控制》課程設(shè)計(jì)即將結(jié)束。通過(guò)這幾天的學(xué)習(xí),我們小組確實(shí)掌握了許多。不同于以往的課程設(shè)計(jì),《計(jì)算機(jī)控
59、制》課設(shè)的包含面相當(dāng)?shù)膹V泛,不僅包括對(duì)上課時(shí)的理論基礎(chǔ)的回顧還有對(duì)數(shù)學(xué)工具M(jìn)ATLAB的學(xué)習(xí)掌握及單片機(jī)的使用。單片機(jī)這塊還包含程序編程與原理圖設(shè)計(jì),這使得課程設(shè)計(jì)的包含面非常廣泛,是一次對(duì)前面所學(xué)習(xí)科目的綜合設(shè)計(jì)。</p><p> 正因?yàn)樗婕绊?xiàng)目頗多,起初我們小組毫無(wú)頭緒,不過(guò)得益于校圖書(shū)館海量的圖書(shū)文獻(xiàn)與網(wǎng)上中文數(shù)據(jù)庫(kù)的幫助,我們迅速理清了思路,合理分工,最終完成了這次課程設(shè)計(jì)。</p>
60、<p> 最后,談?wù)剛€(gè)人體會(huì)。這次的課程設(shè)計(jì)與以前的個(gè)人單打獨(dú)斗式的課設(shè)不同,是團(tuán)隊(duì)合作模式。最后設(shè)計(jì)的順利成型也得歸功于合理的分工和有效的團(tuán)隊(duì)領(lǐng)導(dǎo)。這也是本次課程設(shè)計(jì)我本人最大的收獲,這對(duì)這之后的PLC課程設(shè)計(jì)與未來(lái)的工作能有很大的幫助。</p><p><b> 附:參考文獻(xiàn)</b></p><p> 【1】郭天祥主編.《51單片機(jī)C語(yǔ)言教程》 電
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)控制系統(tǒng)最小拍控制課程設(shè)計(jì)
- 計(jì)算機(jī)控制系統(tǒng)課程設(shè)計(jì)--最小拍控制設(shè)計(jì)
- 計(jì)算機(jī)控制課程設(shè)計(jì)
- 計(jì)算機(jī)控制_課程設(shè)計(jì)-
- 計(jì)算機(jī)控制仿真課程設(shè)計(jì)報(bào)告
- 水塔-計(jì)算機(jī)控制課程設(shè)計(jì)
- 計(jì)算機(jī)控制系統(tǒng)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)控制系統(tǒng)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)控制課程設(shè)計(jì)---達(dá)林算法計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)
- 計(jì)算機(jī)控制課程設(shè)計(jì)溫度控制
- 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)---最少拍無(wú)波紋控制器的設(shè)計(jì)與仿真
- 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)
- 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)
- 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)
- 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)
- 計(jì)算機(jī)控制及其應(yīng)用課程設(shè)計(jì)
- 計(jì)算機(jī)控制課程設(shè)計(jì)報(bào)告---數(shù)字pid控制系統(tǒng)設(shè)計(jì)
- 控制儀表與計(jì)算機(jī)控制裝置課程設(shè)計(jì)
- 計(jì)算機(jī)控制課程設(shè)計(jì)---水位控制系統(tǒng)
- 計(jì)算機(jī)控制課程設(shè)計(jì)--步進(jìn)電機(jī)角度控制
評(píng)論
0/150
提交評(píng)論