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.

createTunerCostTemplate

Crear plantilla de función de coste del ajustador

Desde R2022a

Descripción

createTunerCostTemplate(filter) crea una plantilla de una función de costo de sintonizador y la muestra en una ventana del editor. La función de coste creada calcula el coste como el error cuadrático medio (RMS) entre los estados estimados y ground-truth. Puede modificar la función de coste como desee.

Al ajustar los parámetros de filtro del objeto insEKF utilizando su función de objeto tune, utilice la función creada por createTunerCostTemplate para especificar el costo en el objeto tunerconfig como entrada para la función de objeto tune.

ejemplo

Ejemplos

contraer todo

Cree un objeto de filtro insEKF y cree una función de costo utilizando la función de objeto createTunerCostTemplate.

filter = insEKF;
createTunerCostTemplate(filter);

Guarde la función creada en un archivo m.

doc = matlab.desktop.editor.getActive;
doc.saveAs(fullfile(pwd,"tunercost.m"));

Cargue datos de sensores pregrabados y datos ground-truth.

load("accelGyroINSEKFData.mat");

Especifique un estado de orientación inicial y su covarianza.

stateparts(filter,"Orientation",compact(initOrient));
statecovparts(filter,"Orientation",1e-2);

Cree una estructura de ruido de medición utilizando la función tunernoise.

mnoise = tunernoise(filter);

Crea un objeto tunerconfig utilizando la función de costo creada.

cfg = tunerconfig(filter,MaxIterations=1, ...
    ObjectiveLimit=1e-4, ...
    Cost="custom", ...
    CustomCostFcn=@tunercost);

Ajusteel filtro. Muestra el ruido de medición ajustado y el ruido de proceso en el filtro.

tunedmn = tune(filter,mnoise,sensorData, ...
    groundTruth,cfg)
    Iteration    Parameter                    Metric
    _________    _________                    ______
    1            AdditiveProcessNoise(1)      0.3413
    1            AdditiveProcessNoise(15)     0.3381
    1            AdditiveProcessNoise(29)     0.3353
    1            AdditiveProcessNoise(43)     0.3334
    1            AdditiveProcessNoise(57)     0.3214
    1            AdditiveProcessNoise(71)     0.3121
    1            AdditiveProcessNoise(85)     0.3110
    1            AdditiveProcessNoise(99)     0.3107
    1            AdditiveProcessNoise(113)    0.3106
    1            AdditiveProcessNoise(127)    0.3105
    1            AdditiveProcessNoise(141)    0.2972
    1            AdditiveProcessNoise(155)    0.2872
    1            AdditiveProcessNoise(169)    0.2855
    1            AccelerometerNoise           0.2852
    1            GyroscopeNoise               0.2851
tunedmn = struct with fields:
    AccelerometerNoise: 0.9000
        GyroscopeNoise: 0.9000

orientationNoise = statecovparts(filter,"Orientation")
orientationNoise = 4×4

    0.0100         0         0         0
         0    0.0100         0         0
         0         0    0.0100         0
         0         0         0    0.0100

Argumentos de entrada

contraer todo

Filtro INS, especificado como un objeto insEKF.

Historial de versiones

Introducido en R2022a