76 lines
1.8 KiB
Matlab
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
|
|
|
|
|
|
|
|
|
|
|