版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第3章 MATLAB程序设计2本章目标 掌握MATLAB的几种基本控制转移语句学会使用M文件进行编程具备对复杂问题的编程求解能力3主要内容3.1 程序设计概述3.2 MATLAB程序结构3.3 M文件43.1 程序设计概述MATLAB是第四代编程语言程序简洁可读性很强调试容易编程效率高易移植和维护 通过编程可求解复杂性更高或特殊的问题53.2 MATLAB程序结构按照程序设计的观点, 任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合来实现: 顺序结构:程序按程序语句或模块在执行流中的顺序逐个执行。 选择结构:程序按设定的条件实现程序执行流的多路分支。 循环结构:程序按给定的条件重
2、复地执行指定的程序段或模块。63.2.1顺序结构程序模块1程序模块2MATLAB中实现顺序结构的方法非常简单:只需将程序语句顺序排列即可 73.2.2 选择结构在MATLAB中,选择结构由两种语句结构实现:if语句switch语句条件程序模块1成立不成立程序模块23.2.2 选择结构8if语句if表达式 程序模块1 else 程序模块2end9if语句的两种变形(1) 单分支if语句:只有一个分支的选择结构 if表达式 程序模块end(2) 多分支if语句:超过2个的选择if表达式1 程序模块1 elseif 表达式2 程序模块2 elseif 表达式n 程序模块n else 程序模块n+1e
3、nd10例:将百分制的学生成绩转换为五级制的成绩输出clearn=input(输入n= ); if n=90 r=Aelseif n=80 r=Belseif n=70 r=Celseif n=60 r=Delse r=Eend运行结果:输入n= 87r =B112.switch语句 switch 表达式 case 数值1 程序模块1; case 数值2 程序模块2;otherwise 程序模块n end12例:将百分制的学生成绩转换为五级制的成绩输出使用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运行结果:输入n= 65r =D133.2.3 循环结构在MATLAB中,循环结构可以由两种语句结构实现:for语句循环结构while语句循环结构程序模块不成立成立条件3.2.2 选择结构141for语句循环结构for循环变量起始值:步长:终止值循环体end15例:使用for结构计算1+2+3+100clearsum=0;for i=1:100 sum=sum+i;endsum运行结果:sum = 5050162while语句循环结构 while表达式 循环体end17例:使用while结构计算1
5、+2+3+100clearsum=0; i=0;while i100i=i+1;sum=sum+i;endsum运行结果:sum = 5050183.3 M文件MATLAB工作模式命令行方式。程序文件驱动模式 MATLAB文本编辑器 193.3.1命令文件又称为脚本文件,是一串指令的集合。用户只需键入该命令文件的文件名,系统就会自动逐行执行该文件中的各条语句。适用于小规模运算。203.3.2函数文件函数文件基本格式:function 输出形参列表=函数名(输入形参列表) 注释说明语句段 程序语句段21扩展阅读3.4其他流程控制语句1. break语句2. continue语句3. return
6、语句4. try语句5. echo命令6. input命令7. keyboard命令8. pause命令3.5函数与变量参数传递3.5.1子函数与私有函数3.5.2变量作用域3.5.3函数的参数传递22上机指导3.6 M文件的调试3.7 M文件性能分析与优化3.7.1 M文件性能分析3.7.2 M文件性能优化23应用举例求1!+2!+3!+ +5!的值clearsum=0;for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=sum+pdr;endsum运行结果:sum = 15324应用举例鸡兔同笼问题:鸡和兔子关在一个笼子里,已知共有头36个,脚100
7、个,求笼内关了多少只兔子和多少只鸡? 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运行结果:chicken = 22rabbit = 1425应用举例26曲柄摇杆机构运动分析1、分析建立机构的闭环矢量位置方程对于一个特定的四杆机构,已知其各构件的长度和原动件2的运动规律27曲柄摇杆机构运动分析角位移方程的分量形式为:闭环矢量方程分量形式对时间求一阶导数(
8、角速度方程)为:闭环矢量方程分量形式对时间求二阶导数(角加速度方程)矩阵形式为:28曲柄摇杆机构运动分析29曲柄摇杆机构运动分析30曲柄摇杆机构运动分析1、四杆机构位置求解: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); 首先创建函数FoutBarPosition,函数fsolve通过他确定 。disp * * * * * * 平面四杆机构的运动分析 * * * * * *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);%优化 %_3,第二列存放_331曲柄摇杆机构运动分析for m=1:length(th2) %建立for循环,求解_3,_4th34(m,:)=fsolve(fourbarposition,1 1, %调用fsove函数求解关于_3,_4options,th2(m),L2
10、,L3,L4,L1); %的非线性超越方程,结果保存在th34中endy=L2*sin(th2)+L3*sin(th34(:,1); %连杆3的D端点Y坐标值x=L2*cos(th2)+L3*cos(th34(:,1); %连杆3的D端点X坐标值xx=L2*cos(th2); %连杆3的C端点X坐标值yy=L2*sin(th2); %连杆3的C端点Y坐标值figure(1)plot(x;xx,y;yy,k,0 L1,0 0, %绘制连杆3的几个位置点k-,x,y,ko,xx,yy,ks)title(连杆3的几个位置点)xlabel(水平方向)ylabel(垂直方向)axis equal%XY坐
11、标均衡32曲柄摇杆机构运动分析33曲柄摇杆机构运动分析th2=0:2/72:2*pi; %重新细分曲柄输入角度_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的角位移关于曲柄2的角位移图plot(th2*180/pi,th3
12、4(:,1)*180/pi,th2*180/pi,th34(:,2)*180/pi) %绘制摇杆4的角位移关于曲柄2的角位移图axis(0 360 0 170)%确定XY边界值grid%图形加网格2、四杆机构角位移求解:34曲柄摇杆机构运动分析xlabel(主动件转角theta_2(度)ylabel(从动件角位移(度)title(角位移线图)text(120,120,摇杆4角位移)text(150,40,连杆3角位移)35曲柄摇杆机构运动分析3、四杆机构角速度求解:w2=250; %设定曲柄角速度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(主动件转角theta_2(度)ylabel(从动件角速度(radcdot s-1)titl
14、e(角速度线图)36曲柄摇杆机构运动分析37曲柄摇杆机构运动分析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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030细胞治疗技术商业化路径与监管政策发展趋势报告
- 2025年企业生产管理优化与自动化手册
- 防鼠灭鼠技术培训课件内容
- 2026年考研英语阅读理解与翻译技巧提高试题
- 2026年文化与艺术管理专业研究生入学考试题
- 旅游线路设计与推广手册
- 消防操作员培训课件
- 2026年中国法律体系与法律实务考试题
- 旅游服务操作与安全管理手册
- 2026年医师资格医学综合笔试备考模拟试题及答案
- 2026年药厂安全生产知识培训试题(达标题)
- 2026年陕西省森林资源管理局局属企业公开招聘工作人员备考题库及参考答案详解1套
- 承包团建烧烤合同范本
- 口腔种植牙科普
- 2025秋人教版七年级全一册信息科技期末测试卷(三套)
- 抢工补偿协议书
- SL631水利水电工程单元工程施工质量验收标准第1部分:土石方工程
- 英语A级常用词汇
- (二调)武汉市2025届高中毕业生二月调研考试 英语试卷(含标准答案)+听力音频
- 汽车修理厂轮胎采购 投标方案(技术标 )
- 2023年7月浙江省普通高中学业水平考试(学考)化学试题
评论
0/150
提交评论