ode


The ode class is an object that will contain all the information to solve a differential equation. This can be the equation of the dynamics, initial condition, or the solution method itself. This class is necessary in order to generalize the optimal control methods used in other packages.

Example


Let’s see an example of using class ode. For this we will solve a simple example.

Y = sym('y',[2 1]);
U = sym('u',[2 1]);

with these two variables, we can define the equation of the dynamics of the following form

F = [ sin(Y(1)*Y(2)) +    (Y(1)*Y(2)) + U(1)   ; ...
         Y(2)        + cos(Y(1)*Y(2)) + U(2) ] ;
%
dynamics = ode(F,Y,U);
dynamics.Condition = [1,-1];
dynamics
Error using ode (line 212)
The value of 'DynamicEquation' is invalid. The Dynamic Equation must be function handle.For Example:
          DynamicEquation = @(t,Y,U,Params) A*Y + B*U + t

Error in tpe25ae5f3_9560_4180_a9c5_2f798e3cce54 (line 20)
dynamics = ode(F,Y,U);

You can solve the equations with a single sentence

solve(dynamics)
resume(dynamics)
plot(dynamics)

Properties


StateVector

MATLAB Structure that contain the two properties

  • Symbolic - Symbolic Vector State [y1 y2 ...]
  • Numeric - Numeric solution of the equation. The numeric property only is aviable if previus solve the equation.

Type Default
Struct none

Control

MATLAB Structure that contain the two properties

  • Symbolic - Symbolic Vector State [u1 u2 ...]
  • Numeric - matrix Numeric control to solve the equation. $$\dot{Y} = f(t,\dot{Y},U)$$

Type Default
Struct none

DynamicEquation

MATLAB Structure that contain the two properties

  • Symbolic - symbolic function of dynamics equation
  • Numeric - function_handle of dynamics equation.

Type Default
Struct none

Params

Initial State or Final State dependent of property Type

Type Default
double [0 0 0 ...]

Derivatives

Initial State or Final State dependent of property Type

Type Default
double [0 0 0 ...]

InitialCondition

Initial State or Final State dependent of property Type

Type Default
double [0 0 0 ...]

FinalTime

Time final of simulation

Type Default
double 1

Nt

Time interval of plots. ATTENTION - the solution of ode is obtain by ode45, with adatative step

Type Default
double none

MassMatrix

Initial State or Final State dependent of property Type

Type Default
double [0 0 0 ...]

label

Initial State or Final State dependent of property Type

Type Default
double [0 0 0 ...]

Solver

Initial State or Final State dependent of property Type

Type Default
double [0 0 0 ...]

SolverParameters

Initial State or Final State dependent of property Type

Type Default
double [0 0 0 ...]

FixedNt

Type Default

A

A matrix of lineal problems. If this property is empty, so the ode is not lineal. $$ \dot{Y} = \textbf{A}Y + BU $$

Type Default
double none

B

B matrix of lineal problems. If this property is empty, so the ode is not lineal. $$ \dot{Y} = AY + \textbf{B}U $$

Type Default
double none

C

B matrix of lineal problems. If this property is empty, so the ode is not lineal. $$ \dot{Y} = AY + \textbf{B}U $$

Type Default
double none

lineal

This indicator represent the lineal or non-lineal.

Type Default
logical false

symt

Represent the symbolic time

Type Default
Symbolic t

tspan

Time grid to plot the solution, and interpolate the control

Type Default
double none

ControlDimension

Dimension of Control Vector

Type Default
double none

StateDimension

Type Default

dt

Type Default

Methods


ode

It is a constructor of the class 'ode', which allows to create an object compatible with all the functionalities of Dycon Toolbox. Example - ```matlab Y = sym('y',[1 2]) _n U = sym('u',[1 2]) F = @()Y + U; iode = ode(F,Y,U); ```

Optional Input Parameters

Name Description class
DynamicEquation Function Handle that give a double with dimension of StateVEctor return the values of the dynamics. function_handle
StateVector Symbolic State Vector. This can be every simbolical vector. sym
Control Symbolic Control Vector. This can be every symbolical vector, but must be different from sym of VectorState Symbolic
A Matrix dynamics. Creating linear problems through this input will make the symbolic calculations faster, in addition to having access to the solver @euleri. matrix
B simbolic expresion matrix
InitialControl matrix double

Optional Input Parameters

Name Description class
obj object ode ode

eulere

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

euleri

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

GetSymbolicalDerivativeControl

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

GetSymbolicalDerivativeState

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

GetSymbolicalDynamics

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

GetSymCrossDerivatives

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

ode113

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

ode23

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

ode23tb

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

ode45

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

plot

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

plotT

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

resume

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

rk4

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double

solve

The ode class, if only de organization of ode. The solve of this class is the RK family.

Optional Input Parameters

Name Description class
DynamicEquation simbolic expresion Symbolic
StateVector StateVector Symbolic
Control simbolic expresion Symbolic
A simbolic expresion matrix
B simbolic expresion matrix
InitialControl matrix double