


Allows to setup and evaluate a general function based on SymbolicExpressions.
The class Function allows to setup and evaluate general functions based on SymbolicExpressions.
Usage:
>> Function({x1, x2, ...});
Parameters:
{} Expression as a cell
Example:
>> f = acado.Function({x,u,p});
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 %Allows to setup and evaluate a general function based on SymbolicExpressions. 0002 % The class Function allows to setup and evaluate general functions based on SymbolicExpressions. 0003 % 0004 % Usage: 0005 % >> Function({x1, x2, ...}); 0006 % 0007 % Parameters: 0008 % {} Expression as a cell 0009 % 0010 % 0011 % Example: 0012 % >> f = acado.Function({x,u,p}); 0013 % 0014 % Licence: 0015 % This file is part of ACADO Toolkit - (http://www.acadotoolkit.org/) 0016 % 0017 % ACADO Toolkit -- A Toolkit for Automatic Control and Dynamic Optimization. 0018 % Copyright (C) 2008-2009 by Boris Houska and Hans Joachim Ferreau, K.U.Leuven. 0019 % Developed within the Optimization in Engineering Center (OPTEC) under 0020 % supervision of Moritz Diehl. All rights reserved. 0021 % 0022 % ACADO Toolkit is free software; you can redistribute it and/or 0023 % modify it under the terms of the GNU Lesser General Public 0024 % License as published by the Free Software Foundation; either 0025 % version 3 of the License, or (at your option) any later version. 0026 % 0027 % ACADO Toolkit is distributed in the hope that it will be useful, 0028 % but WITHOUT ANY WARRANTY; without even the implied warranty of 0029 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0030 % Lesser General Public License for more details. 0031 % 0032 % You should have received a copy of the GNU Lesser General Public 0033 % License along with ACADO Toolkit; if not, write to the Free Software 0034 % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 0035 % 0036 % Author: David Ariens 0037 % Date: 2010 0038 % 0039 classdef Function < handle 0040 properties 0041 name = 'f'; 0042 items = {}; 0043 end 0044 0045 methods 0046 function obj = Function(varargin) 0047 % This constuctor is also called by OutputFcn and DifferentialEquation 0048 0049 global ACADO_; 0050 ACADO_.count_function = ACADO_.count_function+1; 0051 obj.name = strcat('acadodata_f', num2str(ACADO_.count_function)); 0052 0053 if (nargin == 1 ) 0054 f = varargin{1}; 0055 0056 for i=1:length(f) 0057 obj.items{i} = f(i); 0058 end 0059 0060 end 0061 0062 ACADO_.helper.addInstruction(obj); %also called by OutputFcn and DifferentialEquation!! 0063 end 0064 0065 getInstructions(obj, cppobj, get) 0066 0067 end 0068 0069 end 0070