summaryrefslogtreecommitdiffstats
path: root/uav_performance_hinf.m
diff options
context:
space:
mode:
Diffstat (limited to 'uav_performance_hinf.m')
-rw-r--r--uav_performance_hinf.m23
1 files changed, 14 insertions, 9 deletions
diff --git a/uav_performance_hinf.m b/uav_performance_hinf.m
index 4a6de8a..c8df42a 100644
--- a/uav_performance_hinf.m
+++ b/uav_performance_hinf.m
@@ -23,26 +23,29 @@ T_alpha = params.actuators.ServoSecondsTo60Deg;
T_omega = 0.1;
T_xy = 5;
-T_z = 10;
+T_z = 4;
% Inverse performance functions
-W_Palpha = make_weight(1/T_alpha, 10, 2);
-W_Pomega = make_weight(1/T_omega, 10, 2);
+W_Palpha = tf(.8);
+W_Pomega = tf(.5);
+
+W_Ralpha = 1 / ((s * T_alpha)^2 + 2 * T_alpha * s + 1);
+W_Romega = 1 / ((s * T_omega)^2 + 2 * T_omega * 1.2 * s + 1);
W_Rxy = 1 / ((s * T_xy)^2 + 2 * T_xy * .8 * s + 1);
-W_Rz = 1 / (s * T_z + 1);
+W_Rz = 1 / ((s * T_z)^2 + 2 * T_z * s + 1);
-W_Pxy = tf(5);
+W_Pxy = tf(12);
W_Pz = tf(1);
W_Pxydot = tf(.01);
W_Pzdot = tf(.01);
-W_Pphitheta = .001 / (s * T_xy + 1);
-W_Ppsi = tf(.1);
+W_Pphitheta = tf(.005);
+W_Ppsi = tf(.3);
% Construct performance vector by combining xy and z
-W_ref = blkdiag(W_Rxy * eye(2), W_Rz);
+W_Rref = blkdiag(W_Rxy * eye(2), W_Rz);
W_PP = blkdiag(W_Pxy * eye(2), W_Pz);
W_PPdot = blkdiag(W_Pxydot * eye(2), W_Pzdot);
@@ -51,7 +54,9 @@ W_PTheta = blkdiag(W_Pphitheta * eye(2), W_Ppsi);
perf = struct(...
'FlapAngle', W_Palpha * eye(4), ...
'Thrust', W_Pomega, ...
- 'ReferenceFilter', W_ref, ...
+ 'ReferenceFilter', W_Rref, ...
+ 'FlapAngleFilter', W_Ralpha * eye(4), ...
+ 'ThrusterFilter', W_Romega, ...
'Position', W_PP, ...
'Velocity', W_PPdot, ...
'Angles', W_PTheta ...