summaryrefslogtreecommitdiffstats
path: root/uav_params.m
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2024-04-01 14:00:16 +0200
committerNao Pross <np@0hm.ch>2024-04-01 14:00:16 +0200
commit47ce5760b1c45fc5513e56dce92e29b9363bb03e (patch)
tree8494b4f43f7b5da3615cc9b973726e69a3d5e5c5 /uav_params.m
parentWhitespace (diff)
downloaduav-47ce5760b1c45fc5513e56dce92e29b9363bb03e.tar.gz
uav-47ce5760b1c45fc5513e56dce92e29b9363bb03e.zip
Update a lot of small things and add SIMULINK model
Diffstat (limited to 'uav_params.m')
-rw-r--r--uav_params.m21
1 files changed, 17 insertions, 4 deletions
diff --git a/uav_params.m b/uav_params.m
index dd0c101..3ceda9e 100644
--- a/uav_params.m
+++ b/uav_params.m
@@ -29,16 +29,21 @@ params.mechanical = struct(...
'DuctRadius', 46e-3, ...
'DuctHeight', 171e-3, ...
'FlapZDistance', 98e-3, ... % flap distance along z from center of mass
- 'InertiaTensor', 5e-3 * eye(3), ... % TODO, assume diagonal
+ 'InertiaTensor', 5e-3 * eye(3), ... % TODO true values, assume diagonal
'GyroscopicInertiaZ', 0 ... % assume no gyroscopic effects for now
);
% ------------------------------------------------------------------------
% Actuator limits
+% Cheap servos usually give a "speed" in seconds / 60 degrees without load
+servo_speed = 0.19; % seconds per 60 deg
+servo_angular_velocity = (pi / 3) / servo_speed;
+
params.actuators = struct(...
'TurbineMaxSpeed', 620.7, ... % In Hz
'ServoAbsMaxAngleDeg', 25, ... % in Degrees
+ 'ServoNominalAngularVelocity', servo_angular_velocity, ...
'MeasurementDelay', 8e-3 ... % delay caused by sensor fusion algorithm
);
@@ -53,9 +58,9 @@ F_max = 38.637; % in N (measured)
k_T = sqrt(F_max / omega_max);
params.aerodynamics = struct(...
- 'ThrustOmegaProp', k_T, ...
+ 'ThrustOmegaProp', k_T, ... % in s^2 / (rad * N)
'FlapArea', 23e-3 * 10e-3 * 1.5, ... % FIXME factor 150% was chosen at random
- 'DragCoefficients', [1, 1] .* 1e-3, ... % TODO
+ 'DragCoefficients', [1, 4] .* 1e-3, ... % TODO
'LiftCoefficient', 1e-3 ... % TODO
);
@@ -78,4 +83,12 @@ params.linearization = struct(...
'Inputs', [0; 0; 0; 0; omega_hover] ... % Flaps at rest and turbine at X
);
-end \ No newline at end of file
+% ------------------------------------------------------------------------
+% Performance requirements
+
+params.performance = struct(...
+ 'MaxHorizontalSpeed', 1, ...
+);
+
+end
+% vim: ts=2 sw=2 et: