%**********************参数设定*********************
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;