insfilter

Создайте инерционный фильтр навигации

Синтаксис

filt = insfilter
filt = insfilter(type)
filt = insfilter(Name,Value)

Описание

filt = insfilter возвращает инерционный объект фильтра навигации, который оценивает положение на основе акселерометра, гироскопа, GPS и измерений магнитометра.

пример

filt = insfilter(type) возвращает инерционный фильтр навигации на основе type.

пример

filt = insfilter(Name,Value) возвращает инерционный фильтр навигации, сконфигурированный аргументами пары "имя-значение".

Примеры

свернуть все

Можно задать тип фильтра INS, чтобы создать путем определения пар "имя-значение" как true или false. Например, чтобы создать объект NHConstrainedIMUFuser по умолчанию, задайте NonholonomicHeading как true, Magnetometer как false, AsyncIMU как false и ErrorState как false.

nhFilter = insfilter('NonholonomicHeading',true, ...
                     'Magnetometer',false, ...
                     'AsyncIMU',false, ...
                     'ErrorState',false)
nhFilter = 

  NHConstrainedIMUGPSFuser with properties:

        IMUSampleRate: 100        Hz         
    ReferenceLocation: [0 0 0]    [deg deg m]
     DecimationFactor: 2                     

   Extended Kalman Filter Values
              State: [16x1 double]     
    StateCovariance: [16x16 double]    

   Process Noise Variances
                  GyroscopeNoise: [4.8e-06 4.8e-06 4.8e-06]    (rad/s)²
              AccelerometerNoise: [0.048 0.048 0.048]          (m/s²)² 
              GyroscopeBiasNoise: [4e-14 4e-14 4e-14]          (rad/s)²
        GyroscopeBiasDecayFactor: 0.999                                
          AccelerometerBiasNoise: [4e-14 4e-14 4e-14]          (m/s²)² 
    AccelerometerBiasDecayFactor: 0.9999                               

   Measurement Noise Variances
    ZeroVelocityConstraintNoise: 0.01    (m/s)²

Можно также создать фильтр путем определения минимального количества требуемых параметров не по умолчанию. По умолчанию AsyncIMU и ErrorState является false, таким образом, вы не должны задавать их, чтобы создать NHConstrainedIMUGPSFuser.

nhFilter = insfilter('NonholonomicHeading',true, ...
                     'Magnetometer',false)
nhFilter = 

  NHConstrainedIMUGPSFuser with properties:

        IMUSampleRate: 100        Hz         
    ReferenceLocation: [0 0 0]    [deg deg m]
     DecimationFactor: 2                     

   Extended Kalman Filter Values
              State: [16x1 double]     
    StateCovariance: [16x16 double]    

   Process Noise Variances
                  GyroscopeNoise: [4.8e-06 4.8e-06 4.8e-06]    (rad/s)²
              AccelerometerNoise: [0.048 0.048 0.048]          (m/s²)² 
              GyroscopeBiasNoise: [4e-14 4e-14 4e-14]          (rad/s)²
        GyroscopeBiasDecayFactor: 0.999                                
          AccelerometerBiasNoise: [4e-14 4e-14 4e-14]          (m/s²)² 
    AccelerometerBiasDecayFactor: 0.9999                               

   Measurement Noise Variances
    ZeroVelocityConstraintNoise: 0.01    (m/s)²

Можно создать определенный объект фильтра INS путем определения строки для аргумента type. Создайте AsyncMARGGPSFuser путем вызывания функции insfilter с "asyncimu".

filter = insfilter("asyncimu")
filter = 
  AsyncMARGGPSFuser with properties:

    ReferenceLocation: [0 0 0]           [deg deg m]
                State: [28x1 double]                
      StateCovariance: [28x28 double]               

   Additive Process Noise Variances
           QuaternionNoise: [1x4 double]                      
      AngularVelocityNoise: [0.005 0.005 0.005]       (rad/s)²
             PositionNoise: [1e-06 1e-06 1e-06]       m²      
             VelocityNoise: [1e-06 1e-06 1e-06]       (m/s)²  
         AccelerationNoise: [50 50 50]                (m/s²)² 
        GyroscopeBiasNoise: [1e-10 1e-10 1e-10]       (rad/s)²
    AccelerometerBiasNoise: [0.0001 0.0001 0.0001]    (m/s²)² 
    GeomagneticVectorNoise: [1e-06 1e-06 1e-06]       uT²     
     MagnetometerBiasNoise: [0.1 0.1 0.1]             uT²     

Чтобы задать ErrorStateIMUGPSFuser, вызовите insfilter с "errorstate".

filter = insfilter("errorstate")
filter = 
  ErrorStateIMUGPSFuser with properties:

        IMUSampleRate: 100               Hz         
    ReferenceLocation: [0 0 0]           [deg deg m]
                State: [17x1 double]                
      StateCovariance: [16x16 double]               

   Process Noise Variances
            GyroscopeNoise: [1e-06 1e-06 1e-06]       (rad/s)²
        AccelerometerNoise: [0.0001 0.0001 0.0001]    (m/s²)² 
        GyroscopeBiasNoise: [1e-09 1e-09 1e-09]       (rad/s)²
    AccelerometerBiasNoise: [0.0001 0.0001 0.0001]    (m/s²)² 

Фильтр INS по умолчанию является объектом MARGGPSFuser. Вызовите insfilter без входных параметров, чтобы создать фильтр INS по умолчанию.

filter = insfilter
filter = 

  MARGGPSFuser with properties:

        IMUSampleRate: 100               Hz         
    ReferenceLocation: [0 0 0]           [deg deg m]
                State: [22x1 double]                
      StateCovariance: [22x22 double]               

   Multiplicative Process Noise Variances
            GyroscopeNoise: [1e-09 1e-09 1e-09]       (rad/s)²
        AccelerometerNoise: [0.0001 0.0001 0.0001]    (m/s²)² 
        GyroscopeBiasNoise: [1e-10 1e-10 1e-10]       (rad/s)²
    AccelerometerBiasNoise: [0.0001 0.0001 0.0001]    (m/s²)² 

   Additive Process Noise Variances
    GeomagneticVectorNoise: [1e-06 1e-06 1e-06]    uT²
     MagnetometerBiasNoise: [0.1 0.1 0.1]          uT²

Входные параметры

свернуть все

Можно создать объект фильтра INS путем определения типа фильтра, или путем определения пар "имя-значение".

Поддерживаемые настройки

typeПара "имя-значение"Объект фильтраОтфильтруйте описание
 

NonholonomicHeading

Magnetometer

AsyncIMU

ErrorState

  
'marg'falsetruefalsefalseMARGGPSFuser

Изложите оценку с помощью расширенного Фильтра Калмана на основе акселерометра, гироскопа, GPS и входа магнитометра.

'asyncimu'falsetruetruefalseAsyncMARGGPSFuser

Изложите оценку с помощью расширенного непрерывно-дискретного Фильтра Калмана на основе акселерометра, гироскопа, GPS и входа магнитометра.

'nonholonomic'truefalsefalsefalseNHConstrainedIMUGPSFuser

Изложите оценку с помощью расширенного Фильтра Калмана на основе акселерометра, гироскопа и входа GPS с ограничениями на скорость в боковых и вертикальных осях тела.

'errorstate'falsefalsefalsetrueErrorStateIMUGPSFuser

Изложите оценку с помощью Фильтра Калмана состояния ошибки на основе акселерометра, гироскопа, GPS и монокулярного визуального входа одометрии.

Тип INS фильтрует, чтобы создать, заданный как "marg", "asyncimu", "nonholonomic" или "errorstate".

Типы данных: char | string

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: "NonholonomicHeading",true

Создайте фильтр с неголономными ограничениями заголовка, заданными как пара, разделенная запятой 'NonholonomicHeading' и true или false.

Типы данных: логический

Создайте фильтр, который использует показания магнитометра, заданные как пара, разделенная запятой 'Magnetometer' и true или false.

Типы данных: логический

Создайте непрерывно-дискретный фильтр, заданный как пара, разделенная запятой 'Magnetometer' и true или false.

Типы данных: логический

Создайте Фильтр Калмана состояния ошибки, который использует визуальные данные об одометрии, заданные как пара, разделенная запятой 'ErrorState' и true или false.

Типы данных: логический

Выходные аргументы

свернуть все

Инерционный фильтр навигации, возвращенный как MARGGPSFuser, NHConstrainedIMUGPSFuser, AsyncMARGGPSFuser или объект ErrorStateIMUGPSFuser.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2018b