版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
[鍵入文字][鍵入文字機(jī)電系統(tǒng)仿真實(shí)驗(yàn)報(bào)告姓名:學(xué)號(hào):手機(jī):北京航空航天大學(xué)儀器科學(xué)與光電工程學(xué)院2013年6月Maple滑塊擺實(shí)驗(yàn)
實(shí)驗(yàn)一:Maple滑塊擺實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)對(duì)滑塊擺進(jìn)行Maple仿真,掌握Maple軟件的使用方法,掌握系統(tǒng)建模方法,更進(jìn)一步理解仿真對(duì)實(shí)際系統(tǒng)設(shè)計(jì)的指導(dǎo)意義。二、實(shí)驗(yàn)要求滑塊擺由一置于光滑桿上的質(zhì)量為m的滑塊A、一質(zhì)量為M的小球B和長(zhǎng)度為L(zhǎng),質(zhì)量不計(jì)的剛性桿鉸接而成,不計(jì)各處摩擦,以過(guò)A點(diǎn)的水平面為零勢(shì)能面,通過(guò)Lagrange方程建立系統(tǒng)的運(yùn)動(dòng)方程,利用Maple軟件畫(huà)出:滑塊A的位移x隨時(shí)間t的變化曲線角度φ隨時(shí)間t的變化曲線滑塊擺的運(yùn)動(dòng)動(dòng)畫(huà)xmMxmMψABL++實(shí)驗(yàn)設(shè)計(jì)系統(tǒng)的數(shù)學(xué)模型系統(tǒng)的運(yùn)動(dòng)遵循拉格朗日方程:其中:q:x(t)和θ(t)的自由度D:由于摩擦而消耗的能量Fq:自由度q產(chǎn)生的力Ec和Ep:系統(tǒng)的動(dòng)能和勢(shì)能 系統(tǒng)有兩個(gè)自由度,以x和為廣義坐標(biāo),以過(guò)A點(diǎn)的水平面為零勢(shì)能面,系統(tǒng)的動(dòng)能和勢(shì)能分別為 系統(tǒng)的Lagrange方程為 計(jì)算出諸導(dǎo)數(shù) 帶入Lagrange方程,得到系統(tǒng)的運(yùn)動(dòng)微分方程實(shí)驗(yàn)結(jié)果滑塊A的位移x隨時(shí)間t的變化曲線角度φ隨時(shí)間t的變化曲線滑塊擺的運(yùn)動(dòng)動(dòng)畫(huà)源程序restart;with(DEtools):#調(diào)用微分方程工具包with(plots):#調(diào)用圖形包with(plottools):#圖形工具包g:=9.8:m:=1:M:=1:l:=2:equ1:=(m+M)*(diff(x(t),t$2)+M*l*cos(phi(t))*(diff(phi(t),t$2)-M*l*sin(phi(t))*(diff(phi(t),t))^2=0;equ2:=l*(diff(phi(t),t$2)+cos(phi(t))*(diff(x(t),t$2)+g*sin(phi(t))=0;val:=array(1..100):forito100doval[i]:=(1/10)*ienddo:S:=dsolve({equ1,equ2,phi(0)=0,x(0)=0,(D(phi))(0)=-1.3,(D(x))(0)=1},{phi(t),x(t)},method=rkf45,type=numeric,output=val):eval(S):DEplot([equ1,equ2],[x(t),phi(t)],t=0..10,[[x(0)=0,(D(x))(0)=1,phi(0)=0,(D(phi))(0)=-1.3]],stepsize=.1,linecolor=t);#畫(huà)x(t)DEplot([equ1,equ2],[phi(t),x(t)],t=0..10,[[x(0)=0,(D(x))(0)=1,phi(0)=0,(D(phi))(0)=-1.3]],stepsize=.1,linecolor=t);#畫(huà)phi(t)fortto100do#求擺球圓心位置x(t):=S[2,1][t,4]:x1(t):=l*sin(S[2,1][t,2])+x(t):y1(t):=-l*cos(S[2,1][t,2]):enddo:fortto100dowall:=curve([[-4,0],[0.5,0]]):#畫(huà)墻壁slider:=rectangle([x(t)-.15,.15],[x(t)+.15,-.15],color=green):#畫(huà)綠色滑塊pendulum:=disk([x1(t),y1(t)],.2,color=red):#畫(huà)紅色小球lineW_P:=curve([[x(t),0],[x1(t),y1(t)]]):#畫(huà)擺線G1[t]:=display(pendulum,lineW_P,wall,slider):enddo:display([seq(G1[t],t=1..100)],insequence=true,scaling=constrained,axes=none,title=`SingledPendulum`);
CVI傳感器靜態(tài)標(biāo)定實(shí)驗(yàn)CVI傳感器靜態(tài)標(biāo)定實(shí)驗(yàn)SY1217227蘇森實(shí)驗(yàn)二:CVI傳感器靜態(tài)標(biāo)定實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康恼莆沼肅VI進(jìn)行圖形化界面設(shè)計(jì)及仿真的方法實(shí)驗(yàn)要求1讀取數(shù)據(jù),顯示散點(diǎn)圖及擬合直線2計(jì)算斜率,截?fù)?jù),均方差,線性度并顯示3生成.TXT報(bào)表實(shí)驗(yàn)設(shè)計(jì)測(cè)試系統(tǒng)的靜態(tài)特性就是指當(dāng)被測(cè)量x不隨時(shí)間變化或隨時(shí)間的變化程度遠(yuǎn)緩慢于系統(tǒng)固有的最低階運(yùn)動(dòng)模式的變化速度時(shí),測(cè)試系統(tǒng)的輸出量y與輸入量x之間的函數(shù)關(guān)系,測(cè)試系統(tǒng)的靜態(tài)特性,是通過(guò)靜態(tài)標(biāo)定的過(guò)程獲的。1線性度 一般情況下,要求傳感器具有線性特性,但傳感器的實(shí)際特性卻是非線性的曲線,這種實(shí)際特性曲線與基準(zhǔn)直線間的偏差稱為非線性誤差。傳感器的非線性誤差指標(biāo)通常用線性度表示,線性度的定義為:式中:——線性度(非線性誤差) ——在整個(gè)測(cè)量范圍內(nèi)絕對(duì)值最大的非線性誤差 ——傳感器的滿量程輸出值 由上面定義可以知道,傳感器的線性度是以基準(zhǔn)直線為參考的,實(shí)際測(cè)量中采用的是最小二乘線性度2重復(fù)性 在相同的工作條件下,在一段短的時(shí)間間隔內(nèi),輸入量從同一方向作滿量程變化時(shí),同一輸入量值所對(duì)應(yīng)的多次測(cè)量所得到的一組輸出量值,他們之間相互偏離的程度便稱為傳感器的重復(fù)性。當(dāng)傳感器在全量程范圍內(nèi)多次重復(fù)測(cè)試時(shí),同是正行程或同時(shí)反行程上對(duì)應(yīng)同一輸入量,其輸出量之間的差值稱為重復(fù)性偏差。正、反行程的重復(fù)性偏差分別為: 在全量程內(nèi),重復(fù)性偏差的絕對(duì)值的最大值與基準(zhǔn)直線上滿量程輸出之比為重復(fù)性誤差,定義如下:虛擬傳感器的標(biāo)定數(shù)據(jù)存儲(chǔ)為a.cld,b.cld兩個(gè)文件中,其數(shù)據(jù)定義為結(jié)構(gòu)體CalibrateData,聲明如下typedefstructCalibrateData{intinputnum; //輸入測(cè)量點(diǎn)數(shù)double*input; //輸入測(cè)量點(diǎn)的值,數(shù)據(jù)長(zhǎng)度為inputnumcharinputunit[10]; //輸入物理量的單位introundnum; //測(cè)量的循環(huán)數(shù)charoutputunit[10]; //測(cè)量所得物理量的單位double*output; //測(cè)量的值,其排列順序?yàn)椋旱谝谎h(huán)正行程,//第一循環(huán)反行程,第二循環(huán)正行程,//第二循環(huán)反行程,依次類推。數(shù)據(jù)長(zhǎng)度為//inputnum*2*roundnum}CALIDATA;在回調(diào)函數(shù)中利用LinFit函數(shù)計(jì)算傳感器的基準(zhǔn)直線,其函數(shù)原型如下:Intstatus=LinFit(doublearrayX[],doublearrayY[],intnumberOfElements,doubleoutputArray[],double*slope,double*intercept,double*meanSquaredError);數(shù)組X,Y為用以計(jì)算擬合直線的點(diǎn)的x軸和y軸的坐標(biāo)值,數(shù)組Z為得到的擬合直線值,數(shù)組X,Y,Z的長(zhǎng)度均為n,slope為基準(zhǔn)直線的斜率,intercept為基準(zhǔn)直線的截距,meanSquaredError為均方差,Z,X滿足如下關(guān)系Zi=slope×Xi+interceptmeanSquaredError計(jì)算公式如下實(shí)驗(yàn)結(jié)果圖1圖形化界面設(shè)計(jì)圖2運(yùn)行結(jié)果圖三生成報(bào)表圖4清空?qǐng)?bào)表源程序#include<utility.h>#include<analysis.h>#include<ansi_c.h>#include<cvirte.h> #include<userint.h>#include"calibration.h"staticintcal;/*定義斜率、截距等全局變量*/charpath[MAX_PATHNAME_LEN];double*x;double*y;//保存測(cè)量輸入如測(cè)量輸出double*z;doubleslope,intercept,square,linear,repeat;/*定義數(shù)據(jù)結(jié)構(gòu)體*/typedefstructCalibrateData{intinputnum; //輸入測(cè)量點(diǎn)數(shù)double*input; //輸入測(cè)量點(diǎn)的值,數(shù)據(jù)長(zhǎng)度為inputnumcharinputunit[10]; //輸入物理量的單位introundnum; //測(cè)量的循環(huán)數(shù)charoutputunit[10]; //測(cè)量所得物理量的單位double*output; //測(cè)量的值,其排列順序?yàn)椋旱谝谎h(huán)正行程,//第一循環(huán)反行程,第二循環(huán)正行程,//第二循環(huán)反行程,依次類推。數(shù)據(jù)長(zhǎng)度為//inputnum*2*roundnum}CALIDATA;CALIDATAdata;//定義指針data為結(jié)構(gòu)體類型intmain(intargc,char*argv[]){ if(InitCVIRTE(0,argv,0)==0) return-1; /*outofmemory*/ if((cal=LoadPanel(0,"calibration.uir",CAL))<0) return-1; DisplayPanel(cal); RunUserInterface(); DiscardPanel(cal); return0;}intCVICALLBACKSHOWCallback(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ switch(event) { caseEVENT_COMMIT: FILE*file; file=fopen("report.txt","a");//若不存在,創(chuàng)建文件 fclose(file); /*顯示報(bào)表*/ LaunchExecutable("notepad.exereport"); break; } return0;}intCVICALLBACKAQUIRECallback(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ FILE*file; double*p; double*stack1,*stack2,*stack3,*stack4; doublemax,min; intmaxindex,minindex; doublea[5]; intflag=0;//加載文件標(biāo)志 switch(event) { caseEVENT_COMMIT: /*讀取文件并保存*/ flag=FileSelectPopup("","*.cld","","載入數(shù)據(jù)文件",VAL_LOAD_BUTTON,0,0,1,1,path); if(flag>0) { file=fopen(path,"rb"); fread(&data.inputnum,sizeof(int),1,file);//讀取測(cè)量點(diǎn)數(shù) if(data.input==NULL) data.input=malloc(sizeof(double)*data.inputnum); else data.input=realloc(data.input,sizeof(double)*data.inputnum); fread(data.input,sizeof(double),data.inputnum,file);//讀取輸入測(cè)量點(diǎn)的值,為double類型 fread(data.inputunit,sizeof(char),10,file);//讀取輸入物理量的單位 fread(&data.roundnum,sizeof(int),1,file);//讀取測(cè)量循環(huán)數(shù) fread(data.outputunit,sizeof(char),10,file);//讀取測(cè)量所得物理量單位 if(data.output==NULL) data.output=malloc(sizeof(double)*2*data.inputnum*data.roundnum); else data.output=realloc(data.output,sizeof(double)*2*data.inputnum*data.roundnum); fread(data.output,sizeof(double),2*data.inputnum*data.roundnum,file);//讀取測(cè)量的值 fclose(file); } DeleteGraphPlot(CAL,CAL_GRAPH,-1,VAL_IMMEDIATE_DRAW);//刪除原有曲線 for(inti=0;i<2*data.roundnum;i++) for(intj=0;j<data.inputnum;j++) PlotPoint(CAL,CAL_GRAPH,data.input[j],data.output[i*data.inputnum+j],VAL_EMPTY_SQUARE,VAL_RED); /*為變量開(kāi)辟堆棧區(qū)*/ stack1=malloc(sizeof(double)*data.inputnum*2*data.roundnum); stack2=malloc(sizeof(double)*data.inputnum*2*data.roundnum); stack3=malloc(sizeof(double)*data.inputnum); stack4=malloc(sizeof(double)*data.roundnum*2*data.inputnum); for(inti=0;i<2*data.roundnum;i++) for(intj=0;j<data.inputnum;j++) stack1[i*data.inputnum+j]=data.input[j]; /*擬合并顯示*/ /*for(inti=0;i<=data.inputnum;i++) { ; }*/ LinFit(stack1,data.output,data.inputnum*2*data.roundnum,stack2,&slope,&intercept,&square); SetCtrlVal(CAL,CAL_SLOPE,slope); SetCtrlVal(CAL,CAL_INTERCEPT,intercept); SetCtrlVal(CAL,CAL_SQUARE,square); PlotLine(CAL,CAL_GRAPH,stack1[0],stack2[0],stack1[data.inputnum*2*data.roundnum-1],stack2[data.inputnum*2*data.roundnum-1],VAL_CYAN); /*計(jì)算線性度誤差并顯示*/ for(inti=0;i<data.inputnum*2*data.roundnum;i++) stack1[i]=abs(stack2[i]-data.output[i]); MaxMin1D(stack1,data.inputnum*2*data.roundnum,&max,&maxindex,&min, &minindex); linear=max*100/(stack2[data.inputnum*2*data.roundnum-1]-stack2[0]); SetCtrlVal(CAL,CAL_LINEAR,linear); /*計(jì)算重復(fù)性誤差并顯示*/ for(intj=0;j<data.inputnum;j++) { max=0; min=2*stack2[data.inputnum*2*data.roundnum-1];for(inti=0;i<2*data.roundnum;i++) { if(max<data.output[i*data.inputnum+j]) max=data.output[i*data.inputnum+j]; if(min>data.output[i*data.inputnum+j]) min=data.output[i*data.inputnum+j]; } stack3[j]=max-min; } MaxMin1D(stack3,data.roundnum,&max,&maxindex,&min, &minindex);repeat=max*100/(stack2[data.inputnum*2*data.roundnum-1]-stack2[0]); SetCtrlVal(CAL,CAL_REPEAT,repeat); /*生成報(bào)表*/ file=fopen("report.txt","a");//以寫(xiě)的形式打開(kāi),若不存在則創(chuàng)建 fprintf(file,"SlopeInterceptMeanSquaredErrorLinearRe
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版小程序SDK接入授權(quán)合同模板3篇
- 2025年度美容院加盟店品牌形象保護(hù)合同范本4篇
- 2025版國(guó)際合同授權(quán)委托書(shū)定制模板3篇
- 城市配送與物流配送環(huán)節(jié)的信息互聯(lián)互通考核試卷
- 常州鋰電池生產(chǎn)廠2025年度消防設(shè)備采購(gòu)合同2篇
- 二零二五年度古法工藝木屋建造技藝傳承合同4篇
- 物業(yè)設(shè)施設(shè)備維護(hù)2025年度合同3篇
- 設(shè)備租賃公司二零二五年度施工塔吊租賃合同
- 2025年代理銷售分銷鏈銷售協(xié)議
- 2025年因施工責(zé)任賠償協(xié)議
- 開(kāi)展課外讀物負(fù)面清單管理的具體實(shí)施舉措方案
- 2025年云南中煙工業(yè)限責(zé)任公司招聘420人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025-2030年中國(guó)洗衣液市場(chǎng)未來(lái)發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 北京市房屋租賃合同自行成交版北京市房屋租賃合同自行成交版
- 《AM聚丙烯酰胺》課件
- 技術(shù)支持資料投標(biāo)書(shū)
- 老年人意外事件與與預(yù)防
- 預(yù)防艾滋病、梅毒和乙肝母嬰傳播轉(zhuǎn)介服務(wù)制度
- 《高速鐵路客運(yùn)安全與應(yīng)急處理》課程標(biāo)準(zhǔn)
- 23J916-1:住宅排氣道(一)
評(píng)論
0/150
提交評(píng)論