Symbolic Toolbox, implicit function as implicit function argument.
조회 수: 12 (최근 30일)
이전 댓글 표시
Hello,
I'm working on small project for my studies - magnetic levitation system.
I wanted to check if my linearization calculations were correct. In order to do that I wanted to use Symbolic Toolbox, therefore I need to define:
- t - time,
- z(t) - position (time-dependant),
- L(z(t)) - inductance of coil, which depends on the position of a levitating object
In following lines I'll try to explain what is incomprehensible to me. I will declare syms objects and validate them with following formula:
I imagine I should write script as follows:
%(1)
syms t
syms z(t)
syms L(z(t))
But it results in error: Invalid variable name.
Next I've written script:
%(2)
syms t
syms z(t)
syms L(z)
diff(L,t)
Script results in t being sym object. After 2nd line z is being defined as symfun object, but 3rd line: syms L(z); overrides z(t) as z, thus at the end of script z is a sym object. Result of the script is 0, therefore it's not a good way to define "my symbols".
After some random coding I've came up with:
%(3)
syms t
syms z(t)
syms L(t)
L = L(z);
diff(L,t)
Result of the (pretty) script is:
d
L'(z(t)) -- z(t)
dt
Which I interpretate as...:
L'(z(t)) = dL(z(t)) / dz(t)
This result is compatible with:
And I assume that code (3) is correct. My question is: why? Is it the only way to define such a function in Symbolic Toolbox? Moreover - is it a correct way?
댓글 수: 0
답변 (1개)
Charan Jadigam
2020년 3월 18일
Hi,
I feel that you need to find chain rule using symbolic variables and it could be done in 2 other ways.
First method,
syms t z(t) L
L=str2sym('l(z(t))');
diff(L,t)
Second method,
syms t z(t) L(z)
L = L(z);
diff(L,t)
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!