필터 지우기
필터 지우기

Solving a PDE symbolically

조회 수: 36 (최근 30일)
richard
richard 2022년 10월 18일
댓글: richard 2022년 10월 19일
Greetings! Background: I'm studying "Interconnection and damping assignmemnt passivity based control" (abbreviated as "IDA-PBC"). The general challenge is to solve the matching equations. I am using symbollic math to enter systems of differential equations.
Example: I have a system of differential equations with two state variables like so (this is only an example from my head, just to illustrate what I'm trying to do):
x1_prime = x2 + u*x1 + dH/dx1 <--- dH/dx1 is the partial deriv of H wrt x1
x2_prime = x1 + dH/dx2 <--- dH/dx2 is the partial deriv of H wrt x2
H is the energy function that I'm trying to find
--> I know the partial derivatives of the function H, but I don't know what H itself is. Is there a matlab function that will help me find H symbollically?

채택된 답변

Torsten
Torsten 2022년 10월 18일
편집: Torsten 2022년 10월 18일
First check whether (dH/dx1,dH/dx2) is conservative.
Then you can reconstruct H by using
H(x1,x2) = H(x10,x20) + integral_{z=x10}^{z=x1} dH/dx1(z,x20) dz + integral_{z=x20}^{z=x2} dH/dx2(x1,z) dz
where H(x10,x20) must be given (thus H must be fixed at a single point).
Following the example under
syms x y x1 y1
dHdx = y*cos(x) + y^2;
dHdy = sin(x)+2*x*y-2*y;
x0 = 0;
y0 = 0;
H0 = 0;
H = H0 + int(subs(dHdx,y,y0),x,x0,x1) + int(subs(dHdy,x,x1),y,y0,y1);
H = subs(H,[x1,y1],[x,y])
H = 
  댓글 수: 3
Torsten
Torsten 2022년 10월 18일
[dH/dx1,dH/dx2] is the vector field of H.
Read my answer more carefully.
richard
richard 2022년 10월 19일
Thank you again Torsten - my previous response shows just how much I need to learn!
--> I certainly APPRECIATE your example code that you gave!

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Boundary Conditions에 대해 자세히 알아보기

태그

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by