Weird behavior with Three-axis Inertial Measurement Unit

40 visualizzazioni (ultimi 30 giorni)
Mats
Mats il 3 Nov 2025 alle 8:54
Commentato: Stephen23 circa 19 ore fa
Hello there,
A bit of context, the simulation is of a drone dropping for a while, and the the rotors are turned on at full blast, I am simply testing my simulink setup, it is not close to done, and the questions are about the IMU:
I get this really weird bahviour with my IMU sensor in simulink. For some reason it explodes in it's output-data, and I am not sure why. I have noticed changing both of the natural frequencies to 0 resolves this problem, which lead to my first questio:
What is a natural frequency of an IMU (Gyro and Aceleraometer)?
Error:An error occurred during simulation and the simulation was terminated
Caused by:
Derivative of state '6' in block 'low_fidelity_model/Gyro Scope and Accelometerar/Three-axis Inertial Measurement Unit/Three-axis Accelerometer/Dynamics/Second-order Dynamics/Integrator, Second-Order Limited' at time 15.733333333333333 is not finite. The simulation will be stopped. There may be a singularity in the solution. If not, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances)
The crash at that specific time is conistant.
What is weird about this, is if I take the same data that I feed the IMU, it is inharently stable, except I get some weird behaviour in X,Y forces as the ossilate (I currently have no controller implemented), thus leading to my second question.
Is the purpose of the IMU to simulate a real-life IMU, or something else?
Thanks for taking your time to read this.
  2 Commenti
Paul
Paul il 4 Nov 2025 alle 1:16
Hi @Mats,
Please provide a link the specific IMU model that's being used. There are at least two of which I'm aware, though only one of those supports second order dynamics. But there may be others floating around and I don't want to guess.
Mats
Mats il 13 Nov 2025 alle 11:50
Modificato: Mats il 13 Nov 2025 alle 13:52
Hello there, sorry for the late response The IMU I am using is Three-axis Inertial Measurement Unit from the Aerospace Blockset.
note: I've defined gravitu as being axis, and in my model, the drone starts thing it measures starts dropping due to gravity, but for some reason, it dosn't actually show that on the plot or if I read the data produced by the IMU either. It only shows once another even happens.

Accedi per commentare.

Risposte (1)

Paul
Paul circa 20 ore fa
"Is the purpose of the IMU to simulate a real-life IMU, or something else?"
The purpose of that model is to simulate a notional IMU with the features and error sources implemented by the model.
"What is a natural frequency of an IMU (Gyro and Aceleraometer)?"
The purpose of the second order model is to give the user the ability model a dynamic response, from whatever source that may arise. The IMU might have a means of mechanical isolation from the platform to which it is attached, or the device might implement some internal filtering, etc. So this feature of the model gives the user the ability to model a basic dynamic response (or not based on the "Second order dynamics for acceleromter/gyro" block parameters).
If using the second order dynamics, then one must ensure the simulation solver step size is small enough to properly simulate those dynamics (and the step size has to be small enough to properly sample the dynamics of the IMU input signals). Otherwise, numerical instabilities can occur, which looks like what happened and what the error message is suggesting.
"I have noticed changing both of the natural frequencies to 0 resolves this problem,"
In this case, the output of model would have been just white noise, assuming the "Second order dynamics ..." and "Noise on" parameters were set to true.

Categorie

Scopri di più su Aerospace Applications in Help Center e File Exchange

Prodotti


Release

R2025b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by