📄 rrpanalysis.m
字号:
function [ phi2,omega2,epsilon2,xC,yC,vCx,vCy,aCx,aCy,Sr,vr,ar ] = RRPAnalysis( l2,xB,yB,vBx,vBy,aBx,aBy,xP,yP,vPx,vPy,aPx,aPy,phi3,omega3,epsilon3,M)
%有两个转动副和一个移动副组成,且内副为转动副
%已知构件2的长度l2,外副B的位置坐标(xB,yB),vB,aB,以及移动副导路参考点上的P点的位置坐标(xp,yp),vp,ap,和滑块3的位置角
%phi3,角速度omega3,角加速度epsilon3,求内副C的(xC,yC),vC,aC,及滑块3上C点相对于导路上参考点P的位移Sr,vr,a
%r
%M当角BCP>0时取1,反之取-1
E=2*((xP-xB).*cos(phi3)+(yP-yB).*sin(phi3));
F=(xP-xB).^2+(yP-yB).^2-l2^2;
Sr=abs(-E+M*sqrt(E.^2-4*F))/2;
xC=xP+Sr.*cos(phi3);
yC=yP+Sr.*sin(phi3);
%cb=[xB-xC,yB-yC];
%cp=[xP-xC,yP-yC]';
%t=cb*cp;
%if(t>0)
% M=1;
%else
% M=-1;
phi2=atan((yC-yB)./(xC-xB));
E1=vPx-vBx-Sr.*omega3.*sin(phi2);
F1=vPy-vBy+Sr.*omega3.*cos(phi3);
omega2=(-E1.*sin(phi3)+F1.*cos(phi3))./(l2.*sin(phi2).*sin(phi3)+l2.*cos(phi2).*cos(phi3));
vr=(-E1.*cos(phi2)+F1.*sin(phi2))./(sin(phi2).*sin(phi3)+cos(phi2).*cos(phi3));
vCx=vBx-l2*omega2.*sin(phi2);
vCy=vBy+l2*omega2.*cos(phi2);
E2=aPx-aBx+l2*omega2.^2.*cos(phi2)-2*omega3.*vr.*sin(phi3)-epsilon3.*Sr.*sin(phi3)-omega3.^2.*Sr.*cos(phi3);
F2=aPy-aBy+l2*omega2.^2.*sin(phi2)+2*omega3.*vr.*cos(phi3)+epsilon3.*Sr.*cos(phi3)-omega3.^2.*Sr.*sin(phi3);
epsilon2=(-E2.*sin(phi3)+F2.*cos(phi3))./(l2*(sin(phi2).*sin(phi3)+cos(phi2).*cos(phi3)));
ar=-(E2.*cos(phi2)+F2.*sin(phi2))./(sin(phi2).*sin(phi3)+cos(phi2).*cos(phi3));
aCx=aBx-omega2.^2.*l2.*cos(phi2)-epsilon2.*l2.*sin(phi2);
aCy=aBy-omega2.^2.*l2.*sin(phi2)+epsilon2.*l2.*cos(phi2);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -