summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--uav_uncertainty.m29
1 files changed, 21 insertions, 8 deletions
diff --git a/uav_uncertainty.m b/uav_uncertainty.m
index 53cd975..7cd7e38 100644
--- a/uav_uncertainty.m
+++ b/uav_uncertainty.m
@@ -28,27 +28,40 @@ eps_d = params.aerodynamics.DragCoefficientsUncertainties(1);
eps_omega = max(.5 * eps_T, eps_r);
eps_alpha = max(eps_l + eps_S + 2 * eps_omega, eps_S + eps_d + eps_omega);
-b = 10;
-G_highpass = make_weight(b, 1, .1);
+b = 12;
+G = make_weight(b, 2, .2);
-W_malpha = eps_alpha * G_highpass;
-W_momega = eps_omega * G_highpass;
-W_mState = .1 * G_highpass;
+W_malpha = .1 * eps_alpha * G;
+W_momega = .1 * eps_omega * G;
+W_mState = blkdiag( ...
+ .05 * tf(1) * eye(3), ...
+ .01 * tf(1) * eye(3), ...
+ .001 * tf(1) * eye(3), ...
+ .05 * tf(1) * eye(3) ...
+);
uncert = struct(...
+ 'FlapAngleEpsilon', eps_alpha, ...
+ 'ThrustEpsilon', eps_omega, ...
'FlapAngle', W_malpha * eye(4), ...
'Thrust', W_momega, ...
- 'StateLinApprox', W_mState * eye(12));
+ 'StateLinApprox', W_mState);
if do_plots
% Bode plots of performance requirements
figure; hold on;
bodemag(W_malpha);
bodemag(W_momega);
- bodemag(W_mState);
+
+ bodemag(W_mState(1,1));
+ bodemag(W_mState(4,4));
+ bodemag(W_mState(7,7));
+ bodemag(W_mState(11,11));
grid on;
- legend('$W_{m,\alpha}$', '$W_{m,\omega}$', '$W_{m,\mathbf{P}}$', ...
+ legend('$W_{m,\alpha}$', '$W_{m,\omega}$', ...
+ '$W_{m,\mathbf{P}}$', '$W_{m,\mathbf{\dot{P}}}$', ...
+ '$W_{m,\mathbf{\Theta}}$', '$W_{m,\mathbf{\Omega}}$', ...
'interpreter', 'latex')
title('\bfseries Stability Requirement (only for $\mu$-Synthesis)', ...
'interpreter', 'latex')