summaryrefslogtreecommitdiffstats
path: root/uav_params.m
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2024-05-31 01:39:04 +0200
committerNao Pross <np@0hm.ch>2024-05-31 01:39:04 +0200
commit6b589b2f39cc5996b7c14006d5be8010afc67e89 (patch)
tree2c4a8a4dd664e719a6509b0604d0d6084d4bb618 /uav_params.m
parentUpdate DK iterations (diff)
downloaduav-6b589b2f39cc5996b7c14006d5be8010afc67e89.tar.gz
uav-6b589b2f39cc5996b7c14006d5be8010afc67e89.zip
Update DK iteration and model structure
Diffstat (limited to 'uav_params.m')
-rw-r--r--uav_params.m31
1 files changed, 15 insertions, 16 deletions
diff --git a/uav_params.m b/uav_params.m
index fdd519a..2ac187e 100644
--- a/uav_params.m
+++ b/uav_params.m
@@ -35,7 +35,7 @@ J = [
] * 1e-9;
% Approximate propeller with a disk
-m_prop = 200e-3; % mass of propeller
+m_prop = 500e-3; % mass of propeller
r_prop = 85e-3; % radius of propeller
J_prop = .5 * m_prop * r_prop^2;
@@ -46,26 +46,23 @@ params.mechanical = struct(...
'FlapZDistance', 98e-3, ... % flap distance along z from center of mass
'InertiaTensor', J, ...
'GyroscopicInertiaZ', J_prop, ... % assume small angle
- 'GyroscopicInertiaZUncertainty', .01 ... % in %
+ 'GyroscopicInertiaZUncertainty', .05 ... % in %
);
% ------------------------------------------------------------------------
% Actuator limits and measurements
% Servos usually give a "speed" in seconds / 60 degrees without load
-servo_speed = 0.13; % seconds / 60 deg
-servo_angular_velocity = (60 / servo_speed) * (pi / 180); % rad / s
-
params.actuators = struct(...
'PropellerMaxAngularVelocity', 620.7, ... % in rad / s
'ServoAbsMaxAngle', 20 * pi / 180, ... % in radians
'ServoMaxTorque', 4.3 * 1e-2, ... % in kg / m
- 'ServoNominalAngularVelocity', servo_angular_velocity ...
+ 'ServoSecondsTo60Deg', 0.13 ... % in s / 60 deg
);
% IMU runs in NDOF mode
params.measurements = struct(...
- 'SensorFusionDelay', 30e-3, ... % in s
+ 'SensorFusionDelay', 10e-3, ... % in s, from 100 Hz sampling rate
'LIDARAccuracy', 10e-3, ... % in m
'LIDARMaxDistance', 40, ... % inm
'LIDARBandwidth', 100, ... % in Hz for z position
@@ -91,13 +88,13 @@ k_T = F_max / omega_max^2;
% https://scienceworld.wolfram.com/physics/LiftCoefficient.html
params.aerodynamics = struct(...
'ThrustOmegaProp', k_T, ... % in s^2 / (rad * N)
- 'ThrustOmegaPropUncertainty', .01, ... % in %
+ 'ThrustOmegaPropUncertainty', .05, ... % in %
'FlapArea', 23e-3 * 10e-3, ... % in m^2
- 'FlapAreaUncertainty', .02, ... % in %
+ 'FlapAreaUncertainty', .1, ... % in %
'DragCoefficients', [0, 0], ... % TODO
'DragCoefficientsUncertainties', [.1, .1], ... % in %
'LiftCoefficient', 2 * pi, ... % TODO
- 'LiftCoefficientUncertainty', .05 ...% in %
+ 'LiftCoefficientUncertainty', .1 ...% in %
);
@@ -126,14 +123,16 @@ params.linearization = struct(...
% Normalization (maximum values)
params.normalization = struct(...
- 'HPosition', 1, ... % m
- 'VPosition', 1, ...% m
- 'HSpeed', 2, ... % m / s
- 'VSpeed', 2, ... % m / s
+ 'FlapAngle', params.actuators.ServoAbsMaxAngle, ...
+ 'ThrustAngularVelocity', params.actuators.PropellerMaxAngularVelocity, ...
+ 'HPosition', .5, ... % m
+ 'VPosition', .5, ...% m
+ 'HSpeed', .5, ... % m / s
+ 'VSpeed', .5, ... % m / s
'PitchRollAngle', 10 * pi / 180, ... % rad
'YawAngle', 5 * pi / 180, ... % rad
- 'AngularRate', 2 * pi / 180, ... % rad / s
- 'WindSpeed', 2 ... % m / s
+ 'AngularRate', 1 * pi / 180, ... % rad / s
+ 'WindSpeed', .01 ... % m / s
);
end
% vim: ts=2 sw=2 et: