|
%实现连架杆角位移(3组)的连杆机构运动设计
%已知条件
f0=0;p0=0;%连架杆初始位置角
[f]=[35 80 125]*pi/180;%曲柄输入角(弧度)
[p]=[50 75 105]*pi/180;%摇杆输出角(弧度)
%杆件相对长度参数R1、R2和R3的系数矩阵
a1=[1-cos(f(1)+f0) cos(p(1)+p0)];
a2=[1-cos(f(2)+f0) cos(p(2)+p0)];
a3=[1-cos(f(3)+f0) cos(p(3)+p0)];
a=[a1;a2;a3];
%线性方程组右边的常数矩阵
b1=(cos(f(1)-p(1))+(f0+p0));
b2=(cos(f(2)-p(2))+(f0+p0));
b3=(cos(f(3)-p(3))+(f0+p0));
b=[b1 b2 b3]';
%采用求逆函数inv求出线性方程组aR=b的解(或采用矩阵除法R=a\b)
R=inv(a)*b;
%杆件长度
d=300;%机架的长度(已知数据)
x(1)=d/R(3);
x(3)=d/R(2);
x(2)=sqrt(x(1)^2+x(3)^2+d^2-2*x(1)*x(3)/R(1));
%检验解的精度(采用求解矩阵或向量范数的函数norm)
en=norm(a*R-b);
disp ' ************* 计算结果 ************'
fprintf(1,' 曲柄长度 a=%3.4f mm \n',x(1))
fprintf(1,' 连杆长度 b=%3.4f mm \n',x(2))
fprintf(1,' 摇杆长度 c=%3.4f mm \n',x(3))
fprintf(1,' 机架长度 d=%3.4f mm \n',d)
disp ' '
fprintf(1,' 数值解的精度 en=%3.4e \n',en)
错误使用 inv
矩阵必须为方阵。
|
|