版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1第3章 MATLAB程序設(shè)計2本章目標(biāo) 掌握MATLAB的幾種基本控制轉(zhuǎn)移語句學(xué)會使用M文件進(jìn)行編程具備對復(fù)雜問題的編程求解能力3主要內(nèi)容3.1 程序設(shè)計概述3.2 MATLAB程序結(jié)構(gòu)3.3 M文件43.1 程序設(shè)計概述MATLAB是第四代編程語言程序簡潔可讀性很強(qiáng)調(diào)試容易編程效率高易移植和維護(hù) 通過編程可求解復(fù)雜性更高或特殊的問題53.2 MATLAB程序結(jié)構(gòu)按照程序設(shè)計的觀點(diǎn), 任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合來實(shí)現(xiàn): 順序結(jié)構(gòu):程序按程序語句或模塊在執(zhí)行流中的順序逐個執(zhí)行。 選擇結(jié)構(gòu):程序按設(shè)定的條件實(shí)現(xiàn)程序執(zhí)行流的多路分支。 循環(huán)結(jié)構(gòu):程序按給定的條件重
2、復(fù)地執(zhí)行指定的程序段或模塊。63.2.1順序結(jié)構(gòu)程序模塊1程序模塊2MATLAB中實(shí)現(xiàn)順序結(jié)構(gòu)的方法非常簡單:只需將程序語句順序排列即可 73.2.2 選擇結(jié)構(gòu)在MATLAB中,選擇結(jié)構(gòu)由兩種語句結(jié)構(gòu)實(shí)現(xiàn):if語句switch語句條件程序模塊1成立不成立程序模塊23.2.2 選擇結(jié)構(gòu)8if語句if表達(dá)式 程序模塊1 else 程序模塊2end9if語句的兩種變形(1) 單分支if語句:只有一個分支的選擇結(jié)構(gòu) if表達(dá)式 程序模塊end(2) 多分支if語句:超過2個的選擇if表達(dá)式1 程序模塊1 elseif 表達(dá)式2 程序模塊2 elseif 表達(dá)式n 程序模塊n else 程序模塊n+1e
3、nd10例:將百分制的學(xué)生成績轉(zhuǎn)換為五級制的成績輸出clearn=input(輸入n= ); if n=90 r=Aelseif n=80 r=Belseif n=70 r=Celseif n=60 r=Delse r=Eend運(yùn)行結(jié)果:輸入n= 87r =B112.switch語句 switch 表達(dá)式 case 數(shù)值1 程序模塊1; case 數(shù)值2 程序模塊2;otherwise 程序模塊n end12例:將百分制的學(xué)生成績轉(zhuǎn)換為五級制的成績輸出使用switch語句 clearn=input(輸入n= ); switch fix(n/10) %向0靠攏取整。 case 10,9 r=A
4、case 8 r=B case 7 r=C case 6 r=D otherwise r=Eend運(yùn)行結(jié)果:輸入n= 65r =D133.2.3 循環(huán)結(jié)構(gòu)在MATLAB中,循環(huán)結(jié)構(gòu)可以由兩種語句結(jié)構(gòu)實(shí)現(xiàn):for語句循環(huán)結(jié)構(gòu)while語句循環(huán)結(jié)構(gòu)程序模塊不成立成立條件3.2.2 選擇結(jié)構(gòu)141for語句循環(huán)結(jié)構(gòu)for循環(huán)變量起始值:步長:終止值循環(huán)體end15例:使用for結(jié)構(gòu)計算1+2+3+100clearsum=0;for i=1:100 sum=sum+i;endsum運(yùn)行結(jié)果:sum = 5050162while語句循環(huán)結(jié)構(gòu) while表達(dá)式 循環(huán)體end17例:使用while結(jié)構(gòu)計算1
5、+2+3+100clearsum=0; i=0;while i100i=i+1;sum=sum+i;endsum運(yùn)行結(jié)果:sum = 5050183.3 M文件MATLAB工作模式命令行方式。程序文件驅(qū)動模式 MATLAB文本編輯器 193.3.1命令文件又稱為腳本文件,是一串指令的集合。用戶只需鍵入該命令文件的文件名,系統(tǒng)就會自動逐行執(zhí)行該文件中的各條語句。適用于小規(guī)模運(yùn)算。203.3.2函數(shù)文件函數(shù)文件基本格式:function 輸出形參列表=函數(shù)名(輸入形參列表) 注釋說明語句段 程序語句段21擴(kuò)展閱讀3.4其他流程控制語句1. break語句2. continue語句3. return
6、語句4. try語句5. echo命令6. input命令7. keyboard命令8. pause命令3.5函數(shù)與變量參數(shù)傳遞3.5.1子函數(shù)與私有函數(shù)3.5.2變量作用域3.5.3函數(shù)的參數(shù)傳遞22上機(jī)指導(dǎo)3.6 M文件的調(diào)試3.7 M文件性能分析與優(yōu)化3.7.1 M文件性能分析3.7.2 M文件性能優(yōu)化23應(yīng)用舉例求1!+2!+3!+ +5!的值clearsum=0;for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=sum+pdr;endsum運(yùn)行結(jié)果:sum = 15324應(yīng)用舉例雞兔同籠問題:雞和兔子關(guān)在一個籠子里,已知共有頭36個,腳100
7、個,求籠內(nèi)關(guān)了多少只兔子和多少只雞? clearchicken=1;while 1 if rem(100-chicken*2, 4)=0&(chicken+(100-chicken*2)/4)=36 break; end chicken=chicken+1;endchickenrabbit=(100-2*chicken)/4運(yùn)行結(jié)果:chicken = 22rabbit = 1425應(yīng)用舉例26曲柄搖桿機(jī)構(gòu)運(yùn)動分析1、分析建立機(jī)構(gòu)的閉環(huán)矢量位置方程對于一個特定的四桿機(jī)構(gòu),已知其各構(gòu)件的長度和原動件2的運(yùn)動規(guī)律27曲柄搖桿機(jī)構(gòu)運(yùn)動分析角位移方程的分量形式為:閉環(huán)矢量方程分量形式對時間求一階導(dǎo)數(shù)(
8、角速度方程)為:閉環(huán)矢量方程分量形式對時間求二階導(dǎo)數(shù)(角加速度方程)矩陣形式為:28曲柄搖桿機(jī)構(gòu)運(yùn)動分析29曲柄搖桿機(jī)構(gòu)運(yùn)動分析30曲柄搖桿機(jī)構(gòu)運(yùn)動分析1、四桿機(jī)構(gòu)位置求解:function t=fourbarposition(th,th2,L2,L3,L4,L1)t=L2*cos(th2)+L3*cos(th(1)-L4*cos(th(2)-L1;L2*sin(th2)+L3*sin(th(1)-L4*sin(th(2); 首先創(chuàng)建函數(shù)FoutBarPosition,函數(shù)fsolve通過他確定 。disp * * * * * * 平面四桿機(jī)構(gòu)的運(yùn)動分析 * * * * * *L1=304.8
9、;L2=101.6;L3=254.0;L4=177.8;%給定已知量,各桿長L1,L2,L3,L4th2=0:1/6:2*pi; %曲柄輸入角度從0至360度,步長為pi/6th34=zeros(length(th2),2); %建立一個N行2列的零矩陣,第一列存放options=optimset(display,off);%優(yōu)化 %_3,第二列存放_331曲柄搖桿機(jī)構(gòu)運(yùn)動分析for m=1:length(th2) %建立for循環(huán),求解_3,_4th34(m,:)=fsolve(fourbarposition,1 1, %調(diào)用fsove函數(shù)求解關(guān)于_3,_4options,th2(m),L2
10、,L3,L4,L1); %的非線性超越方程,結(jié)果保存在th34中endy=L2*sin(th2)+L3*sin(th34(:,1); %連桿3的D端點(diǎn)Y坐標(biāo)值x=L2*cos(th2)+L3*cos(th34(:,1); %連桿3的D端點(diǎn)X坐標(biāo)值xx=L2*cos(th2); %連桿3的C端點(diǎn)X坐標(biāo)值yy=L2*sin(th2); %連桿3的C端點(diǎn)Y坐標(biāo)值figure(1)plot(x;xx,y;yy,k,0 L1,0 0, %繪制連桿3的幾個位置點(diǎn)k-,x,y,ko,xx,yy,ks)title(連桿3的幾個位置點(diǎn))xlabel(水平方向)ylabel(垂直方向)axis equal%XY坐
11、標(biāo)均衡32曲柄搖桿機(jī)構(gòu)運(yùn)動分析33曲柄搖桿機(jī)構(gòu)運(yùn)動分析th2=0:2/72:2*pi; %重新細(xì)分曲柄輸入角度_2,步長為5度th34=zeros(length(th2),2);options=optimset(display,off);for m=1:length(th2)th34(m,:)=fsolve(fourbarposition,1 1,options,th2(m),L2,L3,L4,L1);endfigure(2)plot(th2*180/pi,th34(:,1),th2*180/pi,th34(:,2)%繪制連桿3的角位移關(guān)于曲柄2的角位移圖plot(th2*180/pi,th3
12、4(:,1)*180/pi,th2*180/pi,th34(:,2)*180/pi) %繪制搖桿4的角位移關(guān)于曲柄2的角位移圖axis(0 360 0 170)%確定XY邊界值grid%圖形加網(wǎng)格2、四桿機(jī)構(gòu)角位移求解:34曲柄搖桿機(jī)構(gòu)運(yùn)動分析xlabel(主動件轉(zhuǎn)角theta_2(度)ylabel(從動件角位移(度)title(角位移線圖)text(120,120,搖桿4角位移)text(150,40,連桿3角位移)35曲柄搖桿機(jī)構(gòu)運(yùn)動分析3、四桿機(jī)構(gòu)角速度求解:w2=250; %設(shè)定曲柄角速度for i=1:length(th2)A=-L3*sin(th34(i,1) L4*sin(th3
13、4(i,2);L3*cos(th34(i,1) -L4*cos(th34(i,2);B=w2*L2*sin(th2(i); -w2*L2*cos(th2(i);w=inv(A)*B;w3(i)=w(1);w4(i)=w(2);endfigure(3)plot(th2*180/pi,w3,th2*180/pi,w4); %繪制角速度線圖axis(0 360 -175 200) text(50,160,搖桿4角速度(omega_4)text(220,130,連桿3角速度(omega_3)gridxlabel(主動件轉(zhuǎn)角theta_2(度)ylabel(從動件角速度(radcdot s-1)titl
14、e(角速度線圖)36曲柄搖桿機(jī)構(gòu)運(yùn)動分析37曲柄搖桿機(jī)構(gòu)運(yùn)動分析for i=1:length(th2)C=-L3*sin(th34(i,1) L4*sin(th34(i,2);L3*cos(th34(i,1) -L4*cos(th34(i,2);D=w22*L2*cos(th2(i)+w3(i)2*L3*cos(th34(i,1)-w4(i)2*L4*cos(th34(i,2);.w22*L2*sin(th2(i)+w3(i)2*L3*sin(th34(i,1)-w4(i)2*L4*sin(th34(i,2);a=inv(C)*D;a3(i)=a(1);a4(i)=a(2);endfigure(4)plot(th2*180/pi,a3,th2*180/pi,a4); %繪制角加速度線圖axis(0 360 -70000 65000)text(50,50000,搖桿4角加速度(alpha_4)text(220,12000,連桿3角加速度(alpha_3)gridxlabel(從動
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市公共設(shè)施維護(hù)人員培訓(xùn)管理方案
- 鍋爐房拆除工程技術(shù)方案
- 公共設(shè)施內(nèi)外墻抹灰方案
- 幼兒園多媒體教材使用管理方案
- 醫(yī)院護(hù)理人員應(yīng)急管理預(yù)案
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院設(shè)備管理工作總結(jié)
- 培養(yǎng)學(xué)生邏輯思維的數(shù)學(xué)方案
- 小區(qū)河道綠化清淤施工方案
- 學(xué)校教室裝修及后期維護(hù)方案
- 幼兒園家長會組織方案
- 2023四年級學(xué)生勞動素養(yǎng)考試試題
- 《航空法規(guī)全》課件
- 電力電纜線路 電纜排管敷設(shè)(建筑電氣施工)
- 數(shù)字媒體藝術(shù)大學(xué)生職業(yè)生涯規(guī)劃
- 人工智能在醫(yī)療健康中的應(yīng)用案例
- 危化品運(yùn)輸安全監(jiān)測與報警系統(tǒng)
- 跑團(tuán)活動方案
- 2024年實(shí)驗(yàn)中學(xué)減負(fù)工作實(shí)施方案
- 爆破安全工作總結(jié)
- 大學(xué)生發(fā)展生涯展示
- 社會主義現(xiàn)代化建設(shè)教育科技人才戰(zhàn)略
評論
0/150
提交評論