资源简介
研究生时候写的程序,上传上来希望对大家有所帮助
试设计一曲柄摇杆机构,已知支座A的坐标XA=67mm,YA=10mm,再现给定轨迹上的12个点的坐标值(x,y)为输入构件转角的函数如下表。机架倾角β=0.5695。
i 0 1 2 3 4 5 6 7 8 9 10 11
ψ 0 30 60 90 120 150 180 210 240 270 300 330
x 50 48.5 42 34 29 30 34 42 48 55 56 51
y 91 111 107 90 67 45 28 17 12 14 24 52
参考文献:廖汉元、孔建益主编《机械原理》第2版 P161页

代码片段和文件信息
% function four_pole
% 四连杆机构
%close all;clc;clear;
% xm=[50.048.542342930344248555651];
% ym=[91111107906745281712142452];
% plot(xmym‘ro‘)
% hold on;
global l;
global beta;
global gama1;
global XA;
global YA;
% l=[45.0157171.1939113.1270108.943857.66472];
% beta=0.5695;
% gama1=0.22643;
% XA=67;
% YA=10;
% l1=l;
% beta1=beta;
% gama2=gama1;
% XA1=XA;
% YA1=YA;
t1=sin(0:.1:2*pi); % 生成固定点的横轴数据
t2=cos(0:.1:2*pi); % 生成固定点的纵轴数据
r=2; % 固定点的半径
fill(XA+r*t1YA+r*t2‘r‘);set(gcf‘doublebuffer‘‘on‘); % 绘制左侧固定点
hold on;
Cx=XA+real(l(4)*exp(i*beta));%计算右端点的横坐标
Cy=YA+imag(l(4)*exp(i*beta));%计算右端点的纵坐标
fill(Cx+r*t1Cy+r*t2‘r‘); % 绘制右侧固定点
axis([-100200-100150]); % 设置坐标轴范围及属性
t=1; % 记录时间的参数
A=t; % 旋转的角度
z=l(1)*exp(i*A);
Ax=XA+real(l(1)*exp(i*A)); % 圆周运动的端点的横坐标
Ay=YA+imag(l(1)*exp(i*A));%圆周远动的端点的纵坐标
m=l(4)*exp(i*beta);
H1=plot([XAAx][YAAy]‘linewidth‘4); % 画出作圆周运动的连杆OA
AC=sqrt((Cx-Ax)^2+(Cy-Ay)^2); % 计算当前线段AC的长度
AB=l(2); % 设置AB的长度,其为固定值
BC=l(3); % 设置BC的长度,其为固定值
JA=acos((AC^2+AB^2-BC^2)/(2*AC*AB)) ;% 计算AB和AC夹角大小
Bx=Ax+real(AB*exp(((angle(m-z))+JA)*i));% 获得B点当前的横坐标
By=Ay+imag(AB*exp(((angle(m-z))+JA)*i));%获得B点当前的纵坐标
%B=z+AB*exp(((angle(m-z))+JA)*i); % 获得B点当前的坐标
Dx=Ax+real(l(5)*exp((angle(m-z)+JA+gama1)*i));%获得D点当前的横坐标
Dy=Ay+imag(l(5)*exp((angle(m-z)+JA+gama1)*i));%获得D点当前的纵坐标
%D=z+57.66472*exp((angle(m-z)+JA+0.2264)*i);
k=1; % 控制循环是否执行的参数
H2=plot([AxBx][AyBy]‘g‘‘linewidth‘4); % 绘制AB连杆
H3=plot([BxCx][ByCy]‘linewidth‘4‘color‘[0.40.20.5]); % 绘制BC连杆
H4=plot([AxDx][AyDy]‘y ‘‘linewidth‘4); %绘制AD连杆
%Ga=plot(AxAy); % 绘制A点当前的轨迹曲线
%Gb=plot(BxBy); % 绘制B点当前的轨迹曲线
Gd=plot(DxDy);% 绘制D点轨迹
%set([GaGb]‘color‘‘r‘); % 设置轨迹曲线的颜色
%zga=z; % 定义记录A点轨迹点的变量
%zgb=B; % 定义记录B点轨迹点的变量
zgdx=Dx;
zgdy=Dy;
xlabel(‘Please press “space“ key and stop this program!‘...
‘fontsize‘14‘color‘‘r‘); % 加注标注
T=title([‘time= ‘num2str(t)]); % 实时显示时间
text(0100‘铰链四连杆机构‘); % 加注文字
while k; % 模拟四连杆的运动过程
s=get(gcf‘currentkey‘); % 检测键入按键的名称
if strcmp(s‘space‘); % 判断键入按键是否为空格键
clc;k=0; % 设置参数使循环结束
end
pause(0.01); % 暂停一下,显示动画效果
t=t+0.02; % 更新时间
z=l(1)*exp(i*t);
Ax=XA+real(l(1)*exp(i*t)); % 圆周运动的端点的横坐标
Ay=YA+imag(l(1)*exp(i*t));%圆周远动的端点的纵坐标
AC=sqrt((Cx-Ax)^2+(Cy-Ay)^2); % 计算当前线段AC的长度
%AC=abs(m-z); % 计算当前线段AC的长度
JA=acos((AC^2+AB^2-BC^2)/(2*AC*AB)); % 计算当前线段AB和BC的夹角
%B=z+AB*exp(((angle(m-z))+JA)*i); % 获得B点当前的坐标
Bx=Ax+real(AB*exp(((angle(m-z))+JA)*i));% 获得B点当前的横坐标
By=Ay+imag(AB*exp(((angle(m-z))+JA)*i));%获得B点当前的纵坐标
Dx=Ax+real(l(5)*exp((angle(m-z)+JA+gama1)*i));%获得D点当前的横坐标
Dy=Ay+imag(l(5)*exp((angle(m-z)+JA+gama1)*i));%获得D点当前的纵坐标
%D=z+57.66472*exp((angle(m-z)+JA+0.2264)*i);
set(H1‘xdata‘[XAAx]‘ydata‘[YAAy]); % 更新线段OA的位置
set(H2‘xdata‘[AxBx]‘ydata‘[AyBy]); % 更新线段AB的位置
set(H3‘xdata‘[BxCx]‘ydata‘[ByCy]); % 更新线段BC的位置
set(H4‘xdata‘[DxAx]‘ydata‘[DyAy]); %更新线段AD的位
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3886 2009-12-07 10:57 Mechanisms5\fourbarmotion2.asv
文件 3968 2009-12-07 15:05 Mechanisms5\four_pole.asv
文件 3973 2009-12-23 17:18 Mechanisms5\four_pole.m
文件 42034 2009-11-04 16:44 Mechanisms5\fuorbarGUI.asv
文件 7274 2009-12-07 15:15 Mechanisms5\fuorbarGUI.fig
文件 42011 2009-12-07 11:17 Mechanisms5\fuorbarGUI.m
文件 721 2009-10-31 21:32 Mechanisms5\my.asv
文件 702 2009-12-23 17:17 Mechanisms5\my.m
文件 771 2009-10-30 19:21 Mechanisms5\myfun.asv
文件 741 2009-11-01 17:34 Mechanisms5\myfun.m
文件 586752 2009-11-12 20:06 Mechanisms5\图片.doc
目录 0 2009-12-23 17:20 Mechanisms5
----------- --------- ---------- ----- ----
692833 12
- 上一篇:三维点云svd分解求取旋转矩阵
- 下一篇:matlab粒子群优化算法 非线性函数极值
相关资源
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
- matlab识别系统
- 神经网络分类matlab程序
- matlab正弦信号发生器的设计
- matlab程序用Hopfield网络解决TSP
评论
共有 条评论