2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《工業(yè)系統(tǒng)驅(qū)動與控制》</p><p><b>  設(shè)計報告</b></p><p><b>  設(shè)計內(nèi)容與要求</b></p><p>  在某工業(yè)系統(tǒng)中,需要一個由計算機(jī)精確控制的施力裝置,用來對某系統(tǒng)進(jìn)行力加載試驗,請設(shè)計一個能夠精確控制輸出力為180公斤的工業(yè)控制系統(tǒng)。</p>

2、<p><b>  要求:</b></p><p>  1)使用本門課所學(xué)知識,按上述要求設(shè)計系統(tǒng),畫出系統(tǒng)組成框圖,</p><p>  并注明各個環(huán)節(jié)的輸入和輸出信號的形式; </p><p>  2)簡單描述系統(tǒng)的工作原理或過程; </p><p>  3)列出系統(tǒng)及調(diào)試所用的儀器設(shè)備和主要器件; <

3、;/p><p>  4)畫出軟件流程框圖;</p><p>  5)改寫DRAWINGC.C或CONTOL_D.C程序,實現(xiàn)控制;(將本課程所用采集</p><p>  卡的位數(shù)改為10位,選用13路AD采集通道,2路DA控制輸出通道)</p><p><b>  附:</b></p><p>  一

4、、傳感器型號為XYL-1,指標(biāo)如下:</p><p>  1)量程:0~200kg</p><p>  2)工作電壓為10V</p><p>  3)輸出范圍0~20mV</p><p>  4)傳感器是線性的。</p><p>  二、電壓/力轉(zhuǎn)換器(執(zhí)行器):輸入0~10V,輸出0~200公斤,輸出線性。</

5、p><p><b>  設(shè)計分析</b></p><p>  首先針對題目進(jìn)行分析可以看到,本題具體要求可以抽象成一個比較簡單的工業(yè)問題,即如何通過數(shù)字控制以實現(xiàn)信號的穩(wěn)定,快速,精確輸出。結(jié)合本課程的內(nèi)容,可以基本確定其主體結(jié)構(gòu)為一數(shù)字PID控制系統(tǒng),通過PID反饋網(wǎng)絡(luò)對信號進(jìn)行調(diào)節(jié)從而實現(xiàn)題設(shè)中壓力的輸出。故而整個系統(tǒng)執(zhí)行流程大致如下:</p><

6、p><b>  圖1 系統(tǒng)工作流程</b></p><p>  在工控計算機(jī)中輸入指定輸出的壓力,例如本題為180,由于題中壓力轉(zhuǎn)換器的參數(shù)可知,輸入范圍為0-10V,輸出為0-200,故而根據(jù)其線性特性二者可以建立以下關(guān)系:,其中。取該值進(jìn)行線形計算可知180壓力對應(yīng)電壓為9V,即我們需要通過采集卡輸出9V電壓。從而工控計算機(jī)可以通過相應(yīng)的數(shù)字/模擬轉(zhuǎn)換函數(shù)對采集卡進(jìn)行操作達(dá)到以上目

7、的。</p><p>  當(dāng)系統(tǒng)通過采集卡輸出電壓至電壓/壓力轉(zhuǎn)換器后,將產(chǎn)生相應(yīng)的壓力作用于受力物體上,但是受制于工業(yè)機(jī)械的性能問題,受力物體無法在較短時間內(nèi)精確接受到相應(yīng)的壓力,從而影響了工業(yè)系統(tǒng)的性能。因此,我們在此引入反饋系統(tǒng)進(jìn)行調(diào)節(jié)。</p><p>  利用壓力傳感器實時采集當(dāng)前受力對象所受的壓力并轉(zhuǎn)換成電壓信號輸入到采集卡中,注意,由于壓力傳感器的可用輸出電壓范圍僅為0-20

8、mV,在采集卡增益處理時需要選擇比較大的增益倍數(shù),否則無法精確地處理數(shù)據(jù),或者可以再此處加入比例放大電路來實現(xiàn)電壓放大功能,但是會因此產(chǎn)生延遲。</p><p>  通過采集卡的AO通道將電壓返回工控計算機(jī)中,利用指定的PID算法進(jìn)行調(diào)整并再次輸出,同時,在屏幕上繪制圖像來判斷壓力信號是否在較短的時間內(nèi)到達(dá)穩(wěn)定的輸出值。</p><p>  在該系統(tǒng)實現(xiàn)之前,需要針對具體的PID系統(tǒng)參數(shù)進(jìn)

9、行調(diào)試,從而達(dá)到最優(yōu)控制的效果。</p><p>  通過以上流程可以基本實現(xiàn)PID程序控制。</p><p><b>  主要設(shè)備器件</b></p><p><b>  基本器件如下:</b></p><p>  IPC-610/RK-40610工控計算機(jī)1臺</p><p&

10、gt;  PCL-812PG/ACL-8112PG數(shù)據(jù)采集卡一塊</p><p>  PCLD-880 REV.A1或ACLD-9188 REV.B1端子板一塊</p><p>  20pin扁平電纜一條或37pinD形電纜一條</p><p>  XYL-1壓力傳感器一臺</p><p>  電壓/壓力轉(zhuǎn)換器一臺</p>&l

11、t;p>  直流穩(wěn)壓輸出電源一臺</p><p><b>  各色導(dǎo)線若干</b></p><p>  為了實現(xiàn)比例放大電路,以下器件可選:</p><p><b>  電阻,電阻各一</b></p><p>  UA741運算放大器</p><p>  通過以上放大電

12、路,根據(jù)深反 饋原理,可以實現(xiàn)電壓100倍放大,故而此時反饋電壓范圍可以擴(kuò)展到0-2V。</p><p><b>  工控軟件設(shè)計</b></p><p>  為了實現(xiàn)PID調(diào)節(jié)功能,在此給出其程序設(shè)計流程圖以及部分核心函數(shù)的代碼,但是在開始之前,需要針對PID系統(tǒng)的三大參數(shù)進(jìn)行調(diào)試確定工作。線代PID參數(shù)確定一般采用兩種方法,一是使用最為廣泛的人工調(diào)試法,二是基

13、于神經(jīng)網(wǎng)絡(luò)或是遺傳算法等高級智能算法進(jìn)行參數(shù)自適應(yīng)調(diào)整從而達(dá)到最優(yōu)效果。此處采用人工調(diào)試法。</p><p>  經(jīng)過調(diào)試后得合適的PID參數(shù),即比例項,積分項,微分項參數(shù)。</p><p><b>  圖2 軟件流程圖</b></p><p><b>  核心代碼:</b></p><p>  #

14、include "math.h"</p><p>  #include "graphics.h"</p><p>  int Base=0x220;</p><p>  DA(int port, int data) //數(shù)字轉(zhuǎn)模擬并執(zhí)行輸出</p><p><b>  {</b>&

15、lt;/p><p>  short high,low;</p><p>  low=data&0xff;</p><p>  high=(data>>8)&0x0f;</p><p>  outportb(Base+4+port*2,low);</p><p>  outportb(Base+5

16、+port*2,high);</p><p><b>  }</b></p><p>  int AD (int port) //在指定端口獲取模擬量并轉(zhuǎn)為數(shù)字信號</p><p><b>  {</b></p><p>  short high,low,temp;</p><

17、p>  int outdata;</p><p>  outportb(Base+10,port);</p><p>  outportb(Base+9,2);//增益為(010)d,即Gain=4,放大4倍</p><p>  outportb(Base+11,1);</p><p>  outportb(Base+12,0x

18、ff);</p><p>  temp=inportb(Base+5);</p><p>  temp=temp&0x10;</p><p>  while(temp==0x10)</p><p><b>  {</b></p><p>  temp=inportb(Base+5);<

19、;/p><p>  temp=temp&0x10;</p><p><b>  }</b></p><p>  high= inportb(Base+5);</p><p>  low = inportb(Base+4);</p><p>  outdata=high&0x0f;<

20、;/p><p>  outdata=outdata<<8;</p><p>  outdata=outdata+low;</p><p>  return(outdata);</p><p><b>  }</b></p><p>  ////////////////////以下均為Dra

21、wingc.c自帶圖形繪制函數(shù)//////////////</p><p>  void auto_initgraph()</p><p><b>  {</b></p><p>  int gd=DETECT,mode,erro;</p><p>  mode=0;erro=0;</p><p>

22、;  closegraph();</p><p>  initgraph(&gd,&mode,"");</p><p>  erro=graphresult();</p><p>  if(erro<0)</p><p>  {printf("initgraph erro/n");

23、</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void draw_xy(ox,oy,widthx,heighty,color)</p><p>

24、  int ox,oy,widthx,heighty,color;</p><p><b>  {</b></p><p>  int points1[8],points2[8];</p><p>  setcolor(color);</p><p>  setlinestyle(0,0,1);</p>&

25、lt;p>  moveto(ox,oy);lineto(ox,oy-heighty);</p><p>  moveto(ox,oy);lineto(ox+widthx,oy);</p><p>  setfillstyle(1,color);</p><p>  points1[0]=ox;points1[1]=oy-heighty-(int)(height

26、y/20);</p><p>  points1[2]=ox-(int)(heighty/110);</p><p>  points1[3]=oy-heighty;</p><p>  points1[4]=ox+(int)(heighty/110);</p><p>  points1[5]=oy-heighty;</p>

27、<p>  points1[6]=points1[0];points1[7]=points1[1];</p><p>  fillpoly(4,points1);</p><p>  points2[0]=ox+widthx+(int)(widthx/25);</p><p>  points2[1]=oy;points2[2]=ox+widthx;<

28、;/p><p>  points2[3]=oy-(int)(widthx/150);</p><p>  points2[4]=ox+widthx;</p><p>  points2[5]=oy+(int)(widthx/150);</p><p>  points2[6]=points2[0];points2[7]=points2[1];&l

29、t;/p><p>  fillpoly(4,points2);</p><p>  settextstyle(0,0,1);</p><p>  outtextxy(ox+6,oy+6,"o");</p><p>  outtextxy(points1[0]+6,points1[1],"y");</p

30、><p>  outtextxy(points2[0],points2[1]+6,"x");</p><p><b>  }</b></p><p>  void draw_dash(ox,oy,widthx,heighty,color)</p><p>  int ox,oy,widthx,height

31、y,color;</p><p><b>  {</b></p><p>  int i,fx,fy;</p><p>  setcolor(color);</p><p>  setlinestyle(1,0,1);</p><p>  for(i=1;i<11;i++)</p>

32、;<p><b>  {</b></p><p>  fx=ox+i*widthx/10.0;</p><p>  moveto(fx,oy);</p><p>  fy=oy-heighty;</p><p>  lineto(fx,fy);</p><p><b>  

33、}</b></p><p>  for(i=1;i<11;i++)</p><p><b>  {</b></p><p>  fy=oy-i*heighty/10.0;</p><p>  moveto(ox,fy);</p><p>  fx=ox+widthx;</p

34、><p>  lineto(fx,fy);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void draw_curve(pointsx,pointsy,points_num,max_v,ifdrawdash)</p><p>

35、;  double *pointsx,*pointsy,max_v;</p><p>  int points_num,ifdrawdash;</p><p><b>  {</b></p><p>  int i,widthx,heighty,ox,oy;</p><p><b>  int x,y;<

36、/b></p><p>  double xpert,yperv;</p><p>  ox=20;oy=400;</p><p>  widthx=550; heighty=370;</p><p>  yperv=heighty/max_v;</p><p>  xpert=((double)widthx)/

37、((double)points_num-1.0);</p><p>  if(ifdrawdash==1) draw_dash(ox,oy,widthx,heighty,3);</p><p>  draw_xy(ox,oy,widthx+10,heighty+10,2);</p><p>  setcolor(4);</p><p>  

38、setlinestyle(0,0,1);</p><p>  for(i=0;i<(points_num-1);i++)</p><p><b>  {</b></p><p>  x=(int)(ox+pointsx[i]*xpert);</p><p>  y=(int)(oy-pointsy[i]*yperv

39、);</p><p>  moveto(x,y);</p><p>  x=(int)(ox+pointsx[i+1]*xpert);</p><p>  y=(int)(oy-pointsy[i+1]*yperv);</p><p>  lineto(x,y);</p><p><b>  }</b&

40、gt;</p><p><b>  return;</b></p><p><b>  }</b></p><p>  /////////////////////////////////////////////////////////////////////</p><p>  //////////

41、/////////////////主函數(shù)///////////////////////////////////</p><p><b>  main()</b></p><p><b>  {</b></p><p>  int i,t,da_out;</p><p>  double x[200]

42、,y[200],e1,e2,Ey,u,sume;</p><p>  double kp,ki,kd;</p><p>  double Nout;</p><p>  t=1000;da_out=0;</p><p>  scanf("%f,%f,%f",&kp,&ki,&kd);//輸入經(jīng)過

43、調(diào)試后的PID參數(shù)</p><p>  scanf("%f ",&Nout);//讀取輸出的壓力,用戶可輸入180</p><p>  Ey=Nout/20.0; //將期望輸出壓力轉(zhuǎn)換為相應(yīng)的期望電壓</p><p>  e1=Ey-0.0; e2=0.0; sume=e1;</p><p>  DA(0,0);

44、//clear DA輸出</p><p>  for(i=0;i<200;i++)</p><p><b>  { </b></p><p>  u=kp*e1+ki*sume+kd*(e1-e2);</p><p>  If(u>8.0) u=8.0;</p><p>  I

45、f(u<0.0) u=0.0;</p><p>  da_out=(int)(u/10.0*1023.0); </p><p>  //采集卡位數(shù)為10位, 故最大值發(fā)生改變</p><p>  DA(0,da_out); </p><p>  delay(t);//延時</p><p>  y[i]=(

46、AD(13)/1023.0*8.0)*10.0/8.0-8.0;</p><p>  //注意,傳感器經(jīng)過100倍放大再加上采集卡增益后對應(yīng)的電壓范圍為0-8V,故而需要再做一次線性變換來符合執(zhí)行器0-10V輸入電壓范圍</p><p><b>  x[i]=i;</b></p><p>  e2=e1;e1=Ey-y[i];sume=sume

47、+fabs(e1); </p><p><b>  }</b></p><p>  auto_initgraph();//初始化圖像設(shè)備</p><p>  draw_curve(x,y,200,10.0,1); //畫圖</p><p><b>  getch();</b></p&

48、gt;<p><b>  DA(0,0);</b></p><p>  closegraph(); //關(guān)閉圖像設(shè)備 </p><p><b>  }</b></p><p>  /////////////////////////////////////////////////////////////////

49、////</p><p><b>  總結(jié)與感想</b></p><p>  通過以上程序以及設(shè)計流程可以基本實現(xiàn)題目要求的功能,在此可以看到,反饋這一概念在工業(yè)控制中常常扮演重要角色,特別是在精確控制等領(lǐng)域。事實上,反饋的思想在電工學(xué),生理學(xué)等多方面均有表現(xiàn)。</p><p>  本次實驗尚有一些不足,主要是程序未能在真實場景中進(jìn)行測試,故而

溫馨提示

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

評論

0/150

提交評論