four-bars-linkages-analysis-with-matlab

image.png
image.png

%**********************参数设定*********************
l1=100;
l2=300;
l3=250;
l4=200;
omega1=10.17;  %rad/s
phi1=0:0.01*pi:2*pi;% 定义杆1的角度。单位:弧度
%*********************求解位置参数*******************
l_bd=sqrt(l4*l4+l1*l1+2*l1*l4*cos(phi1));
theta1=asin(l1*(sin(phi1)./l_bd));%可能有问题
Angle_c=acos((l2*l2+l3*l3-l_bd.^2)./(2*l2*l3));
theta2=asin((l2*sin(Angle_c))./l_bd);
phi3=theta1+theta2;
phi2=phi3+Angle_c;
%************************求解速度/加速度参数*****************
[row,col]=size(phi1);
index=1;
omega2=zeros(row,col);
omega3=zeros(row,col);
alpha2=zeros(row,col);
alpha3=zeros(row,col);
while index~=col+1
    %求解速度参数
    A_v=[-l2*sin(phi2(index)) l3*sin(phi3(index)) ;-l2*cos(phi2(index)) l3*cos(phi3(index))];
    B_v=[l1*sin(phi1(index))*omega1;l1*cos(phi1(index))*omega1];
    omega=A_v\B_v;%速度的矩阵时A*X=B,要求解X,X = A\B
    %求解加速度参数
    A_a=[-l2*sin(phi2(index)) l3*sin(phi3(index));-l2*cos(phi2(index)) l3*cos(phi3(index))];
    B_a=[l1*omega1^2*cos(phi1(index))+l2*cos(phi2(index))*omega(2)^2-l3*cos(phi3(index))*omega(2)^2 ;
        l1*omega1^2*sin(phi1(index))-l2*sin(phi2(index))*omega(2)^2+l3*sin(phi3(index))*omega(2)^2];
    alpha=A_a\B_a;
    %结果换算出来
    omega2(index)=omega(1);
    omega3(index)=omega(2);
    alpha2(index)=alpha(1);
    alpha3(index)=alpha(2);
    index=index+1;
end
%绘制图形
figure('Name','位置变化曲线')
plot(phi1,phi2,'b--')
hold on 
plot(phi1,phi3,'r')
set(get(gca, 'Title'), 'String', '角度变化图');
set(get(gca, 'XLabel'), 'String', '\phi_1  单位:弧度');
set(get(gca, 'YLabel'), 'String', '\phi_2 \phi_3  单位:弧度');
grid on;
figure('Name','速度变化曲线')
plot(phi1,omega2,'b--')
hold on 
plot(phi1,omega3,'r')
set(get(gca, 'Title'), 'String', '角速度变化图');
set(get(gca, 'XLabel'), 'String', '\omega_1  单位:rad/s');
set(get(gca, 'YLabel'), 'String', '\omega_2 \omega_3  单位:rad/s');
grid on;
figure('Name','加速度变化曲线')
plot(phi1,alpha2,'b--')
hold on 
plot(phi1,alpha3,'r')
set(get(gca, 'Title'), 'String', '角加速度变化图');
set(get(gca, 'XLabel'), 'String', '\alpha_1  单位:rad/s');
set(get(gca, 'YLabel'), 'String', '\alpha_2 \alpha_3  单位:rad/s');
grid on;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值