


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


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