《計(jì)算機(jī)控制》課程設(shè)計(jì)報(bào)告---無(wú)波紋最小拍控制設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論