Files

76 lines
1.8 KiB
Matlab
Raw Permalink Normal View History

2025-06-04 14:13:22 +08:00
function r_feedback
h0 = 500;
2025-06-04 14:13:22 +08:00
gamma0 = 0;
v0 = 30:1:50;
2025-06-04 14:13:22 +08:00
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;
2025-06-04 14:13:22 +08:00
opts.TrimOptions.OptimizationOptions.Display = 'iter';
opts.TrimOptions.DisplayReport = 'on';
load_system(fcn);
mdlWks = get_param(fcn,'ModelWorkspace');
assignin(mdlWks,'mass0',360);
2025-06-04 14:13:22 +08:00
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