Main Content

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

ejemplo

createTunerCostTemplate(filter) crea una plantilla de una función de coste del ajustador 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.

Cuando ajusta los parámetros de filtro del objeto insEKF usando su función de objeto tune , use la función creada por createTunerCostTemplate para especificar el coste en el objeto tunerconfig como entrada a la función de objeto tune .

Ejemplos

contraer todo

Cree un objeto de filtro insEKF y cree una función de coste usando 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 medición de ruido usando la función tunernoise .

mnoise = tunernoise(filter);

Cree un objeto tunerconfig usando la función de coste 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