Message Boards Message Boards

0
|
6851 Views
|
4 Replies
|
2 Total Likes
View groups...
Share
Share this post:

Solve a 3x3 ODE system?

Posted 5 years ago

Hello, I'm having problems understanding the solution given by Mathematica for an ODE system with 3 equations and 3 unkwnows, initial conditions well specified.

DSolve[{i[t] == Cr vc'[t], 
  vc[t] == vco[t] (1 + m) - Lr i'[t], -(1 + m) i[t] - vco[t]/RL == 
   Co vco'[t] , vc[0] == Vcrmax, i[0] == 0, vco[0] == Vo}, {i[t], 
  vc[t], vco[t]}, t]

The unknowns are i[t], vc[t], vco[t] (yes...it's an electrical system :). The solution given is way too long to be posted here. For example, it includes, in i[t]:

i[t] -> Co Cr RL Vo RootSum[
    Co^2 Cr^2 Lr^2 RL^2 + Co^2 Cr Lr RL^2 #1 + Co Cr^2 Lr RL^2 #1 + 
      2 Co Cr^2 Lr m RL^2 #1 + Co Cr^2 Lr m^2 RL^2 #1 + 
      Cr Lr #1^2 + #1^3 &, (E^((t #1)/(Co Cr Lr RL)) #1)/(
     Co^2 Cr Lr RL^2 + Co Cr^2 Lr RL^2 + 2 Co Cr^2 Lr m RL^2 + 
      Co Cr^2 Lr m^2 RL^2 + 2 Cr Lr #1 + 3 #1^2) &] + ........

What's going on?

POSTED BY: Ermanno Citraro
4 Replies

This can be used as a regular analytical solution, for example

s = DSolve[{i[t] == Cr vc'[t], 
    vc[t] == vco[t] (1 + m) - Lr i'[t], -(1 + m) i[t] - vco[t]/RL == 
     Co vco'[t], vc[0] == Vcrmax, i[0] == 0, vco[0] == Vo}, {i, vc, 
    vco}, t];

{Plot[Evaluate[
   i[t] /. s[[1, 1]] /. {Cr -> 1, Lr -> 1, m -> 1, Co -> 1, RL -> 1, 
     Vcrmax -> 1, Vo -> 1}], {t, 0, 2 Pi}, AxesLabel -> {"t", "i"}], 
 Plot[Evaluate[
   vc[t] /. s[[1, 2]] /. {Cr -> 1, Lr -> 1, m -> 1, Co -> 1, RL -> 1, 
     Vcrmax -> 1, Vo -> 1}], {t, 0, 2 Pi}, AxesLabel -> {"t", "vc"}], 
 Plot[Evaluate[
   vco[t] /. s[[1, 3]] /. {Cr -> 1, Lr -> 1, m -> 1, Co -> 1, RL -> 1,
      Vcrmax -> 1, Vo -> 1}], {t, 0, 2 Pi}, 
  AxesLabel -> {"t", "vco"}]}

Figure 1

Thanks sir.

POSTED BY: Ermanno Citraro

They are algebraic objects that are comlicated, because they involve equations of degree 3. Try with numerical values for the parameters:

With[{Cr = 1, Lr = 1, Co = 1, m = 1, RL = 1, Vcrmax = 1, Vo = 1}, 
  DSolveValue[{i[t] == Cr vc'[t], 
    vc[t] == vco[t] (1 + m) - Lr i'[t], -(1 + m) i[t] - vco[t]/RL == 
     Co vco'[t], vc[0] == Vcrmax, i[0] == 0, vco[0] == Vo}, {i[t], 
    vc[t], vco[t]}, t]] // N
POSTED BY: Gianluca Gorni

Grazie Gianluca.

POSTED BY: Ermanno Citraro
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract