47 lines
1.3 KiB
Matlab
47 lines
1.3 KiB
Matlab
function [Glat, P]= mixer_design
|
|
|
|
proj = slproject.getCurrentProject;
|
|
wd = cd;
|
|
cd([proj.RootFolder '/work']);
|
|
mdl = evalin('base', 'mdl_name');
|
|
fcn = [mdl, '_an'];
|
|
opts = trimoptions(fcn);
|
|
opts.v0_type = uint8(0);
|
|
opts.max_alpha = 12/57.3;
|
|
opts.min_alpha = -4/57.3;
|
|
opts.max_de = 25/57.3;
|
|
opts.min_de = -25/57.3;
|
|
opts.max_da = 25/57.3;
|
|
opts.min_da = -25/57.3;
|
|
opts.max_dr = 25/57.3;
|
|
opts.min_dr = -25/57.3;
|
|
opts.max_throttle = 1;
|
|
opts.throttle = 0.6;
|
|
opts.TrimOptions.OptimizationOptions.Display = 'iter';
|
|
opts.TrimOptions.DisplayReport = 'on';
|
|
|
|
load_system(fcn);
|
|
mdlWks = get_param(fcn,'ModelWorkspace');
|
|
gamma0 = 0;
|
|
|
|
opts.TrimOptions.OptimizationOptions.Display = 'iter';
|
|
opts.TrimOptions.DisplayReport = 'on';
|
|
mass = 39;
|
|
h0 = 150;
|
|
v = 25;
|
|
assignin(mdlWks,'mass0',mass);
|
|
assignin(mdlWks,'fdm_sel',1);
|
|
[success,opts1, op_point] = trimLon( opts, h0, v, gamma0 );
|
|
|
|
if success
|
|
opts = opts1;
|
|
alpha = opts.alpha;
|
|
[~,Glat] = linfdm(opts.fcn,op_point);
|
|
damp(Glat);
|
|
B = Glat.B([2 3],:);
|
|
Bc = [B(1,1) 0; B(1,1)*tan(alpha) B(2,2)];
|
|
P = (B'*B)\B'*Bc;
|
|
end
|
|
close_system(fcn, 0); % close without saving
|
|
cd(wd);
|
|
end |