function hf = plot_ShortPeriod(H_lst, Ma_cell, CGx_lst, rlst, surfix_lst) ss_c = {'r', 'b', 'm'}; ss_m = {'-o', '-+', '-*', '-x', '-s', '-^', '-v', '-p'}; ss_m1 = {'o', '+', '*', 'x', 's', '^', 'v', 'p'}; % hf = shortPeriod_figure(2); hf{1,1} = new_figure(); hf{1,2} = '短周期模态频率'; hf{2,1} = new_figure(); hf{2,2} = '短周期阻尼比'; hf{3,1} = new_ShortPeriod_Figure(2); hf{3,2} = '短周期频率要求'; hf{4,1} = new_CAP_Figure(2); hf{4,2} = '短周期动态特性要求'; n_H = length(H_lst); n_CGx = length(CGx_lst); lg_postion = { [0.15 0.6 0.1980 0.120],... [0.7 0.6 0.1980 0.120],... [0.15 0.6 0.1980 0.120]}; for idx = 1:length(rlst) H(idx,1) = rlst{idx}.H; Ma(idx,1) = rlst{idx}.Ma; CGx(idx,1) = rlst{idx}.CGx; mode_sp = rlst{idx}.mode_sp; wn(idx,1) = mode_sp.wn; zeta(idx,1) = mode_sp.zeta; t2(idx,1) = mode_sp.t2; nza(idx,1) = mode_sp.nza; CAP(idx,1) = mode_sp.CAP; end for idx_cgx = 1:length (CGx_lst) cgx = CGx_lst (idx_cgx); for idx_H = 1:length(H_lst) h = H_lst(idx_H); Ma_lst = Ma_cell{idx_H}; j = 1; Ma_rlst = []; wn_rlst = []; zeta_rlst = []; nza_rlst = []; CAP_rlst = []; for idx_Ma = 1:length(Ma_lst) ma = Ma_lst(idx_Ma); idx1 =(H==h)&(Ma==ma)&(CGx==cgx); if sum(idx1)==0 continue; end Ma_rlst(j) = ma; wn_rlst(j) = wn(idx1); zeta_rlst(j) = zeta(idx1); nza_rlst(j) = nza(idx1); CAP_rlst(j) = CAP(idx1); j = j+1; end ss = [ss_m{idx_H}, ss_c{idx_cgx}]; ss1 = [ss_m1{idx_H}, ss_c{idx_cgx}]; figure(hf{1}); plot(Ma_rlst, wn_rlst, ss); hold on; grid on; xlabel('TAS/(m/s)'); ylabel('短周期模态频率(rad/s)'); figure(hf{2}); plot(Ma_rlst, zeta_rlst, ss); hold on; grid on; xlabel('TAS/(m/s)'); ylabel('短周期模态阻尼比'); % ylim([0, 0.4]); figure(hf{3}); plot(nza_rlst, wn_rlst, ss1); hold on; grid on; figure(hf{4}); plot(zeta_rlst, CAP_rlst, ss1); hold on; grid on; end end for idx = 1:3 figure(hf{idx}); lg = new_legend(hf{idx}, lg_postion{idx}); set(hf{idx}, 'CurrentAxes', lg); hold on; ds = 1/(n_H+n_CGx); for idx_H = 1:n_H am = plot(0.25, ds*(n_CGx+n_H-idx_H)+ds/2, ['k',ss_m{idx_H}]); as = text(0.5, ds*(n_CGx+n_H-idx_H)+ds/2, ['H = ', num2str(H_lst(idx_H)/1000),' km']); set(as, 'FontSize', 8); set(am, 'MarkerSize', 6); end for idx_cgx = (n_H+1):(n_H+n_CGx) plot([0.15 0.35], [ds*(n_CGx+n_H-idx_cgx)+ds/2 ds*(n_CGx+n_H-idx_cgx)+ds/2], ss_c{idx_cgx-n_H}); as = text(0.5, ds*(n_CGx+n_H-idx_cgx)+ds/2, surfix_lst{idx_cgx-n_H}); set(as,'FontSize',8); end hold off; axis([0 1 0 1] ); %======================================================= OLD_POS = get(lg,'position'); NEW_POS = [ OLD_POS(1:3) , 0.03*(n_CGx+n_H)]; set(lg,'position',NEW_POS); end end