I need to pass different values of (theta_r) into F(1) and F(2) to get different values of x(1) and x(2).
i use this code, but it shows me many errors.
clear all;
%defining the parameters.
global R L3 L4 L5 theta_r
R=80; L5=360; L4=360; L3=120; n=2; m=100*n;
theta_r=linspace(0,2*pi*n,m);
function F = value(x,theta_r)
F(1)=R*sin(theta_r)+L3*sin(x(1))-L5*sin(x(2));
F(2)= R*cos(theta_r)+L3*cos(x(1))-L5*cos(x(2))-L4;
end
for b = 1:numl(theta_r)
x(b,:)=fsolve(@(x)value(x,theta_r(b),[1,0]));
end

1 件のコメント

Luqman Alabri
Luqman Alabri 2021 年 5 月 20 日
How can I fix this?

サインインしてコメントする。

 採用された回答

Jan
Jan 2021 年 5 月 20 日
編集済み: Jan 2021 年 5 月 21 日

0 投票

global R L3 L4 L5
R=80; L5=360; L4=360; L3=120; n=2; m=100*n;
theta_r=linspace(0,2*pi*n,m);
for b = 1:numel(theta_r) % fixed: "numl"
x(b,:) = fsolve(@(x) value(x, theta_r(b)), [1,0]);
end
function F = value(x,theta_r)
global R L3 L4 L5
F(1)=R*sin(theta_r)+L3*sin(x(1))-L5*sin(x(2));
F(2)= R*cos(theta_r)+L3*cos(x(1))-L5*cos(x(2))-L4;
end

5 件のコメント

Luqman Alabri
Luqman Alabri 2021 年 5 月 20 日
Thank you so much.
Luqman Alabri
Luqman Alabri 2021 年 5 月 21 日
Hello Jan,
How to make sure that the angles x(1) and x(2) were mesured from the positive x axis, because when I plot input versus output there were some incorrect values of x(1) and x(2).
like this:
Torsten
Torsten 2021 年 5 月 21 日
You could try
initial = [1,0];
for b=1:numel(theta_r)
x(b,:) = fsolve(@(x) value(x,theta_r(b),initial);
initial = x(b,:);
end
Jan
Jan 2021 年 5 月 21 日
@Torsten: A good idea.
Luqman Alabri
Luqman Alabri 2021 年 5 月 21 日
Thank you all.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2021 年 5 月 20 日

コメント済み:

2021 年 5 月 21 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by