1.问题
         为了改进闭环系统性能,可以采用串联校正,这里用相位超前校正,即  
 
 α 常取  0.07~0.2 ,选择适当的 α 与 τ , 要使  
 
 针对新的开环传递函数 G ’ K (S)=Gc(S) × G(S) × H(S) ,画出开环 Bode 图,  
 
 观察不同的 α 与 τ 对  BODE  图的影响,使相位裕度 γ >40 ° ,以使闭环系统性能  
 
 大大提高,确定合适的 α 与 τ 。 
 
2.代码
% 定义G(s)和H(s)  
numG = 160;  
denG = [1, 1, 0.01]; % 转换为标准形式s^3 + 0s^2 + 0.01s  
G = tf(numG, denG);  
H = 0.1;  
s=tf("s")  ;
% 初始化alpha和tau的搜索范围  
alpha_range = 0.07:0.01:0.2; % 
tau_range = 0.01:0.01:1; % 初始化存储相位裕度的数组  
pm_alpha = zeros(size(alpha_range));  
pm_tau = zeros(size(tau_range));  
pm_matrix = zeros(length(alpha_range), length(tau_range));  % 迭代搜索  
for i = 1:length(alpha_range)  for j = 1:length(tau_range)  % 假设相位超前校正为 (tau*s + 1) / (alpha*tau*s + 1)  comp = (tau_range(j)*s + 1) / (alpha_range(i)*tau_range(j)*s + 1);  GH = G * H * comp; % 闭环传递函数  [~, pm] = margin(GH); % 计算相位裕度  pm_matrix(i, j) = pm;  end  pm_alpha(i) = max(pm_matrix(i, :)); % 每个alpha下的最大相位裕度  [~, idx] = max(pm_matrix(i, :));  pm_tau(idx) = pm_matrix(i, idx); % 对应的tau下的相位裕度  
end  %% 
% 绘制相位裕度随alpha变化的图  
figure; 
subplot(1,2,1)
plot(alpha_range, pm_alpha, 'b-o');  
xlabel('\alpha');  
ylabel('Phase Margin (deg)');  
title('相位裕度随alpha变化的图');  
grid on; % 绘制相位裕度随tau变化的图 
subplot(1,2,2) 
plot(tau_range, pm_tau, 'r-o');  
xlabel('\tau');  
ylabel('Phase Margin (deg) for Optimal \alpha');  
title('相位裕度随tau变化的图');  
grid on;  %% % 确定最优值  
[max_pm_alpha, idx_alpha] = max(pm_alpha);  
optimal_alpha = alpha_range(idx_alpha);  
optimal_tau_idx = find(pm_matrix(idx_alpha, :) == max_pm_alpha); % 可能有多个tau对应相同的最大相位裕度  
optimal_tau = tau_range(optimal_tau_idx(1)); % 选择第一个tau值  % 绘制最优alpha和tau下的Bode图  
comp_optimal = (optimal_tau*s + 1) / (optimal_alpha*optimal_tau*s + 1);  
GH_optimal = G * H * comp_optimal;  
figure;  
bode(GH_optimal, '-k');  
title(['最优alpha和tau下的Bode图 (\alpha = ', num2str(optimal_alpha), ', \tau = ', num2str(optimal_tau), ')']);  
grid on;  [gm3, pm3, wcg3, wcp3] = margin(GH_optimal);   
% 幅值裕度(以分贝为单位)  
am_dB3 = 20*log10(1/gm3);  
3.运行结果

图1

图2