Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

gyroparams

Parámetros del sensor de giroscopio

Descripción

La clase gyroparams crea un objeto de parámetros del sensor de giroscopio. Puede utilizar este objeto para modelar un giroscopio al simular una IMU con imuSensor. Consulte la sección Algoritmos de imuSensor para obtener detalles del modelado gyroparams.

Creación

Descripción

params = gyroparams devuelve un objeto de parámetros del sensor de giroscopio ideal con valores predeterminados.

params = gyroparams(Name,Value) configura las propiedades del objeto gyroparams utilizando uno o más argumentos de par Name,Value. Name es un nombre de propiedad y Value es el valor correspondiente. Name debe aparecer dentro de comillas simples (''). Puede especificar varios argumentos de par nombre-valor en cualquier orden como Name1,Value1,...,NameN,ValueN. Cualquier propiedad no especificada toma valores predeterminados.

Propiedades

expandir todo

Lectura máxima del sensor en rad/s, especificada como un escalar positivo real.

Tipos de datos: single | double

Resolución de las mediciones del sensor en (rad/s)/LSB, especificada como un escalar real no negativo. Aquí, LSB es el acrónimo de bit menos significativo.

Tipos de datos: single | double

Sesgo de compensación del sensor constante en rad/s, especificado como un escalar real o un vector fila de 3 elementos. Cualquier entrada escalar se convierte en un vector fila real de 3 elementos donde cada elemento tiene el valor escalar de entrada.

Tipos de datos: single | double

Los ejes del sensor se inclinan en porcentaje, especificado como un escalar, un vector fila de 3 elementos o una matriz de 3 por 3. Los elementos diagonales de la matriz representan los efectos de desalineación para cada eje. Los elementos fuera de la diagonal explican los efectos de desalineación de los ejes transversales. El estado medido vmeasure se obtiene del estado verdadero vtrue a través de la matriz de desalineación como:

vmeasure=1100Mvtrue=1100[m11m12m13m21m22m23m31m32m33]vtrue

  • Si especifica la propiedad como un escalar, entonces todos los elementos fuera de la diagonal de la matriz toman el valor del escalar especificado y todos los elementos diagonales son 100.

  • Si especifica la propiedad como un vector [a b c], entonces m21 = m31 = a, m12 = m32 = b, y m13 = m23 = c. Todos los elementos de la diagonal son 100.

Tipos de datos: single | double

Densidad espectral de potencia del ruido del sensor en (rad/s)/√Hz, especificada como un escalar real o un vector fila de 3 elementos. Esta propiedad corresponde al ángulo de caminata aleatoria (ARW). Cualquier entrada escalar se convierte en un vector fila real de 3 elementos donde cada elemento tiene el valor escalar de entrada.

Tipos de datos: single | double

Coeficientes de filtro para la generación de ruido de inestabilidad de polarización, especificados como una estructura. La estructura tiene estos campos:

  • Numerator — Coeficientes del numerador, especificados como un vector de valor real.

  • Denominator — Coeficientes del denominador, especificados como un vector de valor real.

Para especificar coeficientes para el ruido fractal, utilice la función fractalcoef.

Ejemplo: struct(Numerator=1,Denominator=[1 -0.5])

Tipos de datos: struct

Inestabilidad del desplazamiento de polarización en rad/s, especificada como un escalar real o un vector fila de 3 elementos. Cualquier entrada escalar se convierte en un vector fila real de 3 elementos donde cada elemento tiene el valor escalar de entrada.

Tipos de datos: single | double

Ruido blanco integrado del sensor en (rad/s)(√Hz), especificado como un escalar real o un vector fila de 3 elementos. Cualquier entrada escalar se convierte en un vector fila real de 3 elementos donde cada elemento tiene el valor escalar de entrada.

Tipos de datos: single | double

Tipo de ruido aleatorio, especificado como:

  • "double-sided" — Los coeficientes de ruido aleatorio tienen un factor de escala de 2.

  • "single-sided" — Los coeficientes de ruido aleatorio tienen un factor de escala de 1.

Tipos de datos: char | string

Polarización del sensor a partir de la temperatura en ((rad/s)/℃), especificada como un escalar real o un vector fila de 3 elementos. Cualquier entrada escalar se convierte en un vector fila real de 3 elementos donde cada elemento tiene el valor escalar de entrada.

Tipos de datos: single | double

Error del factor de escala de la temperatura en (%/℃), especificado como un escalar real o un vector fila de 3 elementos con valores que van de 0 a 100. Cualquier entrada escalar se convierte en un vector fila real de 3 elementos donde cada elemento tiene el valor escalar de entrada.

Tipos de datos: single | double

Sesgo del sensor a partir de la aceleración lineal en (rad/s)/(m/s2), especificado como un escalar real o un vector fila de 3 elementos. Cualquier entrada escalar se convierte en un vector fila real de 3 elementos donde cada elemento tiene el valor escalar de entrada.

Tipos de datos: single | double

Ejemplos

contraer todo

Genere datos de giroscopio para un objeto imuSensor a partir de entradas estacionarias.

Genere un objeto de parámetro de giroscopio con una lectura máxima del sensor de 4.363 rad/s y una resolución de 1.332e-4 (rad/s)/LSB. El sesgo de desplazamiento constante es 0,349 rad/s. El sensor tiene una densidad espectral de potencia de 8,727e-4 rad/s/Hz. El sesgo de la temperatura es 0,349 (rad/s2)/0C. El error del factor de escala de la temperatura es 0,02%/0C. Los ejes del sensor están desviados un 2%. El sesgo del sensor de la aceleración lineal es 0,178e-3 (rad/s)/(m/s2)

params = gyroparams('MeasurementRange',4.363,'Resolution',1.332e-04,'ConstantBias',0.349,'NoiseDensity',8.727e-4,'TemperatureBias',0.349,'TemperatureScaleFactor',0.02,'AxesMisalignment',2,'AccelerationBias',0.178e-3);

Utilice una frecuencia de muestreo de 100 Hz espaciadas en 1000 muestras. Cree el objeto imuSensor utilizando el objeto de parámetro giroscopio.

Fs = 100;
numSamples = 1000;
t = 0:1/Fs:(numSamples-1)/Fs;

imu = imuSensor('accel-gyro','SampleRate', Fs, 'Gyroscope', params);

Genere datos de giroscopio a partir del objeto imuSensor.

orient = quaternion.ones(numSamples, 1);
acc = zeros(numSamples, 3);
angvel = zeros(numSamples, 3);
 
[~, gyroData] = imu(acc, angvel, orient);

Trazar los datos del giroscopio resultantes.

plot(t, gyroData)
title('Gyroscope')
xlabel('s')
ylabel('rad/s')

Figure contains an axes object. The axes object with title Gyroscope, xlabel s, ylabel rad/s contains 3 objects of type line.

Capacidades ampliadas

expandir todo

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2018b

expandir todo

Consulte también

| |