Files
sunny360vfe_proj/tasks/r_feedback.m
T

76 lines
1.8 KiB
Matlab

function r_feedback
h0 = 500;
gamma0 = 0;
v0 = 30:1:50;
proj = slproject.getCurrentProject;
wd = cd;
cd([proj.RootFolder '/docs']);
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.8;
opts.TrimOptions.OptimizationOptions.Display = 'iter';
opts.TrimOptions.DisplayReport = 'on';
load_system(fcn);
mdlWks = get_param(fcn,'ModelWorkspace');
assignin(mdlWks,'mass0',360);
h1 = figure();
h2 = figure();
for v =v0
[success,opts1,op_point] = trimLon( opts, h0, v, gamma0 );
if success
opts = opts1;
[~,Glat] = linfdm(opts.fcn,op_point);
figure(h1);
[~,p,~] = zpkdata(Glat);
Glat1 = zpk([],p{1,1},1);
pzmap(Glat1);
set(gca,'fontsize',10);
xlabel('Real');
ylabel('Imag');
grid on;
hold on ;
ev = eig(Glat1);
damp(ev);
Glat_f = feedback(Glat, [0 0 0 0;0 0 -0.25*tf([1 0],[1 1]) 0]);
figure(h2);
[~,p,~] = zpkdata(Glat_f);
Glatf = zpk([],p{1,1}([1:5]),1);
pzmap(Glatf);
set(gca,'fontsize',10);
xlabel('Real');
ylabel('Imag');
grid on;
hold on ;
ev = eig(Glatf);
damp(ev);
end
end
cd(wd);
end