机械原理课程设计matlab程序及成果图
基于matlab的GUI设计——机械原理教学演示系统

机械原理教学演示系统——基于matlab的GUI设计xxx指导老师:20年月日目录一、功能简介 (3)二、总界面 (3)三、凸轮模块 (4)四、齿轮模块 (6)五.参考书目 (6)六.附录(部分程序源代码) (7)一、功能简介本系统能实现机械原理教学过程中凸轮模块与齿轮模块的设计与运动仿真,加深对机械原理课程学习的理解。
二、总界面总界面标题设置:set(gcf,'name','机械原理教学演示系统 made by 翟鲁鑫');背景图片设置:ximg=imread('机械原理课本.jpg');imshow(ximg);背景声音播放:Fs=44100;[ywav,Fs]=wavread('夜的钢琴曲 - 六3.wav');sound(ywav,Fs);到各个模块:到凸轮模块clcclose(gcf);clear allGUItulun到齿轮模块clcclose(gcf);clear allGUIchilun关闭系统:clcquestion='真的要退出吗?';title='确认退出?';button=questdlg(question,title,'是','否','是'); switch buttoncase'是'clear allclosecase'否'returnend三、凸轮模块设计要点:1.背景声音设置方法同主界面2.推程角、远休角、回程角之和不能大于360度的判别条件;基圆半径、滚子半径、行程不能为0的判别条件sr0=get(handles.edit2,'string');r0=str2num(sr0);if isequal(r0,0)errordlg('基圆半径不能为0,请重新输入','出错');returnendsrr=get(handles.edit3,'string');rr=str2num(srr);if isequal(rr,0)errordlg('滚子半径不能为0,请重新输入','出错');returnendsh=get(handles.edit4,'string');h=str2num(sh);if isequal(h,0)errordlg('行程不能为0,请重新输入','出错');returnendn3=phi01+phi02+phi03; %推程角、远休止角与回程角的总和if n3>360errordlg('角度之和大于360,请重新输入','出错');end3.仿真程序。
matlab平面连杆结构分析(机械原理课程设计)

优化参数:连杆 长度、角度、质 量等
优化结果:得到 最优的连杆结构 设计
感谢观看
汇报人:
平面连杆结构的应用范围
机械工程:用于设计、分析和优化机械设 备
生物医学:用于设计、分析和优化假肢、 康复设备等
航空航天:用于设计、分析和优化飞机、 火箭等航天器
机器人技术:用于设计、分析和优化机器 人关节、机械臂等
汽车工业:用于设计、分析和优化汽车底 盘、悬挂系统等
建筑工程:用于设计、分析和优化建筑结 构、桥梁等
03
平面连杆结构的运动学分析
平面连杆结构的运动学方程
平面连杆结构的运动学方程是描述连杆系统运动状态的数学模型 运动学方程包括位移方程、速度方程和加速度方程 运动学方程的建立需要知道连杆系统的几何参数和运动参数 运动学方程的求解可以通过数值积分方法或解析方法进行
平面连杆结构的运动学特性
运动学方程:描述连杆结构的运动状态 运动学参数:包括位移、速度、加速度等 运动学约束:限制连杆结构的运动范围 运动学仿真:通过计算机模拟连杆结构的运动过程
平面连杆结构的形状优化
优化目标:提 高连杆结构的 稳定性和刚度
优化方法:有 限元分析、拓
扑优化等
优化参数:连 杆的长度、宽
度、厚度等
优化效果:提 高连杆结构的 承载能力和使
用寿命
平面连杆结构的拓扑优化
拓扑优化:通过改变材料的分布和形状, 约束条件:结构的刚度、强度、稳定
以实现最优的结构性能
性等性能要求
目标函数:最小化重量或体积,同时 满足给定的性能要求
优化方法:遗传算法、粒子群算法、 模拟退火算法等
设计变量:材料的分布和形状
应用领域:汽车、航空航天、机械制 造等
机械设计matlab课程设计

机械设计matlab课程设计一、课程目标知识目标:1. 理解并掌握机械设计中常用的MATLAB命令和功能;2. 学会运用MATLAB进行机械系统建模、仿真和优化;3. 掌握运用MATLAB解决机械设计中的实际问题的方法和步骤。
技能目标:1. 能够运用MATLAB进行数据分析和处理,提高数据处理能力;2. 能够熟练使用MATLAB进行机械设计绘图,提高绘图技能;3. 能够独立完成机械设计相关MATLAB程序编写和调试,提升编程能力。
情感态度价值观目标:1. 培养学生对机械设计MATLAB课程的学习兴趣,激发学习热情;2. 培养学生严谨的科学态度,强调实际操作与理论知识的相结合;3. 增强学生的团队协作意识,培养合作解决问题的能力。
课程性质:本课程为实践性较强的学科,结合机械设计与MATLAB软件应用,注重培养学生的实际操作能力和解决问题的能力。
学生特点:学生具备一定的机械设计基础知识,对MATLAB软件有一定了解,但实际操作能力有待提高。
教学要求:结合课程性质和学生特点,采用任务驱动、案例教学等方法,使学生在实践中掌握知识,提高技能,培养情感态度价值观。
通过分解课程目标为具体学习成果,为教学设计和评估提供明确依据。
二、教学内容1. MATLAB基础命令与操作:介绍MATLAB的基本命令、数据类型、矩阵运算等,为学生后续学习打下基础。
(对应教材第一章)2. MATLAB绘图与可视化:讲解MATLAB绘图功能,如二维、三维图形绘制,让学生能够将机械设计结果可视化。
(对应教材第二章)3. 机械系统建模与仿真:结合教材第三章内容,教授学生如何使用MATLAB 进行机械系统的建模、仿真和结果分析。
4. 机械设计优化方法:介绍教材第四章内容,使学生掌握运用MATLAB进行机械设计优化的基本方法。
5. MATLAB在机械设计中的应用案例:分析教材第五章案例,让学生了解MATLAB在机械设计领域的实际应用。
6. 实践操作与项目实战:组织学生进行实践操作,结合教材内容开展项目实战,巩固所学知识,提高实际操作能力。
机械原理matlab编程

机械原理(Matlab绘图)专业班级学号姓名:图一:导杆的角位移曲线和刨刀的位移曲线x1=linspace(0,2*pi,100);l1=100;l3=360;l4=200;l6=200;y=336;w1=2*pi;x3=atan((l6+l1*sin(x1))./(l1*cos(x1)));for i = 1 : 100;if x3(i)<0x3(i)=x3(i)+pi;endendS3=l1*cos(x1)./cos(x3);V23=(-1)*w1*l1*sin(x1-x3);w3=w1*l1*cos(x1-x3)./S3;a23=w3.^2.*S3-w1.^2*l1*cos(x1-x3);A3=(w1.^2.*l1.*sin(x3-x1)-2.*w3.*V23)./S3;x4= atan((y-l3*sin(x3))./l4);Se=l3*cos(x3)+l4*cos(x4);w4=(-1)*w3.*l3.*cos(x3)./(l4.*cos(x4));Ve=(-1)*w3.*l3.*sin(x3-x4)./cos(x4);A4=(x3.^2.*l3.*sin(w3)+x4.^2.*l4.*sin(x4)-A3.*l3.*cos(x3))./(l4.*cos(x4)); ae=(-1)*(A3.*l3.*sin(x3-x4)+w3.^2.*l3.*cos(x3-x4)-w4.^2.*l4)./cos(x4); plotyy(180*x1./pi,180*x3./pi,180*x1./pi,Se/1000);xlabel('x1/(°)'),ylabel('x3(°)');title('导杆的角位移曲线和刨刀的位移曲线');text(150,108,'x3');text(200,60,'Se');grid on;plotedit on;图二:导杆的角速度曲线和刨刀的速度曲线x1=linspace(0,2*pi,100);l1=100;l3=360;l4=200;l6=200;y=336;w1=2*pi;x3=atan((l6+l1*sin(x1))./(l1*cos(x1)));for i = 1 : 100;if x3(i)<0x3(i)=x3(i)+pi;endendS3=l1*cos(x1)./cos(x3);V23=(-1)*w1*l1*sin(x1-x3);w3=w1*l1*cos(x1-x3)./S3;a23=w3.^2.*S3-w1.^2*l1*cos(x1-x3);A3=(w1.^2.*l1.*sin(x3-x1)-2.*w3.*V23)./S3;x4= atan((y-l3*sin(x3))./l4);Se=l3*cos(x3)+l4*cos(x4);w4=(-1)*w3.*l3.*cos(x3)./(l4.*cos(x4));Ve=(-1)*w3.*l3.*sin(x3-x4)./cos(x4);A4=(x3.^2.*l3.*sin(w3)+x4.^2.*l4.*sin(x4)-A3.*l3.*cos(x3))./(l4.*cos(x4)); ae=(-1)*(A3.*l3.*sin(x3-x4)+w3.^2.*l3.*cos(x3-x4)-w4.^2.*l4)./cos(x4); plotyy(180*x1./pi,w3,180*x1./pi,Ve/1000);xlabel('x1/(°)'),ylabel('w3(rad/s)');title('导杆的角速度曲线和刨刀的速度曲线');grid on;text(100,-5,'Ve');text(100,1.8,'w3');axis([0 400 -7 4]);plotedit on;图三:导杆的角加速度曲线和刨刀的加速度曲线x1=linspace(0,2*pi,100);l1=100;l3=360;l4=200;l6=200;y=336;w1=2*pi;x3=atan((l6+l1*sin(x1))./(l1*cos(x1)));for i = 1 : 100;if x3(i)<0x3(i)=x3(i)+pi;endendS3=l1*cos(x1)./cos(x3);V23=(-1)*w1*l1*sin(x1-x3);w3=w1*l1*cos(x1-x3)./S3;a23=w3.^2.*S3-w1.^2*l1*cos(x1-x3);A3=(w1.^2.*l1.*sin(x3-x1)-2.*w3.*V23)./S3;x4= atan((y-l3*sin(x3))./l4);Se=l3*cos(x3)+l4*cos(x4);w4=(-1)*w3.*l3.*cos(x3)./(l4.*cos(x4));Ve=(-1)*w3.*l3.*sin(x3-x4)./cos(x4);A4=(x3.^2.*l3.*sin(w3)+x4.^2.*l4.*sin(x4)-A3.*l3.*cos(x3))./(l4.*cos(x4)); ae=(-1)*(A3.*l3.*sin(x3-x4)+w3.^2.*l3.*cos(x3-x4)-w4.^2.*l4)./cos(x4); plotyy(180*x1./pi,A3,180*x1./pi,ae/1000);xlabel('x1/(°)'),ylabel('A3(rad/s^2)'),grid;title('导杆的角加速度曲线和刨刀的加速度曲线');text(250,25,'ae');text(300,50,'A3');plotedit on;图四:凸轮从动件位移曲线h=20;F1=2*pi/3;F2=pi/2;i=1;for x=0:0.01:2*pi;if x>=0&x<=2*pi/3;S(i)=h*(1-cos(pi*x./F1))./2;elseif x>=2*pi/3&x<=pi;S(i)=h;elseif x>=pi&x<=5*pi/4;S(i)=h-2*h*(x-pi).^2./(F2.^2);elseif x>=5*pi/4 &x<=3*pi/2;S(i)= 2*h*(F2-x+pi).^2./(F2.^2); elseif x>=3*pi/2 &x<=2*pi;S(i)=0;endi=i+1;x=0:0.01:2*pi;plot(x,S);title('从动件位移曲线');axis([0 7 0 25]);xlabel('x/(rad)');ylabel('S/(mm)');grid on;图五:凸轮的理论轮廓曲线和实际轮廓曲线e=10;Rt=10;Rb=25;w=2*pi;F1=2*pi/3;F2=pi/2;i=1;for f=0:0.01:2*pi;if f>=0&f<=2*pi/3;S(i)=h*(1-cos(pi*f./F1))./2;elseif f>=2*pi/3&f<=pi;S(i)=h;elseif f>=pi&f<=5*pi/4;S(i)=h-2*h*(f-pi).^2./(F2.^2);elseif f>=5*pi/4 &f<=3*pi/2;S(i)= 2*h*(F2-f+pi).^2./(F2.^2);elseif f>=3*pi/2 &f<=2*pi;S(i)=0;endi=i+1;endf=0:0.01:2*pi;s0=sqrt((Rb.^2)-(e.^2));x =e*cos(f)+(s0+S).*sin(f);y =(s0+S).*cos(f)-e*sin(f);d1=e*(-1).*sin(f).*w+(s0+S).*cos(f).*w;d2=(s0+S).*sin(f).*(-1).*w-e*cos(f).*w;x1=x+Rt*d2./sqrt((d1.^2)+(d2.^2));y1=y-Rt*d1./sqrt((d1.^2)+(d2.^2));plot(x,y,'k-',x1,y1,'k-.');title('凸轮的理论轮廓曲线和实际轮廓曲线'); text(-10,-30,'实际轮廓曲线');text(-10,-40,'理论轮廓曲线');axis([-40 50 -55 40 ]);hold on;plot(0,0);text(0,-3,'O');。
机械原理matlab课程设计

机械原理matlab课程设计一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握机械原理的基本概念、理论和方法;技能目标要求学生能够运用MATLAB软件进行机械系统仿真和分析;情感态度价值观目标要求学生培养创新意识、团队合作精神和自主学习能力。
通过本课程的学习,学生将能够:1.描述和解释机械原理的基本概念和理论。
2.使用MATLAB软件进行机械系统仿真和分析。
3.提出问题、解决问题并开展创新设计。
4.能够进行团队合作,共同完成项目任务。
二、教学内容教学内容将根据课程目标进行选择和,确保内容的科学性和系统性。
教学大纲将明确教学内容的安排和进度,指出教材的章节和列举内容。
主要内容包括:1.机械原理的基本概念和理论,包括力学、动力学、运动学等方面。
2.MATLAB软件的基本操作和功能,包括矩阵运算、绘图、编程等。
3.机械系统仿真的方法和技巧,包括模型建立、参数调整、结果分析等。
4.机械系统设计案例分析,包括机器人的运动控制、机构的优化设计等。
三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法。
包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过教师的讲解和演示,向学生传授基本概念和理论知识。
2.讨论法:学生进行小组讨论,促进学生之间的交流和思维碰撞。
3.案例分析法:通过分析实际案例,引导学生运用所学知识解决实际问题。
4.实验法:安排实验课程,让学生亲自动手进行实验操作和数据分析。
四、教学资源为了支持教学内容和教学方法的实施,将选择和准备适当的教学资源。
包括教材、参考书、多媒体资料和实验设备等。
1.教材:选择权威、实用的教材,作为学生学习的主要参考资料。
2.参考书:推荐一些相关的参考书籍,供学生深入学习和拓展知识。
3.多媒体资料:制作精美的PPT、教学视频等多媒体资料,增强课堂教学的趣味性和效果。
4.实验设备:准备必要的实验设备,让学生能够进行实际操作和验证。
机械原理大作业牛头刨床 matlab编程

l4*cosd(x(2))+l3*cosd(x(3))-x(4);
l4*sind(x(2))+l3*sind(x(3))-h];
主程序:
theta1=0:360;
s3=0:360;
theta3=0:360;
-omega3(i)*cosd(theta3(i)) l4*omega4(i)*sind(theta4(i)) -v3(i)*cosd(theta3(i))+s3(i)*omega3(i)*sind(theta3(i)) 0;
0 l4*omega4(i)*cosd(theta4(i)) l3*omega3(i)*cosd(theta3(i)) 0;
xlabel('{\theta}_1(^{ o })');
ylabel('s_c (mm)');
figure(5)
plot(theta1,vc,'k');
gridon;
xlabel('{\theta}_1(^{ o })');
ylabel('v_c (m/s)');
figure(6)
plot(theta1,ac,'k');
gridon;
xlabel('{\theta}_1(^{ o })');
ylabel('{\alpha}_3 {\alpha}_4 (r a d / s^2)');
legend('{\alpha}_3','{\alpha}_4');
机械原理matlab作业

1.在图示的铰链四杆机构中,AB 为主动杆,以s rad /47.10=ω匀角速度逆时针旋转,各杆长度分别为mm l mm l mm l mm l 80,100,120,404321====,连杆点F 的位置是FE ⊥BC ,BE 长mm S 60=,EF 长mm T 10=,选取直角坐标系如图所示。
求当曲柄1与x 轴正向夹角为 360~01=ϕ时,连杆2和摇杆3所转过的角度2ϕ、3ϕ以及它们的角速度和角加速度2ω、3ω、2α、3α,并求出连杆点F 的各位置坐标、速度和加速度。
规定ϕ角从轴x 正向测量时,逆时针为正,反之为负。
y机械原理作业撰写要求机械原理电算分析是机械原理课程学习的重要环节,是检验学生综合素质与实践能力培养的手段。
1、作业内容顺序作业内容顺序一般为:题目、数学模型、程序设计、计算结果和附件M 文件。
2、作业格式要求作业格式要求见摸板,纸张大小一律使用A4复印纸。
3. 书写规定 3.1公式公式号按顺序编号,如(2)表示第2个公式。
公式应采用公式编辑器输入,选择默认格式,公式号右对齐,公式调整至基本居中。
3.2 插表每个表格均应有标题(由表序和表名组成),如第一个插表的序号为“表1”。
表格统一用三线表,表序与表名之间空一格,表名中不允许使用标点符号,表名后不加标点。
标题置于表上,要求用5号字(包括表中的内容)。
3.3 插图插图应与文字紧密配合,文图相符,内容正确。
图题置于图的下方,要求用5号字。
插图应采用AutoCAD 绘制,然后拷贝粘贴到Word 文档,以利于以后编辑。
3.4物理量的名称、符号和计量单位物理量的名称、符号和计量单位应统一按照机械原理教科书的规定书写,某一量的名称、符号和计量单位应与教科书的规定相一致。
4. 排版要求4.1正文字体要求、每部分标题左顶边、小三宋体加粗。
正文文字用宋体小四号汉字和四号“Times New Roman”英文字体,每自然段首行缩进2个字符。
大二机械原理课程设计插床matlab

大二机械原理课程设计插床matlab大二机械原理课程设计:插床MATLAB引言:插床是机床的一种,用于加工金属零件时,通过插刀进行切削。
插床具有切削速度快、工件精度高等优点,被广泛应用于机械制造行业。
本文将介绍一种利用MATLAB进行插床仿真的方法,通过编写MATLAB程序,实现对插床的运动轨迹和切削过程的模拟。
一、插床运动轨迹的建模在插床的运动过程中,刀具需要按照一定的轨迹进行插入和退出。
为了模拟插床的运动轨迹,需要对刀具的运动进行建模。
可以使用MATLAB中的插值函数来实现对插床运动轨迹的模拟。
需要确定插床的初始位置和目标位置。
然后,根据初始位置和目标位置之间的距离,计算出刀具插入或退出的总距离。
接下来,选择合适的插值方法,如线性插值或样条插值,根据总距离和插入或退出时间来计算出刀具在不同位置的坐标。
在MATLAB中,可以使用interp1函数来进行插值计算,根据初始位置、目标位置、总距离和插入或退出时间,得到刀具在不同位置的坐标。
通过绘制这些坐标点,可以得到插床的运动轨迹。
二、插床切削过程的模拟插床的切削过程是通过刀具对工件进行切削来实现的。
为了模拟插床的切削过程,需要对切削力进行建模,并将其应用到插床的运动轨迹上。
根据机械原理课程的知识,切削力与切削速度、切削深度、切削角度等因素有关。
可以通过建立切削力的数学模型,将切削力作用于插床的运动轨迹上,从而实现对插床切削过程的模拟。
在MATLAB中,可以使用函数来定义切削力的数学模型,并将其与插床的运动轨迹相结合。
通过调用这些函数,可以得到插床在不同位置上的切削力。
然后,可以根据切削力的大小和方向,对插床的运动轨迹进行调整,模拟切削过程。
三、插床MATLAB程序的编写根据上述的建模和模拟方法,可以编写一个MATLAB程序来实现对插床的仿真。
首先,需要定义插床的初始位置和目标位置,以及刀具插入或退出的总距离和时间。
然后,通过调用插值函数,得到插床的运动轨迹。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Wjr_main.m%1.输入已知数据clear;l2=0.1605;%AB的长度单位ml4=0.6914;%CD的长度单位ml5=0.2074;%DE的长度单位ml1=0.370;%AC的长度单位ml1p=0.6572;%CF的长度单位momg2=8.378;af2=0;hd=pi/180;du=180/pi;%2.调用子函数abc.m计算牛头刨机构位移,角速度,角加速度for n1=1:689;tt2(n1)=-0.4488+(n1-1)*hd;ll=[l2,l4,l5,l1,l1p];[tt,omg,af]=abc(tt2(n1),omg2,af2,ll);s4(n1)=tt(1);tt4(n1)=tt(2);tt5(n1)=tt(3);sE(n1)=tt(4);v34(n1)=omg(1);omg4(n1)=omg(2);omg5(n1)=omg(3);vE(n1)=omg(4);a3(n1)=af(1);af4(n1)=af(2);af5(n1)=af(3);aE(n1)=af(4);end%3.位移,角速度,角加速度figure(1);n1=1:689;t=(n1-1)*pi/180;subplot(2,2,1); %绘角位移及位移线图plot(t,tt4*du,'r-.');grid on;hold on;axis auto;[haxes,hline1,hine2]=plotyy(t,tt5*du,t,sE);grid on;hold on;xlabel('时间/份');axes(haxes(1));ylabel('角位移/\circ');axes(haxes(2));ylabel('位移/m');hold on;grid on;text(1.15,-0.65,'tt_4');text(3.4,0.27,'tt_5');text(2.25,-0.15,'s_E');subplot(2,2,2); %绘角速度及速度线图plot(t,omg4,'r-.');grid on;hold on;axis auto;[haxes,hline1,hline2]=plotyy(t,omg5,t,vE); grid on;hold on;xlabel('时间/份')axes(haxes(1));ylabel('角速度/rad\cdots^{-1}')axes(haxes(2));ylabel('速度/m\cdots^{-1}')hold on;grid on;text(3.1,0.35,'\omg_4')text(2.1,0.1,'\omg_5')text(5.5,0.45,'v_E')subplot(2,2,3); %绘角加速度和加速度图plot(t,af4,'r-.');grid on;hold on;axis auto;[haxes,hline1,hline2]=plotyy(t,af5,t,aE); grid on;hold on;xlabel('时间/份')axes(haxes(1));ylabel('角加速度/rad\cdots^{-2}')axes(haxes(2));ylabel('加速度/m\cdots^{-2}')hold on;text(1.5,0.3,'\af_4')text(3.5,0.51,'\af_5')text(1.5,-0.11,'a_E')wjr_abc.mfunction[tt,omg,af]=abc(tt2,omg2,af2,ll)l2=ll(1);l4=ll(2);l5=ll(3);l1=ll(4);l1p=ll(5);%1.计算角位移和线位移s4=sqrt((l2*cos(tt2))*(l2*cos(tt2))+(l1+l2*sin(tt2))*(l1+l2*sin(tt2))); tt4=acos((l2*cos(tt2))/s4);tt5=asin((l1p-l4*sin(tt4))/l5);sE=l4*cos(tt4)+l5*cos(tt5);tt(1)=s4;tt(2)=tt4;tt(3)=tt5;%2.计算角速度和线速度A=[cos(tt4),-s4*sin(tt4),0,0; %速度分析矩阵之从动件位置参数矩阵sin(tt4),s4*cos(tt4),0,0;0,-l4*sin(tt4),-l5*sin(tt5),-1;0,l4*cos(tt4),l5*cos(tt5),0];B=[-l2*sin(tt2); %原动件位置参数矩阵l2*cos(tt2);0;0];omg=A\(omg2*B);v34=omg(1);omg4=omg(2);omg5=omg(3);vE=omg(4);%计算角加速度和加速度A=[cos(tt4),-s4*sin(tt4),0,0; %速度分析矩阵之从动件位置参数sin(tt4),s4*cos(tt4),0,0;0,-l4*sin(tt4),-l5*sin(tt5),-1;0,l4*cos(tt4),l5*cos(tt5),0];At=[-omg4*sin(tt4),-v34*sin(tt4)-s4*omg4*cos(tt4),0,0;omg4*cos(tt4),v34*cos(tt4)-s4*omg4*sin(tt4),0,0;0,-l4*omg4*cos(tt4),-l5*omg5*cos(tt5),0;0,-l4*omg4*sin(tt4),-l5*omg5*sin(tt5),0];Bt=[-l2*omg2*cos(tt2);-l2*omg2*sin(tt2);0;0];af=A\(-At*omg+omg2*Bt);a34=af(1);af4=af(2);af5=af(3);aE=af(4);wjr_force.m%1.输入已知数据clear;l2=0.1605;%AB的长度单位ml4=0.6914;%CD的长度单位ml5=0.2074;%DE的长度单位ml1=0.370;%AC的长度单位ml1p=0.6572;%CF的长度单位momg2=8.378;%单位rad/shd=pi/180;du=180/pi;H=0.6;%行程单位msEmax=0.5046; sEmin=0.0954;%单位mJs4=0.9; Js5=0.015;%单位kgm^2g=9.8;%单位m/s^2m4=22; m5=3; m6=52;%kgG4=196; G5=29.4; G6=509.6;%单位NFc=1400;%2.机构运动分析% 位移及角位移for n1=1:689;tt2(n1)=-0.4488+(n1-1)*hd;s4(n1)=sqrt((l2*cos(tt2(n1)))*(l2*cos(tt2(n1)))+(l1+l2*sin(tt2(n1)))*(l1+l2 *sin(tt2(n1))));tt4(n1)=acos((l2*cos(tt2(n1)))/s4(n1));tt5(n1)=asin((l1p-l4*sin(tt4(n1)))/l5);sE(n1)=l4*cos(tt4(n1))+l5*cos(tt5(n1));end%2.计算角速度和线速度for n1=1:689;A=[cos(tt4(n1)),-s4(n1)*sin(tt4(n1)),0,0; %速度分析矩阵之从动件位置参数sin(tt4(n1)),s4(n1)*cos(tt4(n1)),0,0;0,-l4*sin(tt4(n1)),-l5*sin(tt5(n1)),-1;0,l4*cos(tt4(n1)),l5*cos(tt5(n1)),0];B=[-l2*sin(tt2(n1)); %原动件位置参数矩阵l2*cos(tt2(n1));0;0];omg=A\(omg2*B);v34(n1)=omg(1);omg4(n1)=omg(2);omg5(n1)=omg(3);vE(n1)=omg(4);%计算角加速度和加速度A=[cos(tt4(n1)),-s4(n1)*sin(tt4(n1)),0,0; %速度分析矩阵之从动件位置参数sin(tt4(n1)),s4(n1)*cos(tt4(n1)),0,0;0,-l4*sin(tt4(n1)),-l5*sin(tt5(n1)),-1;0,l4*cos(tt4(n1)),l5*cos(tt5(n1)),0];At=[-omg4(n1)*sin(tt4(n1)),-v34(n1)*sin(tt4(n1))-s4(n1)*omg4(n1)*cos(tt4(n1)),0,0;omg4(n1)*cos(tt4(n1)),v34(n1)*cos(tt4(n1))-s4(n1)*omg4(n1)*sin(tt4(n1 )),0,0;0,-l4*omg4(n1)*cos(tt4(n1)),-l5*omg5(n1)*cos(tt5(n1)),0;0,-l4*omg4(n1)*sin(tt4(n1)),-l5*omg5(n1)*sin(tt5(n1)),0];Bt=[-l2*omg2*cos(tt2(n1));-l2*omg2*sin(tt2(n1));0;0];af=A\(-At*omg+omg2*Bt);a34(n1)=af(1);af4(n1)=af(2);af5(n1)=af(3);aE(n1)=af(4);end%3.机构的力平衡计算for n1=1:689;%计算各铰链点坐标xa=0;ya=l1;xb(n1)=l2*cos(tt2(n1));yb(n1)=l1+l2*sin(tt2(n1));xc=0;yc=0;xd(n1)=l4*cos(tt4(n1));yd(n1)=l4*sin(tt4(n1));xe(n1)=sE(n1);ye=l1p;%计算各质心坐标xs4(n1)=(xc+xd(n1))/2;ys4(n1)=(yc+yd(n1))/2;xs5(n1)=(xd(n1)+xe(n1))/2;ys5(n1)=(yd(n1)+ye)/2;xs6=0.15;%各质心点加速度as4x(n1)=-l4*(af4(n1)*sin(tt4(n1))+omg4(n1)^2*cos(tt4(n1)))/2;as4y(n1)=l4*(af4(n1)*cos(tt4(n1))-omg4(n1)^2*sin(tt4(n1)))/2;adx=-l4*(af4(n1)*sin(tt4(n1))+omg4(n1)^2*cos(tt4(n1)));ady=l4*(af4(n1)*cos(tt4(n1))-omg4(n1)^2*sin(tt4(n1)));as5x(n1)=adx+l5*(af5(n1)*sin(tt5(n1))+omg5(n1)^2*cos(tt5(n1)))/2; as5y(n1)=ady+l5*(af5(n1)*cos(tt5(n1))-omg5(n1)^2*sin(tt5(n1)))/2; as6(n1)=aE(n1);%惯性力及惯性力矩F4x(n1)=-m4*as4x(n1);F4y(n1)=-m4*as4y(n1);F5x(n1)=-m5*as5x(n1);F5y(n1)=-m5*as5y(n1);F6(n1)=-m6*as6(n1);M4(n1)=-Js4*af4(n1);M5(n1)=-Js5*af5(n1);%未知力系数矩阵xya=zeros(15);xya(1,2)=-1;xya(1,4)=-1;xya(2,3)=-1;xya(2,5)=-1;xya(3,1)=1;xya(3,4)=yb(n1)-ya;xya(3,5)=xa-xb(n1);xya(4,4)=1;xya(4,6)=-1;xya(5,5)=1;xya(5,7)=-1;xya(6,6)=cos(tt4(n1));xya(6,7)=sin(tt4(n1));xya(7,6)=1; xya(7,8)=-1;xya(7,10)=-1;xya(8,7)=1;xya(8,9)=-1;xya(8,11)=-1;xya(9,6)=ys4(n1)-yb(n1);xya(9,7)=xb(n1)-xs4(n1);xya(9,8)=yc-ys4(n1); xya(9,9)=xs4(n1)-xc;xya(9,10)=yd(n1)-ys4(n1);xya(9,11)=xs4(n1)-xd(n1);xya(10,10)=1;xya(10,12)=-1;xya(11,11)=1;xya(11,13)=-1;xya(12,10)=ys5(n1)-yd(n1); xya(12,11)=xd(n1)-xs5(n1);xya(12,12)=ye-ys4(n1);xya(12,13)=xs5(n1)-xe(n1);xya(13,12)=1;xya(14,13)=1;xya(14,14)=-1;xya(15,13)=xs6;xya(15,15)=1;%已知力矩阵if vE(n1)<0&sE(n1)>=(sEmin+0.05*H)&sE(n1)<=(sEmax-0.05*H)D=[0;0;0;0;0;0;-F4x(n1);-F4y(n1)+G4;-M4(n1);-F5x(n1);-F4y(n1)+G5;-M5( n1);-Fc-F6(n1);G6;0;];elseD=[0;0;0;0;0;0;-F4x(n1);-F4y(n1)+G4;-M4(n1);-F5x(n1);-F4y(n1)+G5;-M5( n1);-F6(n1);G6;0;];end%未知力矩阵FR=inv(xya)*D;M2(n1)=FR(1);FR12x(n1)=FR(2);FR12y(n1)=FR(3);FR45x(n1)=FR(10);FR45y(n1)=FR(11);FR16(n1)=FR(14);M6(n1)=FR(15);end%4.输出力的分析图figure(2);n1=1:689;t=(n1-1)*2*pi/360;subplot(2,2,1); %绘平衡力矩图plot(t,M2);grid on;hold on;axis auto;title('平衡力矩M_2')xlabel('时间/份');ylabel('力矩/N\cdotm');hold on;grid on;text(3.8,880,'M_2');subplot(2,2,2); %绘A处x方向约束反力即FR12x plot(t,FR12x,'-');grid on;hold on;axis auto;title('转动副A处约束反力')xlabel('时间/份');ylabel('力/N');hold on;grid on;text(1.1,5000,'F_R_1_2_x')plot(t,FR12y,'r-.'); %绘A处y方向约束反力即FR12y grid on;hold on;text(1.1,-3000,'F_R_1_2_y')subplot(2,2,3); %绘移动副FR16plot(t,-FR16);grid on;hold on;axis auto;title('移动副6约束反力F_R_1_6')xlabel('时间/份')ylabel('力/N')grid on;hold on;text(1.5,3100,'F_R_1_6')subplot(2,2,4); %绘转动副D处约束反力plot(t,FR45x,'-');grid on;hold on;axis auto;title('转动副D处约束反力')xlabel('时间/份')ylabel('力/N')grid on;hold on;text(1.1,-900,'F_R_4_5_x')plot(t,FR45y,'r-.');grid on;hold on;text(1.1,-3700,'F_R_4_5_y')。