机械优化大作业-MATLAB复合型法

机械优化大作业-MATLAB复合型法
机械优化大作业-MATLAB复合型法

机床主轴机构优化设计

机床主轴是机床中重要的零件之一,一般多为支撑空心阶梯轴。为了便于使用材料力学进行结构分析,常常将阶梯轴简化成以当量直径表示的等截面轴。

如图0.1所示是一个已经简化处理的专用机床双主轴的力学模型。从机床

主轴制造成本较低和加工精度较高的要求出发,需要考虑主轴的自重和外身段挠度这样两个重要因素。对于专用机床来说,并不追求过高的加工精度。因此选取零件自身重量轻为设计目标,将主轴的刚度作为约束条件。

一、 设计变量和目标函数

当主轴的材料选定之后,与主轴重量设计方案有关设计变量主轴的外径D 、孔径d 、两支承跨度l 、和外伸段长度a ,如图0.1所示。由于机床主轴的孔径主要取决于待加工棒料的直径,不能作为设计变量处理。因此,设计变量为

[][]T

T

321a D l x x x X ==

机床主轴重量最轻优化设计目标函数为

))(()(2

2231d x x x

4

1X f -+=πρ

二、 约束条件

1. 刚度性条件

机床的加工质量在很大程度上取决于主轴的刚度,主轴刚度是一个很重要的性能指标。因此,要求主轴悬臂端挠度不超过给定的变形量y 0 。

根据材料力学可知,主轴悬臂端挠度为

)()()(442

31232

d x E 3x x Fx 64EJ 3a l Fa y -+=+=π

式中,)(4

4d -D 64

J π

=是空心主轴的惯性矩;E=2.1x105MPa 是主轴的弹性模

量;F 是作用主轴外伸端的力。 整理得到主轴刚度的约束条件为

0d x E 3x x Fx 64X g 442312

301≥-+-=)

()()(πy

2.设计边界条件

三个设计变量的边界约束条件为

max min l l l ≤≤

max min D D D ≤≤

max

min a a a ≤≤

3.具体算例

已知某机床主轴悬臂端受到的切削力F=15000N ,主轴内径d=30mm ,悬臂端许用挠度y 0=0.05mm 。要求主轴两支承跨度mm l

mm 650300≤≤,外径

mm D mm 14060≤≤,悬臂长度mm a mm 15090≤≤。

建立优化的数学模型

)30)((7854.0)(2

22

31++=x x x X f

T

T a D l x x x X ]

,,[],,[321==

0)

30()

(7009.91)(..4

42

31231≥-+?

-=x x x x X g t s

01300/)(12≥-=x X g

0650/1)(13≥-=x X g

0160/)(24≥-=x X g

0140/1)(25≥-=x X g

0190/)(36≥-=x X g

0150/1)(37≥-=x X g

4.基于matlab 程序的复合形法实现优化

(1)算法原理

复合形法来源于无约束优化问题的单纯形法,通过构造复合形来求得最优解,新的复合形通过替换旧的复合形中的坏点(目标函数最大或次大的点)得到,替换方式仍是单纯性法中的反应、压缩、扩展这几个基本方法。

(2)算法步骤

其程序框图如下:

(3)算法的MATLAB 实现

在MATLAB 中利用编程语句编写实现复合形法的函数,命名:jiangfun.m 功能:用复合形法求解约束多为函数的极值

调用格式:[x,minf]= jiangfun(f,g,X,alpha,sita,gama,beta,var,eps) 其中符号表示如下:

由目标函数级约束条件,取初始复合形

)100,90,325(0=x )95,120,380(1=x

)120,100,500(2=x )130,135,600(3=x

取α(反射系数)=1.2,β(收缩系数)=0.3,θ(紧缩系数)=0.5,γ(扩展系数)=2。

在MATLAB 中输入下列命令 >>syms s t r

>>f=0.7854*(s+r)*(t^2-900);

>>g=[1-9.7009*r^2*(s+r)/(t^4-30^4);s/300-1;1-s/650;t/60-1;1-t/140;r/

90-1;1-r/150];

>>X=[325 380 500 600;90 120 100 135;100 95 120 130]; >>[x,minf]=jiangfun(f,g,X,1.2,0.5,8,0.3,[s t r])

所得结果为:

x =300.0357

75.2442

90.0013

Minf = 1458663.2594

可以得出结论当l=300.0357mm,D=75.2442mm,a=90.0013mm时可以在满足刚度性能的条件下,得到最小的结构体积Minf=1458663.2594mm3 再乘以所选材料的密度,即可得出最小质量。

5、总结

复合形法作为求解最优化问题的一种算法,较为适合解决有约束优化问题。使用该法仅需比较目标函数值即可决定搜索方向,算法较简单,对目标函数的要求不苛刻。同时利用MATLAB实现该方法的程序设计,较之C语言互换性以及通用性强,使用方便。

引用:《优化设计应用》——电子工业出版社

附录I:MATLAB实现复合形算法源程序

附录I:MATLAB实现复合形算法源程序

function [x,minf]= jiangfun(f,g,X,alpha,sita,gama,beta,var,eps)

%目标函数:f

%约束函数:g

%初始复合形:X

%反射系数:alpha

%紧缩系数:sita

%扩展系数:gama

%收缩系数:beta

%自变量向量:var

%自变量精度:eps

%目标函数最小值时的自变量值:x

%目标函数的最小值:minf

if nargin == 8

eps = 1.0e-6;

end

N = size(X);

n = N(2);

FX = zeros(1,n);

while 1

for i=1:n

FX(i) = subs(f,var,X(:,i));

end %将复合形法的顶点排序

[XS,IX] = sort(FX);

Xsorted = X(:,IX);

px = sum(Xsorted(:,1:(n-1)),2)/(n-1); %复合形前n个点的中心 Fpx= subs(f,var,px);

SumF = 0;

for i=1:n

SumF = SumF + (FX(IX(i))-Fpx)^2;

end

SumF = sqrt(SumF/n);

if SumF <= eps

x = Xsorted(:,1); %精度判断

break;

else

bcon_1 = 1;

cof_alpha = alpha;

while bcon_1

x2 = px + cof_alpha*(px - Xsorted(:,n));%反射条件

gx2 = subs(g,var,x2);

if min(gx2)>=0

bcon_1 = 0;

else

cof_alpha = sqrt(cof_alpha); %以开方的方式减小反射系数 end

end

fx2 = subs(f,var,x2);

if fx2 < XS(1)

cof_gama = gama;

bcon_2 = 1;

while bcon_2

x3 = px + cof_gama*(x2 - px); %扩展操作

gx3 = subs(g,var,x3);

if min(gx3)>=0

bcon_2 = 0;

else

cof_gama = sqrt(cof_gama); %采用开方的方式减小扩展系数 end

end

fx3 = subs(f,var,x3);

if fx3 < XS(1)

Xsorted(:,n) = x3;

X = Xsorted;

continue;

else

Xsorted(:,n) = x2;

X = Xsorted;

continue;

end

else

if fx2 < XS(n-1)

Xsorted(:,n) = x2;

X = Xsorted;

continue;

else

if fx2 < XS(n)

Xsorted(:,n) = x2;

end

cof_beta = beta;

bcon_3 = 1;

while bcon_3

x4 = px + cof_beta*(Xsorted(:,n) - px);%收缩操作 gx4 = subs(g,var,x4);

if min(gx4)>=0

bcon_3 = 0;

else

cof_beta = cof_beta/2; %减小收缩系数

end

end

fx4 = subs(f,var,x4);

FNnew = subs(f,var,Xsorted(:,n));

if fx4 < FNnew

Xsorted(:,n) = x4;

X = Xsorted;

continue;

else

x0 = Xsorted(:,1);

for i=1:n

Xsorted(:,j) = x0 + sita*(Xsorted(:,j) - x0); %对复合形进行收缩

end

end

end

end

end

X = Xsorted;

end

minf = subs(f,var,x)

基于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); 到各个模块:到凸轮模块 clc close(gcf); clear all

GUItulun 到齿轮模块 clc close(gcf); clear all GUIchilun 关闭系统:clc question='真的要退出吗?'; title='确认退出?'; button=questdlg(question,title,'是','否','是'); switch button case'是' clear all close case'否' return end 三、凸轮模块 设计要点: 1.背景声音设置方法同主界面

2.推程角、远休角、回程角之和不能大于360度的判别条件;基圆半径、滚子半径、行程不能为0的判别条件 sr0=get(handles.edit2,'string'); r0=str2num(sr0); if isequal(r0,0) errordlg('基圆半径不能为0,请重新输入','出错'); return end srr=get(handles.edit3,'string'); rr=str2num(srr); if isequal(rr,0) errordlg('滚子半径不能为0,请重新输入','出错'); return end sh=get(handles.edit4,'string'); h=str2num(sh); if isequal(h,0) errordlg('行程不能为0,请重新输入','出错'); return end n3=phi01+phi02+phi03; %推程角、远休止角与回程角的总和 if n3>360 errordlg('角度之和大于360,请重新输入','出错'); end 3.仿真程序。采用for 循环以及m(j)=getframe之前要先使用moviein函数Initialize movie frame memory,否则要提示错误 4.仿真之前要先清除绘图时留下的图像,命令如下cla(handles.axes1); 5.回主界面之前要先clear all,关闭音乐、清空global定义的全局变量,以防全局变量影响下一程序 6.图像保存。绘制出的图像可以保存供以后查看。主要命令有uiputfile()、imwrite() [sfilename,sfilepath]=uiputfile({'*.jpg';'*.bmp';'*.tif';'*.*'},... '保存图像文件','unititled.jpg'); if ~isequal([sfilename,sfilepath],[0,0]) sfilefullname=[sfilepath ,sfilename]; h_tulun = getframe(handles.axes1); imwrite(h_tulun.cdata,sfilefullname); else msgbox('您按了取消,保存失败','保存失败','error'); end

机械原理大作业

Harbin Institute of Technology 机械原理大作业(一) 课程名称:机械原理 设计题目:连杆机构运动分析 院系:机电工程学院 班级: 设计者: 学号: 指导教师:

一、题目(13) 如图所示机构,已知各构件尺寸:Lab=150mm;Lbc=220mm;Lcd=250mm;Lad=300mm;Lef=60mm;Lbe=110mm;EF⊥BC。试研究各杆件长度变化对F点轨迹的影响。 二、机构运动分析数学模型 1.杆组拆分与坐标系选取 本机构通过杆组法拆分为: I级机构、II级杆组RRR两部分如下:

2.平面构件运动分析的数学模型 图3 平面运动构件(单杆)的运动分析 2.1数学模型 已知构件K 上的1N 点的位置1x P ,1y P ,速度为1x v ,1Y v ,加速度为1 x a ,1y a 及过点的1N 点的线段12N N 的位置角θ,构件的角速度ω,角加速度ε,求构件上点2N 和任意指定点3N (位置参数13N N =2R ,213N N N ∠=γ)的位置、 速度、加速度。 1N ,3N 点的位置为: 211cos x x P P R θ=+ 211sin y y P P R θ=+ 312cos()x x P P R θγ=++ 312sin()y y P P R θγ=++ 1N ,3N 点的速度,加速度为: 211211sin ()x x x y y v v R v P P ωθω=-=-- 211121sin (-) y y y x x v v R v P P ωθω=-=- 312131sin() () x x x y y v v R v P P ωθγω=-+=--312131cos()() y y y x x v v R v P P ωθγω=-+=-- 2 212121()()x x y y x x a a P P P P εω=---- 2 212121()() y y x x y y a a P P P P εω=+--- 2313131()()x x y y x x a a P P P P εω=---- 23133(1)(1) y y x x y y a a P P P P εω=+--- 2.2 运动分析子程序 根据上述表达式,编写用于计算构件上任意一点位置坐标、速度、加速度的子程序如下: 1>位置计算 function [s_Nx,s_Ny ] =s_crank(Ax,Ay,theta,phi,s) s_Nx=Ax+s*cos(theta+phi); s_Ny=Ay+s*sin(theta+phi); end 2>速度计算 function [ v_Nx,v_Ny ] =v_crank(s,v_Ax,v_Ay,omiga,theta,phi) v_Nx=v_Ax-s*omiga.*sin(theta+phi); v_Ny=v_Ay+s*omiga.*cos(theta+phi); end 3>加速度计算 function [ a_Nx,a_Ny ]=a_crank(s,a_Ax,a_Ay,alph,omiga,theta,phi) a_Nx=a_Ax-alph.*s.*sin(theta+phi)-omiga.^2.*s.*cos(theta+phi);

MATLAB程序:已知三个位置设计平面四杆机构求解程序(位移矩阵法)

%MATLAB程序:已知三个位置设计平面四杆机构求解程序(位移矩阵法) clear;clc; %凡是变量名前带v的为数值变量,不带的是符号变量 vxp1=0; vyp1=0; vsita1=0*pi/180; vxp2=-2; vyp2=6; vsita2=40*pi/180; vxp3=-10; vyp3=8; vsita3=90*pi/180; %精确位置P1,P2,P3及各角度 vsita12=vsita2-vsita1; vsita13=vsita3-vsita1; vxa=-10; vya=-2; vxd=-5; vyd=-2; %选定A,D点 %所有数值均在此确定,更改此处即可解出不同数值的四杆机构位移矩阵方程 syms xp1 yp1 xp2 yp2 xp3 yp3 sita12 sita13; syms xa ya xb1 yb1 xb2 yb2 xb3 yb3; f1='(xb2-xa)^2+(yb2-ya)^2=(xb1-xa)^2+(yb1-ya)^2'; f2='(xb3-xa)^2+(yb3-ya)^2=(xb1-xa)^2+(yb1-ya)^2'; %前两个机构方程 f3='xb2=cos(sita12)*xb1-sin(sita12)*yb1+xp2-xp1*cos(sita12)+yp1*sin(sita12)'; f4='yb2=sin(sita12)*xb1+cos(sita12)*yb1+yp2-xp1*sin(sita12)-yp1*cos(sita12)'; %由第一个位移矩阵方程得出 f5='xb3=cos(sita13)*xb1-sin(sita13)*yb1+xp3-xp1*cos(sita13)+yp1*sin(sita13)'; f6='yb3=sin(sita13)*xb1+cos(sita13)*yb1+yp3-xp1*sin(sita13)-yp1*cos(sita13)'; %由第二个位移矩阵方程得出 f1=subs(f1,{xa,ya},{vxa,vya}); f2=subs(f2,{xa,ya},{vxa,vya}); f3=subs(f3,{xp1,xp2,yp1,sita12},{vxp1,vxp2,vyp1,vsita12}); f4=subs(f4,{xp1,yp1,yp2,sita12},{vxp1,vyp1,vyp2,vsita12}); f5=subs(f5,{xp1,xp3,yp1,sita13},{vxp1,vxp3,vyp1,vsita13}); f6=subs(f6,{xp1,yp1,yp3,sita13},{vxp1,vyp1,vyp3,vsita13}); %代入具体数值 [xb1,xb2,xb3,yb1,yb2,yb3]=solve(f1,f2,f3,f4,f5,f6); %解方程 vxb1=vpa(xb1); vyb1=vpa(yb1); vxb2=vpa(xb2); vyb2=vpa(yb2); vxb3=vpa(xb3); vyb3=vpa(yb3); (vxb1-vxa)^2+(vyb1-vya)^2; (vxb2-vxa)^2+(vyb2-vya)^2; (vxb3-vxa)^2+(vyb3-vya)^2; %去掉这三行分号可验证B点三个位置是否距离A点相等 syms xd yd xc1 yc1 xc2 yc2 xc3 yc3;

机械原理大作业3 凸轮结构设计

机械原理大作业(二) 作业名称:机械原理 设计题目:凸轮机构设计 院系:机电工程学院 班级: 设计者: 学号: 指导教师:丁刚陈明 设计时间: 哈尔滨工业大学机械设计

1.设计题目 如图所示直动从动件盘形凸轮机构,根据其原始参数设计该凸轮。 表一:凸轮机构原始参数 序号升程 (mm) 升程运动 角(o) 升程运动 规律 升程许用 压力角 (o) 回程运动 角(o) 回程运动 规律 回程许用 压力角 (o) 远休止角 (o) 近休止角 (o) 12 80 150 正弦加速 度30 100 正弦加速 度 60 60 50 2.凸轮推杆运动规律 (1)推杆升程运动方程 S=h[φ/Φ0-sin(2πφ/Φ0)]

V=hω1/Φ0[1-cos(2πφ/Φ0)] a=2πhω12sin(2πφ/Φ0)/Φ02 式中: h=150,Φ0=5π/6,0<=φ<=Φ0,ω1=1(为方便计算) (2)推杆回程运动方程 S=h[1-T/Φ1+sin(2πT/Φ1)/2π] V= -hω1/Φ1[1-cos(2πT/Φ1)] a= -2πhω12sin(2πT/Φ1)/Φ12 式中: h=150,Φ1=5π/9,7π/6<=φ<=31π/18,T=φ-7π/6 3.运动线图及凸轮线图 运动线图: 用Matlab编程所得源程序如下: t=0:pi/500:2*pi; w1=1;h=150; leng=length(t); for m=1:leng; if t(m)<=5*pi/6 S(m) = h*(t(m)/(5*pi/6)-sin(2*pi*t(m)/(5*pi/6))/(2*pi)); v(m)=h*w1*(1-cos(2*pi*t(m)/(5*pi/6)))/(5*pi/6); a(m)=2*h*w1*w1*sin(2*pi*t(m)/(5*pi/6))/((5*pi/6)*(5*pi/6)); % 求退程位移,速度,加速度 elseif t(m)<=7*pi/6 S(m)=h; v(m)=0; a(m)=0; % 求远休止位移,速度,加速度 elseif t(m)<=31*pi/18 T(m)=t(m)-21*pi/18; S(m)=h*(1-T(m)/(5*pi/9)+sin(2*pi*T(m)/(5*pi/9))/(2*pi)); v(m)=-h/(5*pi/9)*(1-cos(2*pi*T(m)/(5*pi/9))); a(m)=-2*pi*h/(5*pi/9)^2*sin(2*pi*T(m)/(5*pi/9)); % 求回程位移,速度,加速度

哈工大机械原理大作业_凸轮机构设计(第3题)

机械原理大作业二 课程名称:机械原理 设计题目:凸轮设计 院系:机电学院 班级: 1208103 完成者: xxxxxxx 学号: 11208103xx 指导教师:林琳 设计时间: 2014.5.2

工业大学 凸轮设计 一、设计题目 如图所示直动从动件盘形凸轮,其原始参数见表,据此设计该凸轮。 二、凸轮推杆升程、回程运动方程及其线图 1 、凸轮推杆升程运动方程(6 50π?≤ ≤) 升程采用正弦加速度运动规律,故将已知条件mm h 50=,6 50π =Φ带入正弦加速度运动规律的升程段方程式中得: ??? ?? ???? ??-=512sin 215650?ππ?S ;

?? ? ?????? ??-= 512cos 1601ππωv ; ?? ? ??= 512sin 1442 1?π ωa ; 2、凸轮推杆推程远休止角运动方程( π?π ≤≤6 5) mm h s 50==; 0==a v ; 3、凸轮推杆回程运动方程(9 14π ?π≤≤) 回程采用余弦加速度运动规律,故将已知条件mm h 50=,9 5'0π= Φ,6 s π = Φ带入余弦加速度运动规律的回程段方程式中得: ?? ? ???-+=)(59cos 125π?s ; ()π?ω--=59 sin 451v ; ()π?ω-=59 cos 81-a 21; 4、凸轮推杆回程近休止角运动方程(π?π 29 14≤≤) 0===a v s ; 5、凸轮推杆位移、速度、加速度线图 根据以上所列的运动方程,利用matlab 绘制出位移、速度、加速度线图。 ①位移线图 编程如下: %用t 代替转角 t=0:0.01:5*pi/6; s=50*((6*t)/(5*pi)-1/(2*pi)*sin(12*t/5)); hold on plot(t,s); t=5*pi/6:0.01:pi; s=50; hold on plot(t,s); t=pi:0.01:14*pi/9; s=25*(1+cos(9*(t-pi)/5));

机械原理课程设计Matlab编程

/*Matlab程序*/ l1 = 59.1000; l2 = 263.9000; l3=120; l4=266.83; l5=180; l6=45; x2=170; y2=132.7289; w1=9.4248; N=42:10:402; ay=119:10:479 a=2*l1*l3*sin(N/180*pi); b=2*l3*(l1*cos(N/180*pi)-l4); c=l2^2-l1^2-l3^2-l4^2+2*l1*l4*cos(N/180*pi); jiao3=2*atan((a- sqrt(a.^2+b.^2-c.^2))./ (b-c))/pi*180+77 g=2*l1*l2*sin(N/180*pi); h=2*l2*(l1*cos(N/180*pi)-l4); m=l1^2+l2^2+l4^2-l3^2-2*l1*l4*cos(N/180*pi); jiao2=2*atan((g- sqrt(g.^2+h.^2-m.^2))./ (h-m))/pi*180+77 lof=-sqrt(l6^2-x2^2-l5^2+2*l5*x2*cos((180+jiao3)/180*pi)+l5^2*sin(j iao3/180*pi).^2)+y2-l5* sin((180+jiao3)/180*pi)

j12=N-(jiao2-77); j32=jiao3-jiao2; j13=(N-(jiao3-77)); j23=(jiao2-jiao3); w3=(w1*l1*sin(j12/180*pi))./ (l3*sin(j32/180*pi)) w2=(-1*w1*l1*sin(j13/180*pi))./(l2*sin(j23/180*pi)) a3=(w1^2*l1*cos(j12/180*pi)+w2.^2*l2-(w3.^2).*(l3*cos(j32/180*pi)) )./ (l3*sin(j32/180*pi)) a2=(-w1^2*l1*cos(j13/180*pi)-(w2.^2).*(l2*cos(j23/180*pi))+l3*w3.^ 2)./ (l3*sin(j23/180*pi)) jiao4=acos((x2-l5*cos((180+jiao3)/180*pi))/l6)/pi*180 w4=((-l5*sin((pi+jiao3)/180*pi)).*w3)./ (l6*sin(jiao4/180*pi)) vof=((l5*sin((180+jiao3-jiao4)/180*pi)).*w3).* sin(jiao4/180*pi) aof=(l6*w4.^2+(l5*w3.^2).*(cos((180+jiao3-jiao4)/180*pi))+l5*a3.*si n((180+jiao3-jiao4)/180*pi))./sin(jiao4/180*pi) 作图程序: /*F点的位移*/ plot(N+77,lof,'-xk') xlabel('AB杆的角度'),ylabel('F点的位移/(mm)') title('F点的位移曲线图') text(100, 171.3339,'初始值= 171.3339')

机械原理课程设计matlab程序及成果图

Wjr_main.m %1.输入已知数据 clear; l2=0.1605;%AB的长度单位m l4=0.6914;%CD的长度单位m l5=0.2074;%DE的长度单位m l1=0.370;%AC的长度单位m l1p=0.6572;%CF的长度单位m omg2=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));

机械原理matlab分析大作业3-28

机械原理 第一题: 求C点的位移、速度及加速度。 由封闭形ABCDEA与AEFA得: L6+L4+L3 =L1+L2 L1’=L6+L4’ (1)位置分析 机构的封闭矢量方程式写成在两坐标上的投影表达式: 由以上方程求出θ2 、θ3 、θ4 、L1’ 1.主程序:

%输入已知数据 l2=60; l3=35; l4=75; l5=50; l6=40; l7=70; hd=pi/180; du=180/pi; omega1=10; alpha1=0; %调用子函数计算角位移,角速度及角加速度 for n1=1:66 %曲柄转角范围 theta1(n1)=(n1-1)*hd; ll=[l2,l3,l4,l5,l6,l7]; [theta,omega,alpha]=six_bar(theta1(n1),omega1,ll); l1(n1)=theta(1); theta2(n1)=theta(2); theta4(n1)=theta(3); theta3(n1)=theta(4); v1(n1)=omega(1); omega2(n1)=omega(2); omega3(n1)=omega(3); omega4(n1)=omega(4); a1(n1)=alpha(1); alpha2(n1)=alpha(2); alpha3(n1)=alpha(3); alpha4(n1)=alpha(4); e nd %图像输出 figure(1); n1=1:66; t=(n1-1)*2*pi/360; subplot(2,2,1); %滑块F线位移L1图像输出 plot(theta1*du,l1,'k'); title('L1线位移图'); xlabel('角位移\theta_1/\circ') ylabel('线位移/mm') grid on;

机械原理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)<0 x3(i)=x3(i)+pi; end end S3=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;

机械原理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物理量的名称、符号和计量单位

机械原理 牛头刨床附录MATLAB编程部分

机械原理课程设计 课题:牛头刨床机构设计分析 指导老师:王玉丹

附录: MATLAB编程分析 源程序: clear all;clc; %初始条件 theta1=linspace(-20.77,339.23,100);%单位度 theta1=theta1*pi/180;%转换为弧度制 W1=80*pi/30;%角速度单位rad/s H=0.5;%行程单位m L1=0.1605;%O2A的长度单位m L3=0.6914;%O3B的长度单位m L4=0.2074;%BF的长度单位m L6=0.430;%O2O3的长度单位m L6u=0.6572;%O3D的长度单位m Z=pi/180;%角度与弧度之间的转换 dT=(theta1(3)-theta1(2))/W1;%时间间隔 for j=1:100 t(j)=dT*(j-1);%时间因素 end %求解S3、Theta3、Theta4和SE四个变量 S3=((L6)^2+(L1)^2-2*L6*L1*cos(theta1+pi/2)).^0.5;%求出O3A的值for i=1:100%求解角度theta3、Theta4和SE的长度 theta3(i)=acos(L1*cos(theta1(i))/S3(i)); theta4(i)=asin((L6u-L3*sin(theta3(i)))/L4); SE(i)=L3*cos(theta3(i))+L4*cos(theta4(i)); end%求解完成 %求解完成 %求解VS3、W3、W4和VE四个变量 for i=1:100 J= inv([cos(theta3(i)),-S3(i)*sin(theta3(i)),0,0; sin(theta3(i)),S3(i)*cos(theta3(i)),0,0; 0,-L3*sin(theta3(i)),-L4*sin(theta4(i)),-1; 0,L3*cos(theta3(i)),L4*cos(theta4(i)),0]); K=J*W1*[-L1*sin(theta1(i));L1*cos(theta1(i));0;0]; VS3(i)=K(1); W3(i)=K(2); W4(i)=K(3); VE(i)=K(4); end%求解完成

机械原理第一次作业

机械原理大作业 一、题目(平面机构的运动分析) 已知:r AE=70mm,r AB=40mm,r EF=60mm,r DE=35mm,r CD=75mm,r BC=50mm,原动件以 等角速度w1=10rad/s回转。试以图解法求在θ1=50°时C点的速度VC 和加速度 二、对机构进行位置分析 由封闭形ABCDEA与AEFA有:

r 1+r 2=r 6+r 3+r 4 r 7=r 6+r 8 即r 2-r 3-r 4=-r 1+r 6 -r 8+r 7=r 6 (1)位置方程 r 2cos θ2-r 3cos θ3-r 4cos(θ4+180°)=-r 1cos(θ1+180°)+r 6 r 2sin θ2-r 3sin θ3-r 4sin(θ4+180°)=-r 1sin(θ1+180°) -r 8cos θ4+ r 7cos θ1=r 6 - r 8sin θ4+ r 7sin θ1=0 X c =r 1cos(θ1+180°)+r 2cos θ 2 Yc= r 1sin(θ1+180°) +r 2 sin θ 2 (2)速度方程 -r 2sin θ 2 r 3sin θ 3 r 4cos(θ 4 +180°) 0 w 2 r 2cos θ 2 -r 3cos θ 3 -r 4cos(θ4+180°) 0 w 3 0 0 r 8sin θ 4 cos θ 1 w 4 0 0 -r 8cos θ 4 sin θ 1 r 7 r 1sin(θ1+180°) =1 -r 1cos(θ1+180°) r 7 sin θ1 -r 7cos θ1 V cx = -r 1w 1sin(θ1+180°)-w 2 r 2sin θ 2

MATLAB机构运动仿真

机械原理第一次作业(matlab7.0): 求:r1旋转360°时,θ2,θ3,ω2,ω3,α2,α3和C点的加速度. 设r1=1000,r2=2000,r3=1800,r4=2500 1、角位移的M函数: function y=diyiwen(x) % Input parameters % x(1)=theta-1 % x(2)=theta-2 guess value % x(3)=theta-3 guess value % x(4)=r1 % x(5)=r2 % x(6)=r3 % x(7)=r4 % Output parameters % y(1)=theta-2 % y(2)=theta-3 theta2=x(2); theta3=x(3); % epsilon=1.0E-6; % f=[x(4)*cos(x(1))+x(5)*cos(theta2)-x(7)-x(6)*cos(theta3); x(4)*sin(x(1))+x(5)*sin(theta2)-x(6)*sin(theta3)]; % while norm(f)>epsilon J=[-x(5)*sin(theta2) x(6)*sin(theta3);x(5)*cos(theta2) -x(6)*cos(theta3)]; dth=inv(J)*(-1.0*f); theta2=theta2+dth(1); theta3=theta3+dth(2); f=[x(4)*cos(x(1))+x(5)*cos(theta2)-x(7)-x(6)*cos(theta3); x(4)*sin(x(1))+x(5)*sin(theta2)-x(6)*sin(theta3)]; norm(f); end;

机械原理课程设计matlab程序 凸轮机构

clear h=70;w=2*pi*300/60; %行程h(单位mm),凸轮角转速(rad/s)d1=pi/2; d2=10/180*pi; d3=pi/2; d4=170/180*pi;%算出凸轮的推程角,远休止角,回程角,近休止角(弧度) d=1:1:360; d0=d/180*pi; %定义向量 %推程 for i=1:45 %等加速运动 s(i)=2*h*d0(i)^2/d1^2; v(i)=4*h*w*d0(i)/d1^2; a(i)=4*h*w^2/d1^2; end for i=46:90 %等减速运动 s(i)=h-2*h*(d1-d0(i))^2/d1^2; v(i)=4*h*w*(d1-d0(i))/d1^2; a(i)=-4*h*w^2/d1^2; end for i=91:101 s(i)=s(i-1); v(i)=0; a(i)=0; end %回程 for i=102:146 %等加速运动 s(i)=h-2*h*d0(i-100)^2/d3^2; v(i)=-4*h*w*d0(i-100)/d3^2; a(i)=-4*h*w^2/d3^2; end for i=147:192 %等减速运动 s(i)=2*h*(d3-d0(i-100))^2/d3^2; v(i)=-4*h*w*(d3-d0(i-100))/d3^2; a(i)=4*h*w^2/d3^2; end for i=193:360 s(i)=s(i-1); v(i)=0; a(i)=0; end r0=61;e0=39; s0=sqrt(r0^2-e0^2); for i=1:1:360 x(i)=(s0+s(i))*sin(d0(i))+e0*cos(d0(i));

哈工大机械原理大作业

H a r b i n I n s t i t u t e o f T e c h n o l o g y 大作业设计说明书 课程名称:机械原理 设计题目:凸轮机构 院系:机电学院 班级: 姓名: 学号: 指导教师:丁刚 设计时间: 哈尔滨工业大学 1.设计题目 2.运动方程式及运动线图 由题目要求凸轮逆时针旋转 (1)确定凸轮机构推杆升程、回程运动方程,并绘制推杆位移、速度、加速度线图。升程第一段:(0 <φ< pi /4)φ0=pi/2; s1 = 73*φ^2; v1=146*w*φ; a1 = 146*w^2;

升程第二段:(pi/4 <φ< pi /2) s2 =90-73*(pi/2-φ)^2; v2=146*w*( pi/2-φ); a2 =-146*w.^2; 远休止程:(pi/2 <φ< 10*pi/9) s3 = 90; v3 = 0; a3 = 0; 回程:(10*pi/9)< φ< ( 14*pi/9) s4 =45*(1+cos(9/4*(φ-10*pi/9))); v4 =*w*sin(9/4*(φ-10*pi/9)) ; a4 =*w^2* cos(9/4*(φ-10*pi/9)); 近休止程:(14*pi/9)< φ < ( 2*pi); s5 =0; v5 =0; a5 =0; 1.由上述公式通过编程得到位移、速度、加速度曲线如下:(编程见附录). 2. 凸轮机构的线图及基圆半径和偏距的确定 凸轮机构的线图如下图所示(代码详见附录): 因为凸轮逆时针旋转,,所以滚子从动件右偏,但由于绘图原因,采用向左为正方向,由此 确定凸轮基圆半径与偏距: 基圆半径为r0 = (50^2+100^2)=112mm,偏距e = 50mm。 3.凸轮实际轮廓,理论轮廓,基圆,偏距圆绘制

牛头刨床matlab程序 机械原理课程设计

clear all;clc; %初始条件 theta1=linspace(-18,342,100);%单位度 theta1=theta1*pi/180;%转换为弧度制 W1=80*pi/30;%角速度单位rad/s H=0.5;%行程单位m L1=0.1329;%O2A的长度单位m L3=0.8091;%O3B的长度单位m L4=0.2589;%BF的长度单位m L6=0.430;%O2O3的长度单位m L6u=0.7893;%O3D的长度单位m Z=pi/180;%角度与弧度之间的转换 dT=(theta1(3)-theta1(2))/W1;%时间间隔 for j=1:100 t(j)=dT*(j-1);%时间因素 end %求解S3、Theta3、Theta4和SE四个变量 theta3(i)=atan((L6+L1*sin(theta1(i)))/L1/cos(theta(i))); for i=1:100 S3=L1*cos(theta1(i))/cos(theta3(i)); theta4(i)=asin((L6u-L3*sin(theta3(i)))/L4); SE(i)=L3*cos(theta3(i))+L4*cos(theta4(i)); end %求解完成 %求解完成 %求解VS3、W3、W4和VE四个变量 for i=1:100 J= inv([cos(theta3(i)),-S3(i)*sin(theta3(i)),0,0; sin(theta3(i)),S3(i)*cos(theta3(i)),0,0; 0,-L3*sin(theta3(i)),-L4*sin(theta4(i)),-1; 0,L3*cos(theta3(i)),L4*cos(theta4(i)),0]); K=J*W1*[-L1*sin(theta1(i));L1*cos(theta1(i));0;0]; VS3(i)=K(1); W3(i)=K(2); W4(i)=K(3); VE(i)=K(4); end%求解完成 %求解aS3、a3、a4、aE四个变量 for i=1:100 J= inv([cos(theta3(i)),-S3(i)*sin(theta3(i)),0,0; sin(theta3(i)),S3(i)*cos(theta3(i)),0,0; 0,-L3*sin(theta3(i)),-L4*sin(theta4(i)),-1; 0,L3*cos(theta3(i)),L4*cos(theta4(i)),0]); P=W1*[-L1*cos(theta1(i));L1*sin(theta1(i));0;0];

机械原理-MATLAB基于四杆机构运动分析的运用

MATLAB软件由美国MathWorks公司于1982年推出,经过十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件之一。 MATLAB提供了强大的矩阵处理和绘图功能。它主要包括两部分内容:核心函数和工具箱。Matlab编程代码接近数学推导公式,简洁直观,与科技人员的思维方式和书写习惯相适应,操作简易,人机交互性能好,且可以方便迅速地用三维图形、图像、声音、动画等表达计算结果,拓展思路。 编制相应的M函数文件。Pos.m用于求解位置、角度和角加速度。th1为初始角度,w1为杆1角速度,其余为杆长。将课本P35(i)、(ii)、(iii)式用MATLAB语言表述,即可编制为四杆机构求解函数文件pos.m。 function f=pos(th1,w1,l1,l2,l3,l4) syms x21 x31 x22 x32 x1=th1*pi/180;x11=cos(x1);x12=sin(x1); eq1=l1*x11+l2*x21-l3*x31-l4; eq2=l1*x12+l2*x22-l3*x32; eq3=x21^2+x22^2-1;eq4=x31^2+x32^2-1; s=solve(eq1,eq2,eq3,eq4,x21,x22,x31,x32); s1=double(s.x21); s2=double(s.x22); s3=double(s.x31); s4=double(s.x32); x2=(acos(s1(1,1)))/pi*180; x3=(acos(s3(1,1)))/pi*180; A=[l2*s2(1,1),-l3*s4(1,1);l2*s1(1,1),-l3*s3(1,1)]; B=[-l1*x12;-l1*x11]; w=A\(w1*B);w2=w(1,1);w3=w(2,1); C=[-l2*w(1,1)*s1(1,1),l3*w(2,1)*s3(1,1);l2*w(1,1)*s2(1,1),-l3*w(2,1)*s4(1,1)]; D=[w(1,1);w(2,1)];E=[-l1*w1*x11;l1*w1*x12]; F=[l2*s2(1,1),-l3*s4(1,1);l2*s1(1,1),-l3*s3(1,1)]; t=F\(C*D+w1*E);a2=t(1,1);a3=t(2,1); l1=cat(1,th1,w1,0);l2=cat(1,x2,w2,a2); l3=cat(1,x3,w3,a3);f=(cat(2,l1,l2,l3))'; subplot(2,2,1);plot(th1,w2,'r-');hold on;title('连杆2角速度分析'); subplot(2,2,2);plot(th1,a2,'b-');hold on;title('连杆2角加速度分析'); subplot(2,2,3);plot(th1,w3,'r-');hold on;title('连杆3角速度分析'); subplot(2,2,4);plot(th1,a3,'b-');hold on;title('连杆3角加速度分析'); return 在MA TLAB命令窗口输入命令: >> th1=60;w1=pi/3;l1=20;l2=30;l3=40;l4=45; >> function f=pos(th1,w1,l1,l2,l3,l4) 60°,ω=pi/3时的值 即可得到 theta= 采用实时动画的方法编写draw.m文件: function dw = draw(l1,l2,l3,l4,x1,x2,x3) figure(2); th1=x1*pi/180;th2=x2*pi/180;th3=x3*pi/180; x=0:0.001:l4;plot(x,0,'r-');axis([-25,70,-25,60]);hold on for i=0:0.1:l1; s=i*cos(th1); c=i*sin(th1); plot(s,c,'b-');hold on; end; for x=0:0.1:l3; s2=x*cos(th3)+l4;c2=x*sin(th3); plot(s2,c2);hold on; end for x=0:0.1:l2; s3=l1*cos(th1)+x*cos(th2); c3=l1*sin(th1)+x*sin(th2); plot(s3,c3);hold on; end return 代入pos.m中所得的结果,输入命令: >>draw(l1,l2,l3,l4,y(1,1),y(2,1),y(3,1)) 即可得到当前位置下的四杆图形。 实例计算 假设已知各杆的尺寸和杆1的初始角度th1及角速度w1,其分别为th1=60,w1=pi/3,l1=25,l2=40,l3=50,l4=60。 现求在图1所示位置时的杆2和3的角位移,角速度和角加速度及当前位置下的四杆机构图形。仅需输入: >> th1=60;w1=pi/3;l1=25;l2=40;l3=50;l4=60; >> pos(th1,w1,l1,l2,l3,l4) >>draw(l1,l2,l3,l4,y(1,1),y(2,1),y(3,1)) 若要得到四杆机构的运动图形,则输入: >>for m=0:1:360;%步距为1°,可更改; y=pos(m,w1,l1,l2,l3,l4);

相关文档
最新文档