<aside> ⏩ ChatGPT wrote all of this! Most information was from the source mentioned below, however more information was added on by ChatGPT.

</aside>

<aside> 🌐 Much of the modelling was taken from the link below. In the link scroll down to the algorithm section to see original source of most information.

https://www.mathworks.com/help/nav/ref/imusensor-system-object.html

</aside>

Gyroscope Model

graph TD
    subgraph RandomStream
        RandomStreamSeed[Seed]
        RandomNumberGenerator[Random Number Generator]
        RandomNumberGenerator --> w
    end

    subgraph BiasInstabilityDrift
        BiasInstability
        BiasInstabilityCoefficients
        SampleRate1[SampleRate]
        BiasInstability --> BiasInstabilityDriftCalc[Bias Instability Drift]
        BiasInstabilityCoefficients --> BiasInstabilityDriftCalc
        SampleRate1 --> BiasInstabilityDriftCalc
        BiasInstabilityDriftCalc --> b1[β1]
    end

    subgraph WhiteNoiseDrift
        NoiseDensity
        NoiseType1[NoiseType]
        SampleRate2[SampleRate]
        NoiseDensity --> WhiteNoiseDriftCalc[White Noise Drift]
        NoiseType1 --> WhiteNoiseDriftCalc
        SampleRate2 --> WhiteNoiseDriftCalc
        WhiteNoiseDriftCalc --> b2[β2]
    end

    subgraph RandomWalkDrift
        RandomWalk
        NoiseType2[NoiseType]
        SampleRate3[SampleRate]
        RandomWalk --> RandomWalkDriftCalc[Random Walk Drift]
        NoiseType2 --> RandomWalkDriftCalc
        SampleRate3 --> RandomWalkDriftCalc
        RandomWalkDriftCalc --> b3[β3]
    end

    subgraph EnvironmentalDrift
        Temperature
        TemperatureBias
        Temperature --> EnvironmentalDriftCalc[Environmental Drift]
        TemperatureBias --> EnvironmentalDriftCalc
        EnvironmentalDriftCalc --> De[Δe]
    end

    subgraph AccelerationBiasDrift
        acceleration[Acceleration]
        AccelerationBias
        acceleration --> AccelerationBiasDriftCalc[Acceleration Bias Drift]
        AccelerationBias --> AccelerationBiasDriftCalc
        AccelerationBiasDriftCalc --> Da[Δa]
    end

    subgraph ScaleFactorErrorModel
        Temperature
        TemperatureScaleFactor
        Temperature --> ScaleFactorErrorModelCalc[Scale Factor Error Model]
        TemperatureScaleFactor --> ScaleFactorErrorModelCalc
        ScaleFactorErrorModelCalc --> scaleFactorError
    end

    subgraph QuantizationModel
        MeasurementRange
        Resolution
        MeasurementRange --> QuantizationModelCalc[Quantization Model]
        Resolution --> QuantizationModelCalc
        QuantizationModelCalc --> gyroReadings
    end

    ConvertToSensorFrame[Convert to Sensor Frame] --> a
    BulkModel[Bulk Model] --> b
    DriftCombination[Drift] --> c
    ScaleFactorErrorModelCalc --> scaleFactor

    acceleration --> AccelerationBiasDriftCalc
    acceleration --> DriftCombination
    De --> DriftCombination
    Da --> DriftCombination
    DriftCombination --> d
    b --> d
    d --> QuantizationModelCalc

    angularVelocity[Angular Velocity] --> ConvertToSensorFrame
    orientation[Orientation] --> ConvertToSensorFrame
    a --> BulkModel

    b1 --> DriftCombination
    b2 --> DriftCombination
    b3 --> DriftCombination

Bias Instability Drift

White Noise Drift

Random Walk Drift

Below stuff not checked yet

Environmental Drift

Acceleration Bias Drift

Bulk Model