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