When theta2 makes a complete cycle, I get error message.
古いコメントを表示
clear all
clc
L2 = 10;
L3 = 20;
theta2 = 0:pi/18:2*pi;
% theta2 = pi/12;
omega2 = 1.6;
theta3 = (2 * pi) + asin((-L2/L3)* sin(theta2))
L1 = L2 * cos(theta2) + L3 * cos(theta3);
C = [L2*sin(theta2)*omega2;-L2*cos(theta2)*omega2]
D = [-L3*sin(theta3) -1 ;L3*cos(theta3) 0]
B = inv(D) * C
plot(theta2,theta3)
grid on
xlabel('theta2(degrees)')
ylabel('theta3(degrees)')
title('crank angle(theta2) vs link 3 angle(theta3)')
figure
plot(theta2,L1)
grid on
xlabel('theta2(degrees)')
ylabel('L1(m)')
title('crank angle(theta2) vs link 1 angle(L1)')
3 件のコメント
Ben Rancici
2017 年 2 月 3 日
編集済み: Ben Rancici
2017 年 2 月 3 日
What is the real question here? Are you asking for the community to help you debugging your script? If so, why don't you share with us the error message you get?
KSSV
2017 年 2 月 3 日
Your D is not a square matrix, that's why error popped.
Ben Rancici
2017 年 2 月 3 日
Indeed, if theta2 is a vector, then D is not square and cannot be inverted.
採用された回答
その他の回答 (1 件)
Walter Roberson
2017 年 2 月 3 日
When theta2 has a complete cycle from 0 to 2*Pi, then the sin and cos entries go from [0 1] at the beginning, through a bunch of different possibilities and return to [0 1] at the end. Those lead to the entries in D being the same for the first and last element. Duplicate rows in a matrix to be inverted guarantee that the matrix is singular.
You need to end your theta2 just before it completes a cycle to 2*Pi. For example,
theta2 = 0:pi/18:2*pi;
theta2(end) = [];
カテゴリ
ヘルプ センター および File Exchange で Array Geometries and Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!