diff --git a/commonFunctions/sensors/Sensor2D.m b/commonFunctions/sensors/Sensor2D.m index e91e0914d34c2c9b0192f5002707f61e0f292a9f..e7f35d864c243b8b92464c2e6d0ed57928f1a228 100644 --- a/commonFunctions/sensors/Sensor2D.m +++ b/commonFunctions/sensors/Sensor2D.m @@ -18,8 +18,8 @@ classdef Sensor2D < handle % noises noiseType; % White (default) or Pink + noiseDataTrack1; noiseVariance; % Defining gaussian white noise - pink_properties; % Defining pink noise % offset offset; % Offset in all directions @@ -29,8 +29,7 @@ classdef Sensor2D < handle methods (Access = 'public') function obj = Sensor2D() - % creating a new sensor - obj.noiseType = "White"; + % creating a new sensor end function [outputArg] = sens(obj,inputArg,temp) @@ -67,9 +66,13 @@ classdef Sensor2D < handle end function outputArg = addNoise(obj,inputArg) - if obj.noiseType == "White" - inputArg=inputArg+sqrt(obj.noiseVariance).*randn(length(inputArg),1); - elseif obj.noiseType == "Pink" + if isempty(obj.noiseType) + obj.noiseType = "white"; + end + + if obj.noiseType == "white" + inputArg = inputArg+sqrt(obj.noiseVariance).*randn(length(inputArg),1); + elseif obj.noiseType == "pink" % TBI end outputArg = inputArg; diff --git a/commonFunctions/sensors/Sensor3D.m b/commonFunctions/sensors/Sensor3D.m index eb7dd9d3b7687f4585aa0099eff6cc2d917d457a..03f06aaad1179420f76d4b3b8f55f984008a5f24 100644 --- a/commonFunctions/sensors/Sensor3D.m +++ b/commonFunctions/sensors/Sensor3D.m @@ -10,6 +10,9 @@ classdef Sensor3D < Sensor2D % Creating a new sensor: [obj] = Sensor3D() properties + noiseDataTrack2; + noiseDataTrack3; + offsetX; offsetY; offsetZ; diff --git a/data/2024_Lyra_Portugal_October/initSensors2024_Lyra_Portugal_October.m b/data/2024_Lyra_Portugal_October/initSensors2024_Lyra_Portugal_October.m index 8bd8adb94c844b50a50e399f0dd596ed201a5106..2d5a3ff1caf2d8bfb1d8b46277b1f134ffd721c0 100644 --- a/data/2024_Lyra_Portugal_October/initSensors2024_Lyra_Portugal_October.m +++ b/data/2024_Lyra_Portugal_October/initSensors2024_Lyra_Portugal_October.m @@ -5,6 +5,7 @@ % release 24/02/2024 % latest update: Stefano Belletti (30/11/2024) +load("Lyra_Port_sensor_vect_res.mat") %% barometer1 - static measure (HSCMAND001BAAA5) % NOTE: pressure in mbar, temp should be in C° @@ -148,6 +149,12 @@ sensorSettings.spheroid = wgs84Ellipsoid; % NOTE: pressure in mbar, temp should be in C°; % check 2D offset for chamber pressure sensor sensorSettings.comb_chamber = Sensor2D(); + + +sensorSettings.comb_chamber = loadSensorNoiseData(sensorSettings.comb_chamber, Lyra_Port_sensor_vect, "motor_Motor_TopTankPressureData.csv"); + + + sensorSettings.comb_chamber.maxMeasurementRange = 40000; % 1100, 1300 in mbar sensorSettings.comb_chamber.minMeasurementRange = 0; % 300, 10 in mbar sensorSettings.comb_chamber.noiseVariance = 60000; % mbar @@ -175,3 +182,31 @@ sensorSettings.pitot_total.noiseVariance = 2*0.043043; % now is in std_setInitialParams.m % + +%% Functions + +function [obj] = loadSensorNoiseData(obj, vect, name) + +len = length(vect); + +for ii = 1:len + found = strcmp(name, vect(ii).name); + if found + break + end +end + +obj.noiseType = vect(ii).noise_type; + +if strcmp("Sensor2D", class(obj)) + obj.noiseDataTrack1 = vect(ii).track1; +elseif strcmp("Sensor3D", class(obj)) || strcmp("SensorGPS", class(obj)) + obj.noiseDataTrack1 = vect(ii).track1; + obj.noiseDataTrack2 = vect(ii).track2; + obj.noiseDataTrack3 = vect(ii).track3; +else + error("Not found") +end + +end +