Using fsolve in simulink with a different equation each time
조회 수: 1 (최근 30일)
이전 댓글 표시
I have created this matlab scribt which solves the non-linear equation F with a given value of a. I would like to do the same in simulink. To solve the equation F for a given value of a. I have tried to use a interpreted matlab function but i can only change the initial guess not a value which is in the equation. Is it possible to do something similar in simulink?
function y = solve_theta_Be_to_theta_c(a)
y = fsolve(@(x)Function(x,a),[1]);
end
function F = Function(x,a)
l_1 = 75;
l_2 = 105;
l_3 = 450;
l_4x = 450;
l_4y = 110;
F = (l_4x + l_1 * cos(x) - l_3 * cos(a))^2 + (l_4y + l_3 * sin(a) - l_1 * sin(x))^2 - l_2^2;
end
댓글 수: 0
채택된 답변
Davide Masiello
2022년 10월 3일
In Simulink, you can keep a as a generic parameter
syms x a
eqn = (450 + 75 * cos(x) - 450 * cos(a))^2 + (110 + 450 * sin(a) - 75* sin(x))^2 - 105^2 == 0;
S = solve(eqn)
Now that you have the solution, just give a a specific value and you get your answer
for a = 1:4
fprintf('--------------------------------------------------------------------------------\n')
fprintf('Solution for a = %d\n',a)
subs(S)
end
댓글 수: 2
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 General Applications에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!