Major rework using rocketpy

This commit is contained in:
dario
2024-06-07 15:01:16 +02:00
parent 1b06db4152
commit 382cb9aad4
25 changed files with 13173 additions and 102 deletions

View File

@@ -3,12 +3,13 @@ from numpy.typing import ArrayLike
from spatz.sensors import PressureSensor
from spatz.dataset import Dataset, Phase
from spatz.simulations.data_source import DataSource
from spatz.logger import Logger
from spatz.transforms import GaussianNoise, Transform, ProportionalGaussian
class MS5611(PressureSensor):
def __init__(self, dataset: Dataset, logger: Logger, transforms: List[Transform] = [], ts_effects=True):
def __init__(self, dataset: DataSource, logger: Logger, transforms: List[Transform] = [], ts_effects=True):
super().__init__(dataset, logger, transforms, ts_effects)
# Noise model obtained by a test flight using this sensor.

View File

@@ -6,11 +6,12 @@ from typing import List
from spatz.sensors import Sensor
from spatz.logger import Logger
from spatz.dataset import Dataset
from spatz.simulations.data_source import DataSource
from spatz.transforms import Transform
class PressureSensor(Sensor):
def __init__(self, dataset: Dataset, logger: Logger, transforms: List[Transform] = [], ts_effects=True, delay=0.0):
def __init__(self, dataset: DataSource, logger: Logger, transforms: List[Transform] = [], ts_effects=True, delay=0.0):
"""_summary_
Args:
@@ -28,7 +29,7 @@ class PressureSensor(Sensor):
self._ts_effects = active
def _get_data(self) -> float:
x = self._dataset.get_pressure()
x = self._dataset.get_static_pressure()
if self._ts_effects:
# Pre-defined constants.
@@ -36,16 +37,16 @@ class PressureSensor(Sensor):
sigma = 40
# How far away from transsonic speed (mach 1) are we?
vvec = self._dataset.get_velocity()
vvec = self._dataset.get_velocity('global')
dv = np.abs(np.linalg.norm(vvec) - self._dataset.get_speed_of_sound())
# Model transsonic effects by a peak at mach 1 which decays the further we are away from it.
ts_eff = _p * math.exp(-0.5* (dv / sigma)**2 ) / (sigma * math.sqrt(2*math.pi))
# Log the values for the transsonic effect.
self._logger.write('ts_effects', ts_eff, domain=self._get_name())
self._logger.write('mach_no', self._dataset.get_mach_number(), domain='mach')
self._logger.write('speedofsound', self._dataset.get_speed_of_sound(), domain='mach')
self._log('ts_effects', ts_eff)
self._log('mach_no', self._dataset.get_mach_number())
self._log('speedofsound', self._dataset.get_speed_of_sound())
x = x + ts_eff