机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3132|回复: 2

错误使用 inv 矩阵必须为方阵。这个错误谁知道

[复制链接]
发表于 2018-9-15 20:28:11 | 显示全部楼层 |阅读模式
%实现连架杆角位移(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
矩阵必须为方阵。

回复

使用道具 举报

发表于 2018-9-16 09:26:38 | 显示全部楼层
表示没看明白,LZ先给普及下知识呗
回复 支持 反对

使用道具 举报

发表于 2018-9-16 12:43:24 | 显示全部楼层
matlab程序?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-17 12:48 , Processed in 0.049309 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表