【MATLAB】求算凸轮摆杆机构的最大压力角和最小半径并画出凸轮轮廓

function  curve      %曲线方程
a=145;              %机架距离
l=125;               %摆杆长度
r0=60;               %基圆半径
rr=8;                 %滚子半径
step=0.01;          %计算步长
flag=1;             %1为凸轮顺时针转,其他为逆转
fai0=acos((a^2+l^2-r0^2)/(2*a*l))*180/pi;
delta=[0.0001:step:360];
fai=zeros(1,length(delta));
for ii=1:length(delta)
    if (delta(ii)>0 && delta(ii)<=75)
       fai(ii)=15*(delta(ii)/75-sin(2*pi*delta(ii)/75)/(2*pi));
      else if (delta(ii)>75 && delta(ii)<=85)
          fai(ii)=15;
      else if (delta(ii)>85 && delta(ii)<=150)
             fai(ii)= 15*(1-(delta(ii)-85)/65+sin(2*pi*(delta(ii)-85)/65)/(2*pi));
      else if  (delta(ii)<=360 && delta(ii)>150)
              fai(ii)=0;
          end
          end
          end
    end
end
if flag==1
fai=fliplr(fai);
end
  %理论曲线  
  x=a*sin(delta*pi/180)-130*sin((delta+fai+fai0)*pi/180);
  y=a*cos(delta*pi/180)-130*cos((delta+fai+fai0)*pi/180);
  %实际工作曲线
  dx=derivative(x);
  dy=derivative(y);
   ddelta=step*ones(1,length(delta));
   sintheta=(dx./ddelta)/sqrt(((dx./ddelta).^2+(dy./ddelta).^2));
   costheta=-(dy./ddelta)/sqrt(((dx./ddelta).^2+(dy./ddelta).^2));
   xp=x-rr*costheta;
   yp=y-rr*sintheta;
   %理论曲线最小曲率半径
   dx2=derivative(dx);
  
   dy2=derivative(dy);
   
   rou=abs((sqrt(dx.^2+dy.^2).^3)./(dy2.*dx-dy.*dx2));
   min_radius=min(rou)
   %实际工作曲线最大压力角
   dfai=derivative(fai);
   o1p=a./(1+dfai./ddelta);
   o2p=sqrt(o1p.^2+l^2-2*l*o1p.*cos((fai0+fai)*pi/180));
   beta=acos((o2p.^2+l^2-o1p.^2)./(2*l*o2p))*180/pi;
   angle_of_pressure=90-beta;
   max_angle_of_pressure=max(angle_of_pressure)
  % plot(delta,fai);
                             % A(jj,1)=min_radius;
                             % A(jj,2)=max_angle_of_pressure;
                             % jj=jj+1;
                             %    end
%                              A(:,1)
%                              A(:,2)
   plot(x,y,'.');
end

function d=derivative(b)
d=diff(b);
d(length(d)+1)=b(1)-b(length(b));
end
  • 8
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
该问题需要涉及到凸轮机构的运动学和几何学知识,并使用MATLAB进行绘图和计算。以下是可能的解决方案: 1. 计算凸轮的各个位置的坐标和从动件的位置 我们可以使用几何学的知识,通过给定的凸轮参数,计算出凸轮在不同度下的轮廓线坐标。这里我们可以采用参数方程的方法,将凸轮的运动描述为其参数$\theta$的函数。然后,我们可以通过给定的从动件长度和偏置距离,计算出从动件的位置。 2. 计算压力 在计算从动件位置时,我们可以使用几何学的知识,计算出从动件与凸轮表面的交点,并计算出在该点处的切线。然后,我们可以计算出从动件的运动方向和切线方向之间的夹,即压力。 3. 绘制凸轮轮廓线和压力曲线 使用MATLAB,我们可以绘制出凸轮轮廓线,并在图中标出各个从动件位置的压力。我们还可以计算出最大压力最小压力的位置,并将其标出。 4. 生成GIF动画 我们可以使用MATLAB的动画工具箱,将凸轮轮廓线和压力曲线转化为GIF动画,以便更好地展示凸轮的运动和压力的变化。 5. 计算最大最小压力值 在绘制压力曲线时,我们可以记录下所有度下的压力值,并计算出最大最小值。这些值可以在绘制压力曲线时标出。 总之,这是一个相当复杂的问题,需要涉及凸轮机构的许多概念和计算。以下是一些可能的MATLAB代码片段,可以用来计算凸轮的位置和压力,并绘制凸轮轮廓线和压力曲线:
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值