Error using sym/coeffs. First argument must be a scalar.
조회 수: 4 (최근 30일)
이전 댓글 표시
syms q1(t) q2(t) q3(t) q4(t) q5(t) q6(t) q1_hiz(t) q2_hiz(t) q3_hiz(t) q4_hiz(t) q5_hiz(t) q6_hiz(t) q1_ivme(t) q2_ivme(t) q3_ivme(t) q4_ivme(t) q5_ivme(t) q6_ivme(t) t
After various transactions, i get for example that equation:
VG1_O =
-0.4250*cos(q1(t))*q1_hiz(t)
-0.4250*sin(q1(t))*q1_hiz(t)
0
When i take the coefficients of that matrix as q2_hiz(t); it is expected that solution will be 0 however the solution is like this:
ff=coeffs(VG1_O(1,1),[q2_hiz(t)]);
ff=
-0.4250*cos(q1(t))*q1_hiz(t)
How can i solve this problem?
댓글 수: 0
채택된 답변
Torsten
2023년 1월 12일
편집: Torsten
2023년 1월 12일
My guess is that VG1_0(1,1) is interpreted as a polynomial in the variable q2_hiz(t).
Since your expression does not contain q2_hiz(t), -0.4250*cos(q1(t))*q1_hiz(t) is the constant term of the polynomial
-0.4250*cos(q1(t))*q1_hiz(t) + 0*q2_hiz(t) + 0*q2_hiz(t)^2 + ...
and is thus returned by "coeffs".
댓글 수: 5
Torsten
2023년 1월 12일
That's what the diff command does - if a variable does not appear in an expression, the derivative with respect to this variable is 0. And if you want the coefficient of q1_hiz(t), the command will give you -0.4250*cos(q1(t)).
syms t q1(t) q1_hiz(t) q2_hiz(t) q3_hiz(t)
expr = -0.4250*cos(q1(t))*q1_hiz(t);
ff1 = diff(expr,q1_hiz(t))
ff2 = diff(expr,q2_hiz(t))
ff3 = diff(expr,q3_hiz(t))
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Assumptions에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!