文档库 最新最全的文档下载
当前位置:文档库 › 心形曲线,生日蛋糕matlab程序

心形曲线,生日蛋糕matlab程序

心形曲线,生日蛋糕matlab程序
心形曲线,生日蛋糕matlab程序

%%心形曲线

clc;

const=0;

x=-5:0.05:5;y=-5:0.05:5;z=-5:0.05:5;

[x,y,z]=meshgrid(x,y,z);

f=(x.^2 + (9/4)*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (9/80)*y.^2.*z.^3-const; p=patch(isosurface(x,y,z,f,0));

set(p, 'FaceColor', 'red', 'EdgeColor', 'none');

daspect([1 1 1])

view(3)

camlight; lighting phong;grid on

%%生日蛋糕

% Following code bakes a birthday cake for someone special to whom you % wanna surprise on his/her birthday with a cake in MATLAB ;)

%

% This is a chocolate flavored cake decorated with cheries on top ...... % yyuummmyy :) :)

%

% Lighted birthday candle has been put up on cake; Think of a wish and blow % off candle by clicking on flame (yellowish in colour)... and here comes % the celebration with birthday song.. :) :) .. Wish you a very very happy % birthday..

%

% While running code, make sure that PC speakers are ON

%

% Cake prepared by Amol G. Mahurkar

%

% Birthday_gift.m Revisions

%

% Version 1.2 04/25/2013 A/V sync

% Version 1.112/19/2011

%

% Version 1.010/28/2011

%

% Please suggest some extra features you think should be in this birthday gift

%

%%

function Birthday_gift()

clc; clear; close all;

instruc = ['Happy Birthday !!!!',char(10),char(10),...

'Here is a birthday cake for someone special,',char(10),char(10),...

'Make sure that PC speakers are ON',char(10),char(10),...

'This cake has following features:',char(10),...

'1. Chocolate flavored... and yummy :) :) ',char(10),...

'2. Decorated with cheries :) :)',char(10),...

'3. Lighted birthday candle on top of it',char(10),char(10),...

'Think of a wish, and',char(10),...

'Blow off candle by clicking on flame (yellowish in colour, obviously)',char(10),...

'Enjoy your birthday cake!!!',char(10),char(10),...

'And ya, wish you a very happy birthday'];

if(~strcmp('Ok',questdlg(instruc,'Surprise !!!!!','Ok','Cancel','Ok'))) quit;

end

global bday_name;

global your_name;

temp = inputdlg({

'Birthday boy/girl name:','Best Wishes from:'

});

bday_name = temp{

1

};

your_name = temp{

2

};

clear temp;

%% Base

n = 20;

theta = (0:n)/n*2*pi;

sintheta = sin(theta); sintheta(n+1) = 0;

m = 11;

r = ones(1,m)';

x1 = r * cos(theta);

y1 = r * sintheta;

z1 = (0:m-1)'/(m-1) * ones(1,n+1);

r = [1 1 linspace(0.8,0,9)]';

x2 = r * cos(theta);

y2 = r * sintheta;

z2 = ones(11,21);

%% Cherry

theta = (-n:2:n)/n*pi;

phi = (-n:2:n)'/n*pi/2;

cosphi = cos(phi); cosphi(1) = 0; cosphi(n+1) = 0; sintheta = sin(theta); sintheta(1) = 0; sintheta(n+1) = 0; x3 = 0.1.*cosphi*cos(theta);

y3 = 0.1.*cosphi*sintheta;

z3 = 0.1.*sin(phi)*ones(1,n+1);

%% Candle

x4=0.05.*ones(m,1)*cos(theta) + 0.5;

y4=0.05.*ones(m,1)*sintheta + 0.5;

z4 = (0:m-1)'/(m-1) * ones(1,n+1) + 0.5;

r11=linspace(0.05,0,10);

r11=[0.05 r11];

r11=r11';

x5=r11*cos(theta) + 0.5;

y5=r11*sintheta + 0.5;

z5 = linspace(1.5,1.8,11)' * ones(1,n+1);

%% Flame

theta = (-n:2:n)/n*pi;

phi = (-n:2:n)'/n*pi/2;

cosphi = cos(phi); cosphi(1) = 0; cosphi(n+1) = 0; sintheta = sin(theta); sintheta(1) = 0; sintheta(n+1) = 0;

x6 = 0.04.*cosphi*cos(theta) + 0.5;

y6 = 0.04.*cosphi*sintheta + 0.5;

z6 = (linspace(1.7,2,21)')*ones(1,n+1);

%% Cake

[figure1, axes1] = figureset();

cake_w_flame(x1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6,z1,z2,z3,z4,z5,z6,figu re1,axes1,1);

again = 1;

while(again)

[xin yin] = ginput(1);

if(xin < 0.5 && xin > -1 && yin < 0.6 && yin > -1)

again = 0;

load('bday_song_8bit_11025.mat');

% sound(song,11025,8);

obj = audioplayer(song, 11025, 8);

play(obj);

close(figure1)

[figure1, axes1] = figureset();

cake_w_flame(x1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6,z1,z2,z3,z4,z5,z6, figure1,axes1,0);

eatmore = 'Wanna eat more ?? Use rotate tool or/and zoom in/out tool for it';

msgbox(eatmore);

else

while(~strcmp(questdlg('Blow off candle','Click on candle to blow it off','Ok','No'),'Ok'))

end

again = 1;

end

end

function [figure1, axes1] = figureset()

figure1 = figure('NumberTitle','off','Name','Wish you a very very happy birthday');

axes1 = axes('Visible','off','Parent',figure1,'PlotBoxAspectRatio',[1 1 1],...

'DataAspectRatio',[1 1 1],'CameraViewAngle',10);

% 10.7508094342063

view(axes1,[-72.5 30]);

hold(axes1,'all');

oldRootUnits=get(0,'Units');

set(0,'Units','Pixels');

pos=get(0,'ScreenSize');

set(0,'Units',oldRootUnits);

maxPos=[-3 27 pos(3)+8 pos(4)-22];

oldUnits=get(figure1,'Units');

oldActivePositionProperty=get(figure1,'ActivePositionProperty');

set(figure1,'Units','Pixels','ActivePositionProperty','outerposition'); set(figure1,'Position',maxPos,'OuterPosition',maxPos);

set(figure1,'Units',oldUnits,'ActivePositionProperty',oldActivePosition Property);

%% Cake w/wo flame

function

cake_w_flame(x1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6,z1,z2,z3,z4,z5,z6,~,ax es1,flame)

global bday_name;

global your_name;

surf(x1,y1,z1,'Parent',axes1,'FaceLighting','phong',...

'LineStyle','none',...

'FaceColor',[0.200000002980232 0 0]);

surf(x2,y2,z2,'Parent',axes1,'FaceLighting','phong',...

'LineStyle','none',...

'FaceColor',[0.600000023841858 0.200000002980232 0]);

text('Parent',axes1,'String','Happy Birthday','Position',[-0.57 0.18 1.5],...

'FontSize',28,...

'FontName','Monotype Corsiva','Color',[1 0 0]);

text('Parent',axes1,'String',bday_name,'Position',[-0.3 -0.1 1.2],...

'FontSize',28,...

'FontName','Monotype Corsiva','Color',[1 0 0]);

text('Parent',axes1,'String',['Best Wishes from

',your_name],'Position',[-1.5 -1.5 1.5],...

'FontSize',28,...

'FontName','Monotype Corsiva','Color',[1 0 0]);

surf(x3+0,y3+0.8,z3+1.1,'Parent',axes1,'FaceLighting','phong',...

'LineStyle','none',...

'FaceColor',[1 0 0]);

surf(x3+0,y3-0.8,z3+1.1,'Parent',axes1,'FaceLighting','phong',...

'LineStyle','none',...

'FaceColor',[1 0 0]);

surf(x3+0.8,y3+0,z3+1.1,'Parent',axes1,'FaceLighting','phong',...

'LineStyle','none',...

'FaceColor',[1 0 0]);

surf(x3-0.8,y3+0,z3+1.1,'Parent',axes1,'FaceLighting','phong',...

'LineStyle','none',...

'FaceColor',[1 0 0]);

surf(x4,y4,z4,'Parent',axes1,'FaceLighting','phong',...

'LineStyle','none',...

'FaceColor',[0.925490200519562 0.839215695858002

0.839215695858002]);

surf(x5,y5,z5,'Parent',axes1,'FaceLighting','phong',...

'LineStyle','none',...

'FaceColor',[0.925490200519562 0.839215695858002

0.839215695858002]);

if(flame==1)

surf(x6,y6,z6,'Parent',axes1,'FaceLighting','phong',...

'LineStyle','none',...

'FaceColor',[1 1 0]);

end

light('Parent',axes1,'Style','local',...

'Position',[-10.162701816704 -0.924193626363743 14.9951905283833]);

if(flame==0)

for i=1:110

view(axes1,[-10*i 20+0.2727*i])

pause(0.205) %0.15

end

end

% EOF

function [Y,FS,NBITS,encoding_info,tag_info,out] = mp3read(FILE)

%MP3READ Read MP3 (".mp3") sound file.

% Y = MP3READ(FILE) reads a MP3 file specified by the string FILE, % returning the sampled data in Y. Amplitude values are in the range [-1,+1].

%

% [Y,FS,NBITS,encoding_info,ID3v1_tag_info] = MP3READ(FILE) returns the sample rate (FS) in Hertz

% and the number of bits per sample (NBITS) used to encode the

% data in the file.

%

% 'encoding_info' is a string containing information about the mp3 % encoding used

%

% 'ID3v1_tag_info' is a string containing the tag information of the file

% (only ID3v1 tag supported in this version)

%

%

% Supports two channel or mono encoded data, with up to 16 bits per sample.

%

% See also MP3WRITE, WAVWRITE, AUREAD, AUWRITE.

a = length(FILE);

if a >= 4

exten = FILE(a-3:a);

if exten ~= '.mp3'

FILE = strcat(FILE,'.mp3');

end

end

if a <= 3

FILE = strcat(FILE,'.mp3');

end

if exist(FILE) ~= 2

error('File not Found')

end

%%%%%% Location of the ".exe" Files

s = which('mp3read.m');

ww = findstr('mp3read.m',s);

location = s(1:ww-2);

%%%%Temporary file%%%%%%

tmpfile = ['temp.wav']; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% Data Decoding using "mpg123.exe"%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [stat,raw_info] = dos([location,'\mpg123', ' -w ', tmpfile, ' ', '"',FILE,'"']);

data_init = findstr(raw_info,'MPEG');

blocks = findstr(raw_info,'[0:');

if raw_info(blocks+3) == '0'

error('Error while decoding file. File may be corrupted')

end

[Y,FS,NBITS] = wavread(tmpfile); % Load the data and delete temporary file

delete(tmpfile); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

tag_info_start = strfind(raw_info,'Title');

tag_info_end = (strfind(raw_info,'Playing MPEG'))-1;

tag_info = raw_info(tag_info_start:tag_info_end);

encoding_info = raw_info(data_init(3):data_init(3)+53);

MATLAB曲线拟合的应用

MATLAB曲线拟合的应用 王磊品吴东 新疆泒犨泰克石油科技有限公司新疆油田公司准东采油厂信息所 摘要:1.阐述MATLAB数学分析软件的基本功能; 2.对MATLAB在生产数据分析中的应用进行了研究,指出曲线拟合的基本方法; 3.以实例阐明MATLAB与行业生产数据结合对生产数据进行分析的原理。 关键词:MATLAB;曲线拟合;插值 1.引言 在生产开发过程中,复杂的生产数据之间或多或少的存在着这样或者那样的联系,如何利用现今普及的计算机以及网络资源在最短的时间内找到这个联系,以指导我们的生产开发,这对于行业科研人员来说无疑是一个最为关心的问题。MATLAB矩阵分析软件,自推出以来,已成为国际公认的最优秀的数学软件之一,其范围涵盖了工业、电子、医疗以及建筑等各个领域,以其强大的科学计算功能使众多科研机构纷纷采用。 为此,本文从介绍MATLAB软件开始,以实例讲述如何使用MATLAB对生产开发数据进行计算与分析,从而达到高效、科学指导生产的目的。 2.MATLAB简介 MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。由于使用编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言那样难于掌握,用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言。在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来。 MATLAB的含义是矩阵实验室(MATRIX LABORATORY),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵。自问世以来, 就是以数值计算称雄。MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使得MATLAB高度“向量化”。经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具。由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。美国许多大学的实验室都安装有供学习和研究之用。 MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具。工具箱实际上是对MATLAB进行扩展应用的一系列 MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等。随着 MATLAB版本的不断升

滚子摆动从动件凸轮设计matlab程序

} disp ' ******** 滚子摆动从动件凸轮设计 ********' disp '已知条件:' disp ' 凸轮作顺时针方向转动,从动件做摆动' disp ' 从动件在推程作等加速/等减速运动,在回程作等加速等减速运动' rb =52;rt = 10;qm=15;ft = 60;fs = 10;fh = 60;alp = 35;a=140;l=122;q0=asin(rb/a)*180/pi; fprintf (1,' 基圆半径 rb = % mm \n',rb) fprintf (1,' 滚子半径 rt = % mm \n',rt) fprintf (1,' 起始角度 q0= % mm \n',q0) ; fprintf (1,' 最大摆动角度 qm = % mm \n',qm) fprintf (1,' 推程运动角 ft = % 度 \n',ft) fprintf (1,' 远休止角 fs = % 度 \n',fs) fprintf (1,' 回程运动角 fh = % 度 \n',fh) fprintf (1,' 推程许用压力角 alp = % 度 \n',alp) hd= pi / 180;du = 180 / pi; %角度弧度互换 d1 = ft + fs;d2 = ft + fs + fh; disp ' ' . disp '计算过程和输出结果:' disp ' 1- 计算凸轮理论轮廓的压力角和曲率半径' disp ' 1-1 推程(等加速/等减速运动)' s = zeros(ft);ds = zeros(ft);d2s = zeros(ft);vt=zeros(ft);st1=zeros(ft);at=zeros(ft); at = zeros(ft);atd = zeros(ft);pt = zeros(ft); for f = 1 : ft if f <= ft / 2 s(f)=2*(qm/ft^2)*f^2;st1(f)=s(f);s = s(f); %推程加速方程式 ( ds(f)=(qm/ft^2)*f;vt(f)=ds(f);ds = ds(f); d2s(f)=4*qm/ft;at(f)=d2s(f);d2s = d2s(f); else s(f)=qm-2*qm*(ft-f)^2/ft^2;st1(f)=s(f); s = s(f); %推程减速方程式 ds(f)=4*qm*(ft-f)/ft^2;vt(f)=ds(f);ds = ds(f); d2s(f)=-4 *qm/ft^2;at(f)=d2s(f);d2s = d2s(f);

solidworks画凸轮技巧

凸轮。。。应该有。。。升程和回程。。所以你的槽。。应该是围绕圆柱图带旋转切不是标准圆。。。通 俗点就是3坐标都有偏移。 方法还是比较多的。。。。你可以选择。。 1。用包络。画法。。先在平面草绘出槽的中心线。。包络到圆柱体上去后。用扫描切除槽内材料。。即可。。。’ 2。可以用高级功能中的。。。。环形折弯。。。。跟一方法的区别在于这个直接折弯实体。。成一个 也圆柱。。意思就是你先画出槽的平面展开图。。再折弯就行了。 希望对你有所帮助。 直接利用运动曲线画凸轮(上篇) 已有 395 次阅读2012-2-22 15:30|系统分类:技术|曲线, 运动, SolidWorks, 谐波 概述:SolidWorks Toolbox插件里面带有凸轮插件,可以很方便地绘制各种简 单的盘形凸轮和线性凸轮。在此插件里面可以定义:摆线、谐波、正弦等9种运动曲线。但如果我们想利用一些自定义的运动曲线来生成相应的凸轮,应该如何做呢? 下面我将详细介绍如何利用一条已存在的凸轮展开线绘制凸轮。(包括线性凸轮、盘形凸轮和圆柱凸轮) 1.将曲线导入到SolidWorks草图中: 2.直接用此草图拉伸成实体,这是线性凸轮。如下图:

3.做两个坐标系,每个坐标对应另两种凸轮:

4.加入“弯曲”特征。

5.以下分别是盘形凸轮和圆柱凸轮,效果图如下:

6.三种凸轮运动状态见下面的动画。从动画中可以看出,三种凸轮的运动轨迹跟原草图中的运动曲线是一致的。 已同步至香港智诚科技的微博 利用motion生成共扼凸轮(下篇) - 利用跟踪轨迹生成凸轮 已有 235 次阅读2012-2-20 15:15|系统分类:技术|SolidWorks, motion, 共扼凸轮 智诚科技ICT Assistant Technical Manager Lenny Yang 1,概述,在上一篇文章里,我们讲解了如何利用motion生成运动仿真。现在,我将介绍如何使用motion运动仿真进行共扼凸轮的绘制。案例如下图: 2,在motion结果上,我们可以跟踪任意点相对任意物体的运动轨迹。而在凸轮运动中,凸轮的形状跟凸轮中心点相对旋转轴的运动轨迹是相似的。所以我们只要跟踪凸轮中心点的运动轨迹就可以得到正确的凸轮形状。

偏置直动滚子推杆盘形凸轮matlab编程(程序)

机械原理大作业 学院:机械与电子信息学院 授课老师:曾小慧 姓名:张京 学号:547 日期:2015-5-23

目录 1.求轮廓曲线 ○1推程阶段 ○2远休止阶段 ○3回程阶段 ○4近休止阶段 ○5Matlab程序设计 ○6轮廓图形 2.求工作廓线 ○1推程阶段 ○2远休止阶段 ○3回程阶段 ○4近休止阶段 ○5Matlab程序设计 ○6轮廓图形 3.求解最大压力角 ○1压力角公式 ○2MATLAB程序设计 ○3根据MATLAB程序作图可得出其压力角与角度的关系并分析○4失真情况分析 4.附录 Matlab程序

凸轮轮廓 9-14试设计偏置直动滚子推杆盘形凸轮机构的理论轮廓曲线和工作廓线。已知凸轮轴置于推杆轴线右侧,偏距e=20mm ,基圆半径r。=50mm ,滚子半径rr=10mm 。凸轮以等角速度沿顺时针方向回转,在凸轮转过角d1=120o的过程中,推杆按正弦加速度运动规律上升h=50mm ;凸轮继续转过d2=30o时,推杆保持不动;其后,凸轮再回转角度d3=60o时,推杆又按余弦加速度运动规律下降至起始位置;凸轮转过一周的其余角度时,推杆又静止不动。 解: 1.求理论廓线 对于偏置直动滚子推杆盘形凸轮机构,凸轮理论廓线上B 点(即滚子中心)的直角坐标为 ]cos sin )[(0δδe s s x ++-= δδsin cos )(0e s s y -+= (a ) 式中mm mm e r s 826.4520502222 00=-=-= ① 推程阶段 3212001π δ=?= )] 2/()3sin()2/3[()]2/()/2sin()/[(110110111πδπδπδπδδδ-=-=h h s (?? ????=32, 01πδ) ② 远休止阶段 63002π δ=?= 502=s ?? ????=6,02πδ

matlab曲线拟合实例

曲线拟合 求二次拟合多项式 解:(一)最小二乘法MA TLAB编程: function p=least_squar(x,y,n,w) if nargin<4 w=1 end if nargin<3 n=1 end m=length(y); X=ones(1,m) if m<=n error end for i=1:n X=[(x.^i);X] end A=X*diag(w)*X';b=X*(w.*y)';p=(A\b)' 输入: x=[1 3 5 6 7 8 9 10]; y=[10 5 2 1 1 2 3 4] p=least_squar(x,y,2) 运行得: p = 0.2763 -3.6800 13.4320 故所求多项式为:s(x)=13.432-3.68x+0.27632x (二)正交多项式拟合MATLAB编程: function p=least_squar2(x,y,n,w) if nargin<4 w=1; end if nargin<3 n=1; end m=length(x); X=ones(1,m); if m<=n error end for i=1:n X=[x.^i;X]; end A=zeros(1,n+1);

A(1,n+1)=1; a=zeros(1,n+1); z=zeros(1,n+1); for i=1:n phi=A(i,:)*X;t=sum(w.*phi.*phi); b=-sum(w.*phi.*x.*phi)/t a(i)=sum(w.*y.*phi)/t; if i==1 c=0;else c=-t/t1; end t1=t for j=1:n z(j)=A(i,j+1); end z(n+1)=0 if i==1 z=z+b*A(i,:); else z=z+b*A(i,:)+c*A(i-1,:); end A=[A;z]; end phi=A(n+1,:)*X;t=sum(w.*phi.*phi); a(n+1)=sum(w.*y.*phi)/t; p=a*A; 输入: x=[1 3 5 6 7 8 9 10]; y=[10 5 2 1 1 2 3 4]; p=least_squar2(x,y,2) 运行得: b = -6.1250 t1 = 8 z = 0 1 0 b = -4.9328 t1 = 64.8750 z = 1.0000 -6.1250 0 p = 0.2763 -3.6800 13.4320 故所求多项式为:s(x)=13.432-3.68x+0.27632x

滚子摆动从动件凸轮设计matlab程序

disp ' ******** 滚子摆动从动件凸轮设计 ********' disp '已知条件:' disp ' 凸轮作顺时针方向转动,从动件做摆动' disp ' 从动件在推程作等加速/等减速运动,在回程作等加速等减速运动' rb =52;rt = 10;qm=15;ft = 60;fs = 10;fh = 60;alp = 35;a=140;l=122;q0=asin(rb/a)*180/pi; fprintf (1,' 基圆半径 rb = %3.4f mm \n',rb) fprintf (1,' 滚子半径 rt = %3.4f mm \n',rt) fprintf (1,' 起始角度 q0= %3.4f mm \n',q0) fprintf (1,' 最大摆动角度 qm = %3.4f mm \n',qm) fprintf (1,' 推程运动角 ft = %3.4f 度 \n',ft) fprintf (1,' 远休止角 fs = %3.4f 度 \n',fs) fprintf (1,' 回程运动角 fh = %3.4f 度 \n',fh) fprintf (1,' 推程许用压力角 alp = %3.4f 度 \n',alp) hd= pi / 180;du = 180 / pi; %角度弧度互换 d1 = ft + fs;d2 = ft + fs + fh; disp ' ' disp '计算过程和输出结果:' disp ' 1- 计算凸轮理论轮廓的压力角和曲率半径' disp ' 1-1 推程(等加速/等减速运动)' s = zeros(ft);ds = zeros(ft);d2s = zeros(ft);vt=zeros(ft);st1=zeros(ft);at=zeros(ft); at = zeros(ft);atd = zeros(ft);pt = zeros(ft); for f = 1 : ft if f <= ft / 2 s(f)=2*(qm/ft^2)*f^2;st1(f)=s(f);s = s(f); %推程加速方程式 ds(f)=(qm/ft^2)*f;vt(f)=ds(f);ds = ds(f); d2s(f)=4*qm/ft;at(f)=d2s(f);d2s = d2s(f); else s(f)=qm-2*qm*(ft-f)^2/ft^2;st1(f)=s(f); s = s(f); %推程减速方程式 ds(f)=4*qm*(ft-f)/ft^2;vt(f)=ds(f);ds = ds(f); d2s(f)=-4 *qm/ft^2;at(f)=d2s(f);d2s = d2s(f); end at(f)= atan((-l*(1-ds))/(a*sin((s+q0)*hd))-(-1)*cos((s+q0)*hd)/sin((s+q0)*hd));atd(f) = at(f) * du; %推程压力角的角度和弧度表达式 p1= -a*sin(f*hd)+l*sin((s+q0-f)*hd)*(ds-1); p2= a*cos(f*hd)+l*cos((s+q0-f)*hd)*(ds-1); p3=-a*cos(f*hd)+l*(ds-1)^2*cos((s+q0-f)*hd)+l*d2s*sin((s+q0-f)*hd); p4=-a*sin(f*hd)-l*(ds-1)^2*sin((s+q0-f)*hd)+l*ds*cos((s+q0-f)*hd); pt(f)= (p1^2+p2^2)^1.5/(p1*p4-p2*p3) ;p = pt(f);

Matlab最小二乘法曲线拟合的应用实例

MATLAB机械工程 最小二乘法曲线拟合的应用实例 班级: 姓名: 学号: 指导教师:

一,实验目的 通过Matlab上机编程,掌握利用Matlab软件进行数据拟合分析及数据可视化方法 二,实验内容 1.有一组风机叶片的耐磨实验数据,如下表所示,其中X为使用时间,单位为小时h,Y为磨失质量,单位为克g。要求: 对该数据进行合理的最小二乘法数据拟合得下列数据。 x=[10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 2 0000 21000 22000 23000]; y=[24.0 26.5 29.8 32.4 34.7 37.7 41.1 42.8 44.6 47.3 65.8 87.5 137.8 174. 2] 三,程序如下 X=10000:1000:23000; Y=[24.0,26.5,29.8,32.4,34.7,37.7,41.1,42.8,44.6,47.3,65.8,87.5,137.8,17 4.2] dy=1.5; %拟合数据y的步长for n=1:6 [a,S]=polyfit(x,y,n); A{n}=a;

da=dy*sqrt(diag(inv(S.R′*S.R))); Da{n}=da′; freedom(n)=S.df; [ye,delta]=polyval(a,x,S); YE{n}=ye; D{n}=delta; chi2(n)=sum((y-ye).^2)/dy/dy; end Q=1-chi2cdf(chi2,freedom); %判断拟合良好度 clf,shg subplot(1,2,1),plot(1:6,abs(chi2-freedom),‘b’) xlabel(‘阶次’),title(‘chi2与自由度’) subplot(1,2,2),plot(1:6,Q,‘r’,1:6,ones(1,6)*0.5) xlabel(‘阶次’),title(‘Q与0.5线’) nod=input(‘根据图形选择适当的阶次(请输入数值)’); elf,shg, plot(x,y,‘kx’);xlabel(‘x’),ylabel(‘y’); axis([8000,23000,20.0,174.2]);hold on errorbar(x,YE{nod},D{nod},‘r’);hold off title(‘较适当阶次的拟合’) text(10000,150.0,[‘chi2=’num2str(chi2(nod))‘~’int2str(freedom(nod))])

基于MATLAB软件的凸轮轮廓曲线设计_

基于MATLAB软件的凸轮轮廓曲线设 计 摘要:以偏置移动从动件盘形凸轮为例,基于MATLAB软件对凸轮轮廓曲线进行了解析法设计.绘制出轮廓曲线。运行结果表明:在从动件运动规律确定的情况下,利用MATLAB软件以很方便、快捷地得到凸轮的轮廓曲线。 关键词:凸轮机构;凸轮轮廓曲线;MATLAB;解析法 前言 凸轮轮廓曲线的设计,一般可分为图解法和解析法.利用图解法能比较方便地绘制出各种平面凸轮的轮廓曲线.但这种方法仅适用于比较简单的结构,用它对复杂结构进行设计则比较困难,而且利用图解法进行结构设计,作图误差较大,对一些精度要求高的结构不能满足设计要求。解析法可以根据设计要求,通过推导机构中各部分之间的几何关系,建立相应的方程,精确地计算出轮廓线上各点的坐标,然后把凸轮的轮廓曲线精确地绘制出来.但是,当从动件运动规律比较复杂时,利用解析法获得凸轮的轮廓曲线的工作量比较大.而MATLAB软件提供了强大的矩阵处理和绘图功能,具有核心函数和工具箱.其编程代码接近数学推导公式,简洁直观,操作简易,人机交互性能好,且可以方便迅速地用三维图形、图像、声音、动画等表达计算结果、拓展思路[1]。因此,基于MATLAB软件进行凸轮机构的解析法设计,可以解决设计工作量大的问题。 本文基于MATLAB软件进行凸轮轮廓曲线的解析法设计,利用《机械原理》课程的计算机辅助教学,及常用机构的计算机辅助设计.其具体方法为首先精确地计算出轮廓线上各点的坐标,然后运用MATLAB绘制比较精确的凸轮轮廓曲线。

1 设计的意义与已知条件 1.1意义 凸轮机构是由具有曲线轮廓或凹槽的构件,通过高副接触带动从动件实现预期运动规律的一种高副机构,它广泛地应用于各种机械,特别是自动机械、自动控制装置和装配生产线中,是工程实际中用于实现机械化和自动化的一种常用机构。所以,在凸轮的加工中,精确的确定凸轮的轮廓,这对于保证凸轮所带动从动件的运动规律是尤为重要的。 1.2已知条件 偏置移动从动件盘形凸轮设计已知条件(图1): 凸轮作逆时针方向转动,从动件偏置在凸轮轴心的右边 从动件在推程作等加速/等减速运动,在回程作余弦加速度运动 基圆半径rb = 40 mm,滚子半径rt = 10mm,推杆偏距e = 15 mm, 推程升程h = 50 mm,推程运动角ft = 100度,远休止角fs = 60度 回程运动角fh = 90度,推程许用压力角alp = 35度。

凸轮曲线设计

凸轮曲线设计 当根据使用要求确定了凸轮机构的类型、基本参数以及从动件运动规律后,即可进行凸轮轮廓曲线的设计。设计方法有几何法和解析法,两者所依据的设计原理基本相同。几何法简便、直观,但作图误差较大,难以获得凸轮轮廓曲线上各点的精确坐标,所以按几何法所得轮廓数据加工的凸轮只能应用于低速或不重要的场合。对于高速凸轮或精确度要求较高的凸轮,必须建立凸轮理论轮廓曲线、实际轮廓曲线以及加工刀具中心轨迹的坐标方程,并精确地计算出凸轮轮廓曲线或刀具运动轨迹上各点的坐标值,以适合在数控机床上加工。 圆柱凸轮的廓线虽属空间曲线,但由于圆柱面可展成平面,所以也可以借用平面盘形凸轮轮廓曲线的设计方法设计圆柱凸轮的展开轮廓。本节分别介绍用几何法和解析法设计凸轮轮廓曲线的原理和步骤。 1 几何法 反转法设计原理: 以尖底偏置直动从动件盘形凸轮机构为例: 凸轮机构工作时,凸轮和从动件都在运动。为了在图纸上画出凸轮轮廓曲线,应当使凸轮与图纸平面相对静止,为此,可采用如下的反转法:使整个机构以角速度(-w)绕O转动,其结果是从动件与凸轮的相对运动并不改变,但凸轮固定不动,机架和从动件一方面以角速度(-w)绕O转动,同时从动件又以原有运动规律相对机架往复运动。根据这种关系,不难求出一系列从动件尖底的位置。由于尖底始终与凸轮轮廓接触,所以反转后尖底的运动轨迹就是凸轮轮廓曲线。 1). 直动从动件盘形凸轮机构 尖底偏置直动从动件盘形凸轮机构: 已知从动件位移线图,凸轮以等角速w顺时针回转,其基圆半径为r0,从动件导路偏距为e,要求绘出此凸轮的轮廓曲线。 运用反转法绘制尖底直动从动件盘形凸轮机构凸轮轮廓曲线的方法和步骤如下: 1) 以r0为半径作基圆,以e为半径作偏距圆,点K为从动件导路线与偏距圆的切点,导路线与基圆的交点B0(C0)便是从动件尖底的初始位置。 2) 将位移线图s-f的推程运动角和回程运动角分别作若干等分(图中各为四等分)。 3) 自OC0开始,沿w的相反方向取推程运动角(1800)、远休止角(300)、回程运动角(1900)、近休止角(600),在基圆上得C4、C5、C9诸点。将推程运动角和回程运动角分成与从动件位移线图对应的等分,得C1、C2、C3

曲线拟合的最小二乘法matlab举例

曲线拟合的最小二乘法 学院:光电信息学院 姓名:赵海峰 学号: 200820501001 一、曲线拟合的最小二乘法原理: 由已知的离散数据点选择与实验点误差最小的曲线 S( x) a 0 0 ( x) a 1 1(x) ... a n n ( x) 称为曲线拟合的最小二乘法。 若记 m ( j , k ) i (x i ) j (x i ) k (x i ), 0 m (f , k ) i0 (x i )f (x i ) k (x i ) d k n 上式可改写为 ( k , jo j )a j d k ; (k 0,1,..., n) 这个方程成为法方程,可写成距阵 形式 Ga d 其中 a (a 0,a 1,...,a n )T ,d (d 0,d 1,...,d n )T , 、 数值实例: 下面给定的是乌鲁木齐最近 1个月早晨 7:00左右(新疆时间 )的天气预报所得 到的温度数据表,按照数据找出任意次曲线拟合方程和它的图像。 它的平方误差为: || 2 | 2 ] x ( f

(2008 年 10 月 26~11 月 26) F 面应用Matlab 编程对上述数据进行最小二乘拟合 三、Matlab 程序代码: x=[1:1:30]; y=[9,10,11,12,13,14,13,12,11,9,10,11,12,13,14,12,11,10,9,8,7,8,9,11,9,7,6,5,3,1]; %三次多项式拟合% %九次多项式拟合% %十五次多项式拟合% %三次多项式误差平方和 % %九次次多项式误差平方和 % %十五次多项式误差平方和 % %用*画出x,y 图像% %用红色线画出x,b1图像% %用绿色线画出x,b2图像% %用蓝色o 线画出x,b3图像% 四、数值结果: 不同次数多项式拟和误差平方和为: r1 = 67.6659 r2 = 20.1060 r3 = 3.7952 r1、r2、r3分别表示三次、九次、十五次多项式误差平方和 拟和曲线如下图: a 仁polyfit(x,y,3) a2= polyfit(x,y,9) a3= polyfit(x,y,15) b1= polyval(a1,x) b2= polyval(a2,x) b3= polyval(a3,x) r1= sum((y-b1).A 2) r2= sum((y-b2).A2) r3= sum((y-b3).A2) plot(x,y,'*') hold on plot(x,b1, 'r') hold on plot(x,b2, 'g') hold on plot(x,b3, 'b:o')

Matlab编程五次凸轮

附录11、用解析法设计凸轮2的实际轮廓曲线。 1、建立凸轮轮廓的数学模型。 图l 为往复式偏心从动件盘形凸轮的机构运动简图,B 为 理论轮廓线上的任意一点,在图示的直角坐标系中,B 的坐 标,即凸轮理论廓线上的直角坐标参数方程为: X=OE+EF=(S0+S )*Sin (J )+e*Cos (J ) Y=BD – FD=(S0+S )*Cos (J ) – e*Sin (J ) 式中: X ,Y :凸轮理论廓线上的某一点坐标 (mm) e :从动件的偏心距(mm),OC R :凸轮的基圆半径(mm),OA S 0:220E R S -=(mm),CK J :凸轮的转角 S :S =f(J)从动件运动方程,KB BC =CK 十KB =S 0十S 因为工作廓线在法线方向的距离处处相等,且等于滚子半径r ’,故当已知理论廓线上的任意一点B(X,Y)时,只要沿理论廓线在该点的法线的方向取距离为r ’,即得到工作廓线上的相应点B ’(X ’,Y ’).由高等数学可知,理论廓线B 点处的法线n-n 的斜率(与切线斜率互为负倒数)应为 Tan a=-dx/dy=(dx/dJ)/(dx/dJ)/(-dy/dJ)=sina/cosa 注: a 为理论廓线B 点处的法线和X 轴的夹角。 根据(1)(2)两式有 dx/dJ=(ds/dJ-e)sin(J)+(s0+s)cos(J) (3) dy/dJ=(ds/dJ-e)cos(J)-(s0+s)sin(J) (4) 可得 Sin a=(dx/dJ)/((dx/dJ)^2+(dy/dJ)^2)^0.5 (5) Cos a=-(dy/dJ)/((dx/dJ)^2+(dy/dJ)^2)^0.5 (6) 工作廓线上对应的点B ’(x ’,y ’)坐标为: x ’=x-r ’cos a y ’=y- r ’sin a 2、 从动件运行规律:五次多项式运行规律 从动件运动形式为:升—停—降—停型 图1

MATLAB中简单的数据拟合方法与应用实例①

MATLAB中简单的数据拟合方法与应用实例 仅供努力学习matlab的同学们参考参考,查阅了M多资料,总结了以下方法 按步骤做能够基本学会matlab曲线拟合的 1.1数据拟合方法 1.1.1多项式拟合 1.多项式拟合命令 polyfit(X,Y,N):多项式拟合,返回降幂排列的多项式系数。 Polyval(P,xi):计算多项式的值。 其中,X,Y是数据点的值;N是拟合的最高次幂;P是返回的多项式系数;xi是要求的横坐标 拟合命令如下: x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; P=polyfit(x,y,3); xi=0:.2:10; yi=polyval(P,xi); plot(xi,yi,x,y,'r*'); 拟合曲线与原始数据如图1-1 图1-1 2图形窗口的多项式拟合 1)先画出数据点如图1-2 x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; plot(x,y,'r*');

图1-2 2)在图形窗口单击Tools—Basic Fitting,如图1-3勾选. 图1-3 图1-3右方分别是线性、二阶、三阶对数据进行多项式拟合。下面的柱状图显示残差,可以看出,三阶多项式的拟合效果是最好的。 1.1.2指定函数拟合 已知M组数据点和对应的函数形式f t (t)=acos(kt)e X Y 编写M文件:

syms t x=[0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15]; y=[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02]; f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'}); cfun=fit(x,y,f) xi=0:.1:20; yi=cfun(xi); plot(x,y,'r*',xi,yi,'b-'); 图1-4 运行程序,在命令窗口可达到以下运行结果,图像如图1-4 Warning: Start point not provided, choosing random start point. > In fit>handlewarn at 715 In fit at 315 In Untitled2 at 5 cfun = General model: cfun(t) = a*cos(k*t)*exp(w*t) Coefficients (with 95% confidence bounds): a = 0.9987 ( 0.9835, 1.014) k = 1.001 (0.9958, 1.006) w = -0.2066 (-0.2131, -0.2002) 从结果可以看出,拟合的曲线为: (0.2066) ()0.9987cos(1.001)*t f t t e- =。拟 合曲线给出了数据大致趋势,并给出了各参数的置信区间。

凸轮运动Matlab仿真-Matlab课程设计

Matlab 课程设计 李俊机自091 设计题目一:凸轮机构设计 已知轮廓为圆形的凸轮(圆的半径为100mm、偏心距为20mm),推杆与凸轮运动中心的距离20mm,滚子半径为10mm,请利用matlab仿真出凸轮推杆的运动轨迹和运动特性(速度,加速度),并利用动画演示出相关轨迹和运动特性。 %总程序代码 clc; clf; clear; p=figure('position',[100 100 1200 600]); for i=1:360 %画圆形凸轮 R=100; %圆形凸轮半径 A=0:0.006:2*pi; B=i*pi/180; e=20; %偏心距 a=e*cos(B);

b=e*sin(B); x=R*cos(A)+a; y=R*sin(A)+b; subplot(1,2,1) plot(x,y,'b','LineWidth',3); %填充 fill(x,y,'y') axis([-R-e,R+e,-R-e,R+e+100]); set(gca,'Xlim',[-R-e,R+e]) set(gca,'Ylim',[-R-e,R+e+100]) axis equal; axis manual; axis off; hold on; plot(a,b,'og') plot(e,0,'or') plot(0,0,'or','LineWidth',3)

%画滚子 gcx=0; %滚子中心X坐标r=10; %滚子半径 gcy=sqrt((R+r)^2-a^2)+b; %滚子中心Y坐标 gx=r*cos(A)+gcx; %滚子X坐标 gy=r*sin(A)+gcy; %滚子Y坐标 plot(gx,gy,'b','LineWidth',2); %画其它部分 plot([0 a],[0 b],'k','LineWidth',4) plot([3 3],[170 190],'m','LineWidth',4) plot([-3 -3],[170 190],'m','LineWidth',4) %画顶杆 gc=120; dgx=[0 0]; dgy=[gcy gcy+gc]; plot(dgx,dgy,'LineWidth',4); hold off

matlab曲线拟合2010a演示

2010a版本曲线拟合工具箱 一、单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。下面结合我使用的Matlab R2007b 来简单介绍如何使用这个工具箱。 假设我们要拟合的函数形式是y=A*x*x + B*x, 且A>0,B>0。 1、在主命令输入数据: x=233.8:0.5:238.8; y=[235.148 235.218 235.287 235.357 235.383 235.419 235.456 235.49 235.503 235.508 235.536]; 2、启动曲线拟合工具箱 cftool(x,y) 3、进入曲线拟合工具箱界面“Curve Fitting tool” 如图 (1)利用X data和Y data的下拉菜单读入数据x,y,可在Fit name修改数据集名,这时会自动画出数据集的曲线图;

(2)在红色区域选择拟合曲线类型 工具箱提供的拟合类型有: ?Custom Equations:用户自定义的函数类型 ?Exponential:指数逼近,有2种类型,a*exp(b*x) 、a*exp(b*x) + c*exp(d*x) ?Fourier:傅立叶逼近,有7种类型,基础型是a0 + a1*cos(x*w) + b1*sin(x*w) ?Gaussian:高斯逼近,有8种类型,基础型是a1*exp(-((x-b1)/c1)^2) ?Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubicspline、shape-preserving ?Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree~ ?Power:幂逼近,有2种类型,a*x^b 、a*x^b + c ?Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree~;此外,分子还包括constant型 ?Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思) ?Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是a1*sin(b1*x + c1) ?Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b) 在results一栏看结果

凸轮轮廓线的绘制(MATLAB)

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 课程名称:精密机械学基础 设计题目:直动从动件盘形凸轮的设计 院系:航天学院控制科学与工程系 班级: 0904102班 设计者:陈学坤 学号: 1090410229 设计时间: 2011年10月

直动从动件盘形凸轮机构的计算机辅助设计 说明: 凸轮轮阔曲线的设计,一般可分为图解法和解析法,尽管应用图解法比较简便,能简单地绘制出各种平面凸轮的轮廓曲线,但由于作图误差比较大,故对一些精度要求高的凸轮已不能满足设计要求。此次应用MATLAB 软件结合轮廓线方程用计算机辅助设计。首先,精确地计算出轮廓线上各点的坐标,然后运用MATLAB 绘制 比较精确的凸轮轮廓曲线以及其S-α曲线、v-t 曲线、a-t 曲线。 。 1 凸轮轮廓方程 *()()*() ()*()*() X OE EF E Cos J So S Sin J Y BD FD So S Cos J E Sin J =+=++=-=+- (X,Y):凸轮轮廓线上的任意一点的坐标。 E :从动件的偏心距,OC 。 R :凸轮的基园半径,OA 。 J :凸轮的转角。 S :S=f(J)为从动件的方程。 So :22O S R E =-。 H 为从动件的最大位移(mm )。 J1、J2、J3、J4为从动件的四个转角的区域。 S1、S2、S3、S4为与J1、J2、J3、J4对应的从动件的运动规律。 2 实例 R=40,E=10,H=50,J1=J2=J3=J4=900。 3 MATLAB 程序设计 用角度值计算,对于给定的J1、J2、J3、J4,把相应的公式代入其中,求出位移S 和轮廓线上的各点的坐标X 、Y ,最终求出描述凸轮的数组: J=[J1,J2,J3,J4]; S=[S1,S2,S3,S4]; X=[X1,X2,X3,X4]; Y=[Y1,Y2,Y3,Y4]; 用函数plot (X,,Y )画出凸轮的轮廓曲线; 用plot (J,S )函数位移S 的曲线; 对于速度曲线V-t 和加速度曲线a-t ,

MATLAB数据拟合例子

MATLAB数据拟合例子(一次函数、指数函数、双曲线) (2010-06-03 01:44:30)转载▼ 分类:数学工具 标签:杂 谈 一次函数:(a+bx = y) %先求出拟合函数 format long; x = [2001 2002 2003 2004 2005 2006 2007 2008 2009]; y = [32.2 31.3 29.7 28.6 27.5 26.1 25.3 23.7 22.7]; d = [1 1 1 1 1 1 1 1 1]; a=[d;x]; b = a*y'; a=a*a'; c=a\b c = 1.0e+003 * 2.436797222221444 -0.001201666666666 %所以,拟合函数为 y = 1.0e+003 *(2.436797222221444 - 0.001201666666666*x %根据拟合函数求估测值 format short; x = [2010, 2011, 2012, 2013, 2014] 1.0e+003 *( 2.436797222221444 - 0.001201666666666*x) ans = 21.4472 20.2456 19.0439 17.8422 16.6406

指数函数:( y = exp(a + b*x)) >> x = [2001 2002 2003 2004 2005 2006 2007 2008 2009]; y = [21.5 15.9 11.8 8.7 6.5 4.8 3.5 2.6 2.0]; y=log(y'); d = [1 1 1 1 1 1 1 1 1]; a=[d;x]; b = a*y; a=a*a'; c=a\b c = 601.9448 -0.2993 %所以,拟合函数为 y = exp(601.9448 - 0.2993*x) %根据拟合函数求估测值 >> x = [2010, 2011, 2012, 2013, 2014] exp(601.9448 - 0.2993*x) ans = 1.4216 1.0539 0.7813 0.5792 0.4294 双曲线:(1/y = a + b/x) format long;

凸轮的matlab绘制

附2:习题4-3解答 (1)凸轮的理论廓线方程: 0022 00()sin cos ()cos sin x s s e y s s e s r e ????=++?? =+-?=-式中 (2)从动件在不同阶段的位移方程: 2sin()[0,120]230[120,150][150,300]'0 [300,360] h h s h h π???φπφ???φ??-∈????∈???=? ?-∈????∈???推程阶段远休止阶段回程阶段近休止阶段 (3)求解凸轮的实际廓线: 2222 a r a r 00x =x-r cos y =y-r sin sin cos ()cos sin sin ()sin cos cos dx d dx dy d d dy d dx dy d d dx ds s s e d d dy ds s s e d d θθ ?θ???θ????????????++?? ?? ?=??????? ? ? ?????? ? ?- ?=?????? ? ?? ?????? ?=++-?? ? ?=++-?? 式中而

同样,由于位移s 与从动件所处的运动阶段有关,所以有: 2cos()[0,120]0[120,150]s [150,300]'0 [300,360] h h d h d π??φφφ???φ??-∈????∈???=??∈????∈???推程阶段远休止阶段回程阶段近休止阶段 (4)代入已知条件,并用Matlab 语言编程求解,编程代码如下: disp ' ******** 偏置直动滚子从动件盘形凸轮设计 ********' disp '已知条件:' disp ' 凸轮作逆时针方向转动,从动件偏置在凸轮轴心的右边' disp ' 从动件在推程作摆线运动规律运动,在回程作等速运动规律运动' ro = 50;rr = 10;e = 12;h = 30;ft = 120;fs = 30;fh = 150; fprintf (1,' 基圆半径 ro = %3.4f mm \n',ro) fprintf (1,' 滚子半径 rr = %3.4f mm \n',rr) fprintf (1,' 推杆偏距 e = %3.4f mm \n',e) fprintf (1,' 推程行程 h = %3.4f mm \n',h) fprintf (1,' 推程运动角 ft = %3.4f 度 \n',ft) fprintf (1,' 远休止角 fs = %3.4f 度 \n',fs) fprintf (1,' 回程运动角 fh = %3.4f 度 \n',fh) hd = pi / 180;du = 180 / pi; so = sqrt( ro^2 - e^2 ); d1 = ft + fs;d2 = ft + fs + fh; disp ' ' disp '计算过程和输出结果:' disp ' 1-1 推程(摆线运动规律运动)' s = zeros(ft);ds = zeros(ft);d2s = zeros(ft); for f = 1 : ft s(f) = h * f / ft - h * sin(2 * pi * f / ft) / (2 * pi);s = s(f); ds(f) = h / (ft * hd) - h / (ft * hd) * cos(2 * pi * f / ft);ds = ds(f); d2s(f) = 2 * pi * h / (ft * hd) ^ 2 * sin(2 * pi * f / ft);d2s = d2s(f); end disp ' 1-2 回程(等速运动规律运动)' s = zeros(fh);ds = zeros(fh);d2s = zeros(fh); for f = d1 : d2 s(f) = h - h * (f-150) / fh; s = s(f); ds(f) = - h / (fh * hd);ds = ds(f); d2s(f) = 0;d2s = d2s(f); end disp ' 2- 计算凸轮理论廓线与实际廓线的直角坐标'

相关文档