资源简介
研究生时候写的程序,上传上来希望对大家有所帮助
试设计一曲柄摇杆机构,已知支座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粒子群优化算法 非线性函数极值
- GMSK MSK 各种数字调制MATLAB源码
- Matlab色差公式-带界面
- QPSK调制解调的MATLAB仿真代码
- 图像细化算法的matlab实现(非自带工
- 质心算法matlab仿真程序
- 多重共线性检验的MATLAB程序
- NMF matlab代码
- 软件无线电仿真MATLAB源码
- wsn分簇LEACH和DEEC算法之matlab仿真
- GA-ELM(matlab源码)
- windows64位matlab中simplemkl
- 数字图像处理DCT矩阵分块变换matlab程
- matlab自相关除噪
- 用matlab研究光栅衍射
- 基于MATLAB的导线网平差程序
- matlab 常用语音编码及
-
电力电子MATLAB/Simuli
nk仿真程序 - 语音质量评价matlab代码
- matlab基于肤色和模板匹配的人脸检测
- matlab模拟退火代码
- Dijkstra算法MATLAB代码
- karlman算法背景提取matlab实现
-
重复控制器的matlab/simuli
nk仿真 - Matlab R2018b 的硬件支持包
- 多种小波去噪方法基于matlab的程序代
- Matlab CRC校验GUI
- 基于MATLAB的光学衍射
- 曲线及其包络线的画法 matlab
- 图像最佳缝合线拼接算法 Matlab源代码
评论
共有 条评论