Difference between revisions of "Lotka Volterra fishing problem (JModelica)"

From mintOC
Jump to: navigation, search
(Created page with "This page contains the model formulation of the MIOCP Lotka Volterra fishing problem in JModelica format. == JModelica == The model for compilation with JModelica. <source...")
 
Line 39: Line 39:
 
x1(0)=0.7;
 
x1(0)=0.7;
 
   end lotka;
 
   end lotka;
 
  
 +
</source>
  
  
 +
The run file.
 +
 +
<source lang="python">
 +
#Import the function for transfering a model to CasADiInterface
 +
from pyjmi import transfer_optimization_problem
 +
 +
op=transfer_optimization_problem("lotka", "lotka.mop")
 +
 +
res=op.optimize()
  
 
</source>
 
</source>
  
 
[[Category:JModelica]]
 
[[Category:JModelica]]

Revision as of 11:17, 18 January 2016

This page contains the model formulation of the MIOCP Lotka Volterra fishing problem in JModelica format.


JModelica

The model for compilation with JModelica.

//--------------------------------------------------------------------
//Lotka Volterra Fishing Problem
// (c) Madeleine Schroeter
//--------------------------------------------------------------------
 
 
  optimization lotka(objective = cost(finalTime), startTime = 0, finalTime = 12)
    "Steady State Solution with u=0"
 
 
    Real cost(start=0, min=0, max=25) "Integrated Deviation";
 
    // Differential state variables
    Real x0(min=0, max=20.0) "Biomass of Prey";
    Real x1(min=0, max=20.0) "Biomass of Predator";
 
    // Control functions
    input Real u(free=true, min=0,max=1);
 
    constant Real ref0 = 1.0 "Steady State Prey";
    constant Real ref1 = 1.0 "Steady State Predator";
 
 
  equation
    der(x0) =  x0 - x0*x1 - 0.4*x0*u;
    der(x1) = -x1 + x0*x1 - 0.2*x1*u;
    der(cost) = (x0 - ref0)*(x0 - ref0) + (x1 - ref1)*(x1 - ref1); // Quadratic deviation
 
  constraint
 	x0(0)=0.5;
	x1(0)=0.7;
  end lotka;


The run file.

#Import the function for transfering a model to CasADiInterface
from pyjmi import transfer_optimization_problem
 
op=transfer_optimization_problem("lotka", "lotka.mop")
 
res=op.optimize()