


Adds an Least Square term minimized.
Adds an Least Square term of the form
0.5* sum_i || ( h(t_i,x(t_i),u(t_i),p(t_i),...) - r ) ||^2_S_i
Here the sum is over all grid points of the objective grid. The
Matrix S is assumed to be symmetric and positive (semi-) definite.
The Function r is called reference and can be specified by the user.
Usage:
>> ocp.minimizeLSQ(h)
>> ocp.minimizeLSQ(h, r)
>> ocp.minimizeLSQ(S, h, r)
Parameters:
h the LSQ-Function (1 x n FUNCTION)
S a weighting matrix (n x n MATRIX)
r the reference
-either a 1 x n VECTOR with references for each expression in h
-or a q x (n+1) MATRIX with the first column timepoints and the next
columns references for each expression in h (the difference
being the fact that you can set a time dependant reference)
Example:
>> S = [10 0; 0 1];
>> h = {x1, x2};
>> r = [0.2, 1.4];
>> ocp.minimizeLSQ(S, h, r);
>> r = [0 0.2 1.4;
1 0.4 1.5;
1.5 0.4 1.3];
%time x1 x2
>> ocp.minimizeLSQ(S, h, r);
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 function minimizeLSQ(obj, varargin) 0002 %Adds an Least Square term minimized. 0003 % Adds an Least Square term of the form 0004 % 0.5* sum_i || ( h(t_i,x(t_i),u(t_i),p(t_i),...) - r ) ||^2_S_i 0005 % Here the sum is over all grid points of the objective grid. The 0006 % Matrix S is assumed to be symmetric and positive (semi-) definite. 0007 % The Function r is called reference and can be specified by the user. 0008 % 0009 % Usage: 0010 % >> ocp.minimizeLSQ(h) 0011 % >> ocp.minimizeLSQ(h, r) 0012 % >> ocp.minimizeLSQ(S, h, r) 0013 % 0014 % Parameters: 0015 % h the LSQ-Function (1 x n FUNCTION) 0016 % S a weighting matrix (n x n MATRIX) 0017 % r the reference 0018 % -either a 1 x n VECTOR with references for each expression in h 0019 % -or a q x (n+1) MATRIX with the first column timepoints and the next 0020 % columns references for each expression in h (the difference 0021 % being the fact that you can set a time dependant reference) 0022 % 0023 % Example: 0024 % >> S = [10 0; 0 1]; 0025 % >> h = {x1, x2}; 0026 % >> r = [0.2, 1.4]; 0027 % >> ocp.minimizeLSQ(S, h, r); 0028 % 0029 % >> r = [0 0.2 1.4; 0030 % 1 0.4 1.5; 0031 % 1.5 0.4 1.3]; 0032 % %time x1 x2 0033 % >> ocp.minimizeLSQ(S, h, r); 0034 % 0035 % Licence: 0036 % This file is part of ACADO Toolkit - (http://www.acadotoolkit.org/) 0037 % 0038 % ACADO Toolkit -- A Toolkit for Automatic Control and Dynamic Optimization. 0039 % Copyright (C) 2008-2009 by Boris Houska and Hans Joachim Ferreau, K.U.Leuven. 0040 % Developed within the Optimization in Engineering Center (OPTEC) under 0041 % supervision of Moritz Diehl. All rights reserved. 0042 % 0043 % ACADO Toolkit is free software; you can redistribute it and/or 0044 % modify it under the terms of the GNU Lesser General Public 0045 % License as published by the Free Software Foundation; either 0046 % version 3 of the License, or (at your option) any later version. 0047 % 0048 % ACADO Toolkit is distributed in the hope that it will be useful, 0049 % but WITHOUT ANY WARRANTY; without even the implied warranty of 0050 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0051 % Lesser General Public License for more details. 0052 % 0053 % You should have received a copy of the GNU Lesser General Public 0054 % License along with ACADO Toolkit; if not, write to the Free Software 0055 % Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 0056 % 0057 % Author: David Ariens 0058 % Date: 2010 0059 % 0060 0061 index = length(obj.minLSQTermh); 0062 0063 if (length(varargin) == 1) % ocp.minimizeLSQ(h) 0064 h = varargin{1}; 0065 0066 obj.minLSQTermh{index+1} = acado.Function(h); 0067 obj.minLSQTermr{index+1} = {}; 0068 obj.minLSQTermS{index+1} = {}; 0069 0070 elseif (length(varargin) == 2) %ocp.minimizeLSQ(h, r) 0071 h = varargin{1}; 0072 r = varargin{2}; 0073 0074 obj.minLSQTermh{index+1} = acado.Function(h); 0075 obj.minLSQTermr{index+1} = obj.checkVectorMatrix(r); 0076 obj.minLSQTermS{index+1} = {}; 0077 0078 elseif (length(varargin) == 3) %ocp.minimizeLSQ(S, h, r) 0079 h = varargin{2}; 0080 r = varargin{3}; 0081 S = varargin{1}; 0082 0083 obj.minLSQTermh{index+1} = acado.Function(h); 0084 obj.minLSQTermS{index+1} = acado.Matrix(S); 0085 obj.minLSQTermr{index+1} = obj.checkVectorMatrix(r); 0086 0087 0088 else %error 0089 error('ERROR: Invalid minimizeLSQ call. <a href="matlab: help acado.OCP.minimizeLSQ">help acado.OCP.minimizeLSQ</a>'); 0090 end 0091 0092 0093 end