1 function eq_constr = porsche_circle_x3_y3_get_eq_constr(model)
2 %
function eq_constr = porsche_circle_get_eq_constr(model)
4 % !!! DOKU SCHREIBEN !!!
6 % Oliver Zeeb, 01.06.2011
8 if isfield(model.optimization,
'constraint_circle_radius')
9 R=model.optimization.constraint_circle_radius;
11 disp('field model.optimization.constraint_circle_radius does not exist!')
12 disp('--> no radius for the constraint circle given! Using R=10...')
16 if ~isfield(model.optimization,'constraint_circle_midpoint')
17 disp('field model.optimization.constraint_circle_midpoint does not exist!')
18 disp('Using x_midpoint=model.pmacro(3,1), y_midpoint=model.pmacro(3,2)')
19 model.optimization.constraint_circle_midpoint(1) = model.pmacro(3,1);
20 model.optimization.constraint_circle_midpoint(2) = model.pmacro(3,2);
25 % n Neben-Bed: punkte aus model.mu_names auf kreis um radius r_n
28 for k=1:length(model.mu_names)
29 position_in_pmacro = str2double(model.mu_names{k}(2));
30 x_or_y = model.mu_names{k}(1);
33 x(x_ind) = getfield(model, model.mu_names{k});
34 %x_fix(x_ind) = model.pmacro(position_in_pmacro,1);
35 x_fix(x_ind) = model.optimization.constraint_circle_midpoint(1);
38 y(y_ind) = getfield(model, model.mu_names{k});
39 %y_fix(y_ind) = model.pmacro(position_in_pmacro,2);
40 y_fix(x_ind) = model.optimization.constraint_circle_midpoint(2);
42 error(
'unknown entry in model.mu_names');
46 x_diff_sqr = (x-x_fix).^2;
47 y_diff_sqr = (y-y_fix).^2;
48 r_sqr = (R*ones(1,length(x_diff_sqr))).^2;
50 eq_constr = x_diff_sqr + y_diff_sqr - r_sqr;