Calculating jacobian while using symbolic toolbox

Hello! I can't seem to find the answer to my problem so I figured that I'd ask it myself.
I am trying to calculate the jacobian based on symbolic variables as follows:
syms x(t) y(t) z(t) theta(t) phi(t) L
q = [x, y, z, theta, phi].';
dq = diff(q,t);
p1 = [x, y, z].';
dp1 = diff(p1, t);
p2 = [x + L*cos(theta),
y + L*cos(phi),
z + L*sin(theta) + L*sin(phi)];
dp2 = jacobian(p2, q)*dq;
I want to use it to module a system using Lagrange modelling.
The error message comes as follow:
Error using sym/jacobian (line 44)
Second argument must be a vector of variables.
Error in untitled (line 15)
dp2 = jacobian(p2, q)*dq;
Thanks in advance, Jakob

5 件のコメント

Bjorn Gustavsson
Bjorn Gustavsson 2019 年 9 月 20 日
My (admittedly old) version of jacobian doesn't like the time-variations in the variables x, y, z, theta, phi. Perhaps you can work your way around it by calculating the jacobian for variables not depending on time and then substitute the time-varying ones after that?
Walter Roberson
Walter Roberson 2019 年 9 月 20 日
You cannot (at all easily) differentiate with respect to a function, only with respect to a variable.
Jakob Vinkås
Jakob Vinkås 2019 年 9 月 20 日
Okey, thank you for the answer.
Bjorn Gustavsson
Bjorn Gustavsson 2019 年 9 月 20 日
Also: are you sure about the expression for p2? It seems suspicious to me.
Walter Roberson
Walter Roberson 2019 年 9 月 20 日
In particular if you are working with polar coordinates then you would normally multiply two trig components rather than add them.

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

回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMathematics についてさらに検索

質問済み:

2019 年 9 月 20 日

コメント済み:

2019 年 9 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by