Solve the following simultaneous set of nonlinear trigonometric equations:

조회 수: 1 (최근 30일)
I want to solve the given 12 equations for finding the joint angles of a manipulator. Is there anyway in matlab to solve them? Here are the equations and code:
syms c1 c2 c3 c4 c5 c6 s1 s2 s3 s4 s5 s6 d2 d3 d6 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12
e1=c1*[c2*(c4*c5*c6 - s4*s6) -s2*s5*c6] - s1*(s4*c5*c6 + c4*s6) == 0
e2=s1*[c2*(c4*c5*c6 - s4*s6) - s2*s5*c6] + c1*(s4*c5*c6 + c4*s6) == 0
e3=-s2*(c4*c5*c6- s4*s6)- c2*s5*c6 == 1
e4=c1*[-c2*(c4*c5*s6 + s4*c6) + s2*s5*s6] - s1*(-s4*c5*s6 + c4*c6) == 1
e5=s1*[-c2*(c4*c5*s6 + s4*c6) + s2*s5*s6] + c1*(-s4*c5*s6 + c4*c6) == 0
e6=s2*(c4*c5*s6 + s4*c6) + c2*s5*s6 == 0
e7=c1*(c2*c4*s5 + s2*c5) - s1*s4*s5 == 0
e8=s1*(c2*c4*s5 + s2*c5) + c1*s4*s5 == 1
e9=-s2*c4*s5 + c2*c5 == 0
e10=c1*s2*d3 - s1*0154 + .263*(c1*c2*c4*s5 + c1*c5*s2 -s1*s4*s5) == -0.154
e11=s1*s2*d3 + c1*0.154 + .263*(c1*s4*s5 + c2*c4*s1*s5 + c5*s1*s2) == 0.763
e12=c2*d3 + .263*(c2*c5 - c4*s2*s5) == 0
d6==.253
d2==0.154
I tried using solve functions like this:
sol = solve([e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12], [c1, c2, c3, c4, c5, c6, s1, s2, s3, s4, s5, s6, d3]);
But it does not work.
How can I find the values of c1,s1......?
Thank you.
  댓글 수: 4
David Hill
David Hill 2021년 3월 4일
Pick a solution you want (1 of 28);

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2021년 3월 4일
c1 = 0, c2 = 0, c4 = 0, c5 = -1000, c6 = 0, d3 = -500, s1 = 1/1000, s2 = -1, s4 = -1/s6, s5 = 0, s6 = s6
c1 = 0, c2 = 0, c4 = 0, c5 = -1000, c6 = 0, d3 = -500, s1 = 1/1000, s2 = -1, s4 = -1/s6, s5 = 0, s6 = s6
c1 = 0, c2 = 0, c4 = 0, c5 = 1000, c6 = 0, d3 = 500, s1 = 1/1000, s2 = 1, s4 = 1/s6, s5 = 0, s6 = s6
c1 = 0, c2 = 0, c4 = 0, c5 = 1000, c6 = 0, d3 = 500, s1 = 1/1000, s2 = 1, s4 = 1/s6, s5 = 0, s6 = s6
c1 = 250/77, c2 = -1, c4 = -5929000/62500005929, c5 = 0, c6 = 1, d3 = 0, s1 = 1/1000, s2 = 0, s4 = 19250000000/62500005929, s5 = 1, s6 = 0
c1 = 250/77, c2 = -1, c4 = -5929000/62500005929, c5 = 0, c6 = 1, d3 = 0, s1 = 1/1000, s2 = 0, s4 = 19250000000/62500005929, s5 = 1, s6 = 0
c1 = 250/77, c2 = -1, c4 = 5929000/62500005929, c5 = 0, c6 = -1, d3 = 0, s1 = 1/1000, s2 = 0, s4 = -19250000000/62500005929, s5 = -1, s6 = 0
c1 = 250/77, c2 = -1, c4 = 5929000/62500005929, c5 = 0, c6 = -1, d3 = 0, s1 = 1/1000, s2 = 0, s4 = -19250000000/62500005929, s5 = -1, s6 = 0
c1 = 250/77, c2 = 0, c4 = 0, c5 = 0, c6 = 0, d3 = -5929/125000*s6, s1 = 0, s2 = 1/s6, s4 = 1, s5 = 77/250, s6 = s6
c1 = 250/77, c2 = 0, c4 = 0, c5 = 0, c6 = 0, d3 = -5929/125000*s6, s1 = 0, s2 = 1/s6, s4 = 1, s5 = 77/250, s6 = s6
c1 = 250/77, c2 = 0, c4 = 0, c5 = 0, c6 = 0, d3 = 5929/125000*s6, s1 = 0, s2 = -1/s6, s4 = -1, s5 = -77/250, s6 = s6
c1 = 250/77, c2 = 0, c4 = 0, c5 = 0, c6 = 0, d3 = 5929/125000*s6, s1 = 0, s2 = -1/s6, s4 = -1, s5 = -77/250, s6 = s6
c1 = 250/77, c2 = 1, c4 = -5929000/62500005929, c5 = 0, c6 = 1, d3 = 0, s1 = 1/1000, s2 = 0, s4 = -19250000000/62500005929, s5 = -1, s6 = 0
c1 = 250/77, c2 = 1, c4 = -5929000/62500005929, c5 = 0, c6 = 1, d3 = 0, s1 = 1/1000, s2 = 0, s4 = -19250000000/62500005929, s5 = -1, s6 = 0
c1 = 250/77, c2 = 1, c4 = 5929000/62500005929, c5 = 0, c6 = -1, d3 = 0, s1 = 1/1000, s2 = 0, s4 = 19250000000/62500005929, s5 = 1, s6 = 0
c1 = 250/77, c2 = 1, c4 = 5929000/62500005929, c5 = 0, c6 = -1, d3 = 0, s1 = 1/1000, s2 = 0, s4 = 19250000000/62500005929, s5 = 1, s6 = 0
c1 = 125/77-1/77*(-5929000*s1^2+5929*s1+15625)^(1/2), c2 = 0, c4 = 0, c5 = -5929* s1/(5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)-5929*s1-31250), c6 = 0, d3 = 1/500*(125+(-5929000*s1^2+5929*s1+15625)^(1/2))/s1, s1 = s1, s2 = 1, s4 = -1, s5 = (9625-77*(-5929000*s1^2+5929*s1+15625)^(1/2))/(5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)-5929*s1-31250), s6 = -1
c1 = 125/77-1/77*(-5929000*s1^2+5929*s1+15625)^(1/2), c2 = 0, c4 = 0, c5 = -5929*s1/(5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)-5929*s1-31250), c6 = 0, d3 = 1/500*(125+(-5929000*s1^2+5929*s1+15625)^(1/2))/s1, s1 = s1, s2 = 1, s4 = 1, s5 = (-9625+77*(-5929000*s1^2+5929*s1+15625)^(1/2))/(5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)-5929*s1-31250), s6 = 1
c1 = 125/77-1/77*(-5929000*s1^2+5929*s1+15625)^(1/2), c2 = 0, c4 = 0, c5 = 5929*s1/(5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)-5929*s1-31250), c6 = 0, d3 = 1/500*(-125-(-5929000*s1^2+5929*s1+15625)^(1/2))/s1, s1 = s1, s2 = -1, s4 = -1, s5 = (9625-77*(-5929000*s1^2+5929*s1+15625)^(1/2))/(5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)-5929*s1-31250), s6 = 1
c1 = 125/77-1/77*(-5929000*s1^2+5929*s1+15625)^(1/2), c2 = 0, c4 = 0, c5 = 5929*s1/(5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)-5929*s1-31250), c6 = 0, d3 = 1/500*(-125-(-5929000*s1^2+5929*s1+15625)^(1/2))/s1, s1 = s1, s2 = -1, s4 = 1, s5 = (-9625+77*(-5929000*s1^2+5929*s1+15625)^(1/2))/(5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)-5929*s1-31250), s6 = -1
c1 = 125/77+1/77*(-5929000*s1^2+5929*s1+15625)^(1/2), c2 = 0, c4 = 0, c5 = -5929*s1/(-5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)+5929*s1+31250), c6 = 0, d3 = 1/500*(-125+(-5929000*s1^2+5929*s1+15625)^(1/2))/s1, s1 = s1, s2 = -1, s4 = -1, s5 = (-9625-77*(-5929000*s1^2+5929*s1+15625)^(1/2))/(-5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)+5929*s1+31250), s6 = 1
c1 = 125/77+1/77*(-5929000*s1^2+5929*s1+15625)^(1/2), c2 = 0, c4 = 0, c5 = -5929*s1/(-5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)+5929*s1+31250), c6 = 0, d3 = 1/500*(-125+(-5929000*s1^2+5929*s1+15625)^(1/2))/s1, s1 = s1, s2 = -1, s4 = 1, s5 = (9625+77*(-5929000*s1^2+5929*s1+15625)^(1/2))/(-5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)+5929*s1+31250), s6 = -1
c1 = 125/77+1/77*(-5929000*s1^2+5929*s1+15625)^(1/2), c2 = 0, c4 = 0, c5 = 5929*s1/(-5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)+5929*s1+31250), c6 = 0, d3 = 1/500*(125-(-5929000*s1^2+5929*s1+15625)^(1/2))/s1, s1 = s1, s2 = 1, s4 = -1, s5 = (-9625-77*(-5929000*s1^2+5929*s1+15625)^(1/2))/(-5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)+5929*s1+31250), s6 = -1
c1 = 125/77+1/77*(-5929000*s1^2+5929*s1+15625)^(1/2), c2 = 0, c4 = 0, c5 = 5929*s1/(-5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)+5929*s1+31250), c6 = 0, d3 = 1/500*(125-(-5929000*s1^2+5929*s1+15625)^(1/2))/s1, s1 = s1, s2 = 1, s4 = 1, s5 = (9625+77*(-5929000*s1^2+5929*s1+15625)^(1/2))/(-5923071*s1^2+250*(-5929000*s1^2+5929*s1+15625)^(1/2)+5929*s1+31250), s6 = 1
  댓글 수: 15
Walter Roberson
Walter Roberson 2021년 3월 5일
syms c1 c2 c3 c4 c5 c6 s1 s2 s3 s4 s5 s6 d2 d3 d6 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12
e1=c1*[c2*(c4*c5*c6 - s4*s6) -s2*s5*c6] - s1*(s4*c5*c6 + c4*s6) == 0;
e2=s1*[c2*(c4*c5*c6 - s4*s6) - s2*s5*c6] + c1*(s4*c5*c6 + c4*s6) == 0;
e3=-s2*(c4*c5*c6- s4*s6)- c2*s5*c6 == 1;
e4=c1*[-c2*(c4*c5*s6 + s4*c6) + s2*s5*s6] - s1*(-s4*c5*s6 + c4*c6) == 1;
e5=s1*[-c2*(c4*c5*s6 + s4*c6) + s2*s5*s6] + c1*(-s4*c5*s6 + c4*c6) == 0;
e6=s2*(c4*c5*s6 + s4*c6) + c2*s5*s6 == 0;
e7=c1*(c2*c4*s5 + s2*c5) - s1*s4*s5 == 0;
e8=s1*(c2*c4*s5 + s2*c5) + c1*s4*s5 == 1;
e9=-s2*c4*s5 + c2*c5 == 0;
e10=c1*s2*d3 - s1*0154 + .263*(c1*c2*c4*s5 + c1*c5*s2 -s1*s4*s5) == -0.154;
e11=s1*s2*d3 + c1*0.154 + .263*(c1*s4*s5 + c2*c4*s1*s5 + c5*s1*s2) == 0.763;
e12=c2*d3 + .263*(c2*c5 - c4*s2*s5) == 0;
%d6==.253;
%d2==0.154;
sol = solve([e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12], [c1, c2, c3, c4, c5, c6, s1, s2, s3, s4, s5, s6, d3]);
sols = array2table(double([sol.c1, sol.c2, sol.c3, sol.c4, sol.c5, sol.c6, sol.s1, sol.s2, sol.s3, sol.s4, sol.s5, sol.s6, sol.d3]), 'VariableNames', string([c1, c2, c3, c4, c5, c6, s1, s2, s3, s4, s5, s6, d3]))
sols = 28x13 table
c1 c2 c3 c4 c5 c6 s1 s2 s3 s4 s5 s6 d3 ______ __ __ ___________ ___________ __ _____ _________ __ ______ ______ _______ _________ 3.2468 0 0 0 0 0 0 1 0 -1 -0.308 -1 -0.047432 3.2468 0 0 0 0 0 0 1 0 1 0.308 1 -0.047432 3.2468 0 0 0 0 0 0 -1 0 1 0.308 -1 0.047432 3.2468 0 0 0 0 0 0 -1 0 -1 -0.308 1 0.047432 0 0 0 0 1000 0 0.001 1 0 1 0 1 500 3.2468 0 0 0 0 0 0 -0.047432 0 1 0.308 -21.083 1 3.2468 0 0 0 0 0 0 -0.047432 0 -1 -0.308 21.083 1 3.2468 -1 0 9.4864e-05 0 -1 0.001 0 0 -0.308 -1 0 0 3.2468 1 0 -9.4864e-05 0 1 0.001 0 0 -0.308 -1 0 0 3.2468 1 0 9.4864e-05 0 -1 0.001 0 0 0.308 1 0 0 3.2468 -1 0 -9.4864e-05 0 1 0.001 0 0 0.308 1 0 0 3.2468 0 0 0 9.4864e-05 0 0.001 1 0 -1 -0.308 -1 0 3.2468 0 0 0 -9.4864e-05 0 0.001 -1 0 1 0.308 -1 0 3.2468 0 0 0 -9.4864e-05 0 0.001 -1 0 -1 -0.308 1 0 3.2468 0 0 0 9.4864e-05 0 0.001 1 0 1 0.308 1 0 0 0 0 0 -1000 0 0.001 -1 0 -1 0 1 -500
Robert
Robert 2021년 3월 5일
Thank you very much for your help. I really appreciate it.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Equation Solving에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by