Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

createTunerCostTemplate

Créer un modèle de fonction de coût du tuner

Depuis R2022a

Description

exemple

createTunerCostTemplate(filter) crée un modèle de fonction de coût du tuner et l'affiche dans une fenêtre d'éditeur. La fonction de coût créée calcule le coût sous la forme de l'erreur quadratique moyenne (RMS) entre les états estimés et la vérité terrain. Vous pouvez modifier la fonction de coût à votre guise.

Lorsque vous ajustez les paramètres de filtre de l'objet insEKF à l'aide de sa fonction d'objet tune , utilisez la fonction créée par createTunerCostTemplate pour spécifier le coût. dans l'objet tunerconfig en tant qu'entrée de la fonction objet tune .

Exemples

réduire tout

Créez un objet filtre insEKF et créez une fonction de coût à l'aide de la fonction objet createTunerCostTemplate .

filter = insEKF;
createTunerCostTemplate(filter);

Enregistrez la fonction créée dans un fichier m.

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

Chargez les données de capteur préenregistrées et les données de vérité terrain.

load("accelGyroINSEKFData.mat");

Spécifiez un état d'orientation initial et sa covariance.

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

Créez une structure de bruit de mesure à l'aide de la fonction tunernoise .

mnoise = tunernoise(filter);

Créez un objet tunerconfig à l'aide de la fonction de coût créée.

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

Réglez le filtre. Afficher le bruit de mesure réglé et le bruit de processus dans le filtre.

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

Arguments d'entrée

réduire tout

Filtre INS, spécifié comme objet insEKF .

Historique des versions

Introduit dans R2022a