Home > matlab > acado > packages > +acado > @Process > Process.m

Process

PURPOSE ^

The class Process is one of the two main building-blocks within the SimulationEnvironment and complements the Controller.

SYNOPSIS ^

This is a script file.

DESCRIPTION ^

The class Process is one of the two main building-blocks within the SimulationEnvironment and complements the Controller. 
 It simulates the process to be controlled based on a dynamic model.

  Usage:
    >> Process(dynamicSystem);
    >> Process(dynamicSystem, integratorType);

  Parameters:
    dynamicSystem      [acado.DynamicSystem]
    integratorType     Integrator for simulation of dynamical system.      [STRING]
                             INT_RK12     
                             Explicit Runge-Kutta integrator of order 1/2
 
                             INT_RK23     
                             Explicit Runge-Kutta integrator of order 2/3
 
                             INT_RK45     
                             Explicit Runge-Kutta integrator of order 4/5
 
                             INT_RK78     
                             Explicit Runge-Kutta integrator of order 7/8
 
                             INT_BDF     
                             Implicit backward differentiation formula integrator. 
              
  Example:
    >> process = acado.Process(dynamicSystem);
    >> process = acado.Process(dynamicSystem, 'INT_RK45');

  See also:
    acado.Process.setProcessDisturbance
    acado.DynamicSystem

  Licence:
    This file is part of ACADO Toolkit  - (http://www.acadotoolkit.org/)

    ACADO Toolkit -- A Toolkit for Automatic Control and Dynamic Optimization.
    Copyright (C) 2008-2009 by Boris Houska and Hans Joachim Ferreau, K.U.Leuven.
    Developed within the Optimization in Engineering Center (OPTEC) under
    supervision of Moritz Diehl. All rights reserved.

    ACADO Toolkit is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 3 of the License, or (at your option) any later version.

    ACADO Toolkit is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with ACADO Toolkit; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

    Author: David Ariens
    Date: 2010

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 %The class Process is one of the two main building-blocks within the SimulationEnvironment and complements the Controller.
0002 % It simulates the process to be controlled based on a dynamic model.
0003 %
0004 %  Usage:
0005 %    >> Process(dynamicSystem);
0006 %    >> Process(dynamicSystem, integratorType);
0007 %
0008 %  Parameters:
0009 %    dynamicSystem      [acado.DynamicSystem]
0010 %    integratorType     Integrator for simulation of dynamical system.      [STRING]
0011 %                             INT_RK12
0012 %                             Explicit Runge-Kutta integrator of order 1/2
0013 %
0014 %                             INT_RK23
0015 %                             Explicit Runge-Kutta integrator of order 2/3
0016 %
0017 %                             INT_RK45
0018 %                             Explicit Runge-Kutta integrator of order 4/5
0019 %
0020 %                             INT_RK78
0021 %                             Explicit Runge-Kutta integrator of order 7/8
0022 %
0023 %                             INT_BDF
0024 %                             Implicit backward differentiation formula integrator.
0025 %
0026 %  Example:
0027 %    >> process = acado.Process(dynamicSystem);
0028 %    >> process = acado.Process(dynamicSystem, 'INT_RK45');
0029 %
0030 %  See also:
0031 %    acado.Process.setProcessDisturbance
0032 %    acado.DynamicSystem
0033 %
0034 %  Licence:
0035 %    This file is part of ACADO Toolkit  - (http://www.acadotoolkit.org/)
0036 %
0037 %    ACADO Toolkit -- A Toolkit for Automatic Control and Dynamic Optimization.
0038 %    Copyright (C) 2008-2009 by Boris Houska and Hans Joachim Ferreau, K.U.Leuven.
0039 %    Developed within the Optimization in Engineering Center (OPTEC) under
0040 %    supervision of Moritz Diehl. All rights reserved.
0041 %
0042 %    ACADO Toolkit is free software; you can redistribute it and/or
0043 %    modify it under the terms of the GNU Lesser General Public
0044 %    License as published by the Free Software Foundation; either
0045 %    version 3 of the License, or (at your option) any later version.
0046 %
0047 %    ACADO Toolkit is distributed in the hope that it will be useful,
0048 %    but WITHOUT ANY WARRANTY; without even the implied warranty of
0049 %    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0050 %    Lesser General Public License for more details.
0051 %
0052 %    You should have received a copy of the GNU Lesser General Public
0053 %    License along with ACADO Toolkit; if not, write to the Free Software
0054 %    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0055 %
0056 %    Author: David Ariens
0057 %    Date: 2010
0058 %
0059 classdef Process < acado.SimulationBlock    
0060     properties(SetAccess='private')
0061         integratorType;
0062         dynamicSystem;
0063         disturbance = [];
0064         name = 'process';
0065     end
0066     
0067     methods
0068         function obj = Process(varargin)
0069            
0070             global ACADO_;
0071             ACADO_.count_other = ACADO_.count_other+1;
0072             obj.name = strcat(obj.name, num2str(ACADO_.count_other));
0073             
0074             if (nargin == 1 && isa(varargin{1}, 'acado.DynamicSystem'))
0075                
0076                 obj.dynamicSystem = varargin{1};
0077                 obj.integratorType = 'INT_UNKNOWN';
0078             
0079             elseif(nargin == 2 && isa(varargin{1}, 'acado.DynamicSystem'))
0080                 
0081                 obj.dynamicSystem = varargin{1};
0082                 obj.integratorType = varargin{2};
0083                 
0084             else
0085                 
0086                 error('ERROR: Invalid Process call. <a href="matlab: help acado.Process">help acado.Process</a>');
0087                 
0088             end
0089             
0090             ACADO_.helper.addInstruction(obj);
0091             
0092         end
0093         
0094         setProcessDisturbance(obj, varargin)
0095         getInstructions(obj, cppobj, get)
0096         
0097     end
0098     
0099 end
0100 
0101 
0102

www.acadotoolkit.org/matlab
Generated on Tue 01-Jun-2010 20:14:12 by m2html © 2005