主要内容gydF4y2Ba

complementaryFiltergydF4y2Ba

使用互补滤波器估计取向gydF4y2Ba

自从R2019bgydF4y2Ba

描述gydF4y2Ba

的gydF4y2BacomplementaryFiltergydF4y2Ba系统对象™融合加速度计、陀螺仪和磁力计传感器数据来估计设备方向和角速度。gydF4y2Ba

使用这个对象来估计取向:gydF4y2Ba

  1. 创建gydF4y2BacomplementaryFiltergydF4y2Ba对象并设置其属性。gydF4y2Ba

  2. 调用对象的参数,就好像它是一个函数。gydF4y2Ba

了解更多关于系统对象是如何工作的,看到的gydF4y2Ba系统对象是什么?gydF4y2Ba

创建gydF4y2Ba

描述gydF4y2Ba

保险丝gydF4y2Ba= complementaryFiltergydF4y2Ba返回一个gydF4y2BacomplementaryFiltergydF4y2Ba系统对象,gydF4y2Ba保险丝gydF4y2Ba传感器融合的加速度计、陀螺仪和磁强计数据来估计设备方向和角速度。gydF4y2Ba

保险丝gydF4y2Ba= complementaryFilter (gydF4y2Ba“ReferenceFrame”gydF4y2Ba,gydF4y2Ba射频gydF4y2Ba)gydF4y2Ba返回一个gydF4y2BacomplementaryFiltergydF4y2Ba系统对象融合加速度计、陀螺仪和磁强计的数据来估计设备方向相对于参考系gydF4y2Ba射频gydF4y2Ba。指定gydF4y2Ba射频gydF4y2Ba作为gydF4y2BaNED的gydF4y2Ba(North-East-Down)或gydF4y2Ba“ENU表示”gydF4y2Ba(East-North-Up)。默认值是gydF4y2BaNED的gydF4y2Ba。gydF4y2Ba

例子gydF4y2Ba

保险丝gydF4y2Ba= complementaryFilter (gydF4y2Ba___gydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba每个属性集gydF4y2Ba的名字gydF4y2Ba到指定的gydF4y2Ba价值gydF4y2Ba。未指定的属性有默认值。gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

属性,除非另有注明gydF4y2BanontunablegydF4y2Ba后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,gydF4y2Ba释放gydF4y2Ba函数打开它们。gydF4y2Ba

如果一个属性gydF4y2Ba可调gydF4y2Ba在任何时候,你可以改变它的值。gydF4y2Ba

改变属性值的更多信息,请参阅gydF4y2Ba系统设计在MATLAB使用系统对象gydF4y2Ba。gydF4y2Ba

输入采样率的赫兹传感器数据,指定为一个积极的标量。gydF4y2Ba

可调:gydF4y2Ba没有gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

加速度计,指定为一个真正的标量在[0,1]。获得决定了加速度计测量陀螺仪测量取向估计是可信的。这个属性是可调的。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

磁强计收益,指定为一个真正的标量在[0,1]。磁强计测量的增益决定了信任在陀螺仪测量定位估计。这个属性是可调的。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

使磁强计输入、指定为gydF4y2Ba真正的gydF4y2Ba或gydF4y2Ba假gydF4y2Ba。gydF4y2Ba

数据类型:gydF4y2Ba逻辑gydF4y2Ba

面向输出格式,指定为gydF4y2Ba“四元数”gydF4y2Ba或gydF4y2Ba旋转矩阵的gydF4y2Ba。产量的大小取决于面向输出格式:gydF4y2Ba

  • “四元数”gydF4y2Ba——输出一个gydF4y2BaNgydF4y2Ba1gydF4y2Ba四元数gydF4y2Ba。gydF4y2Ba

  • 旋转矩阵的gydF4y2Ba——是一个3-by-3-by——输出gydF4y2BaNgydF4y2Ba旋转矩阵。gydF4y2Ba

NgydF4y2Ba是样品的数量。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

使用gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

(gydF4y2Ba取向gydF4y2Ba,gydF4y2BaangularVelocitygydF4y2Ba)=保险丝(gydF4y2BaaccelReadingsgydF4y2Ba,gydF4y2BagyroReadingsgydF4y2Ba,gydF4y2BamagReadingsgydF4y2Ba)gydF4y2Ba融合加速度计、陀螺仪和磁强计的数据来计算方向和角速度。使用这个语法,设置gydF4y2BaHasMagnetometergydF4y2Ba财产gydF4y2Ba真正的gydF4y2Ba。gydF4y2Ba

(gydF4y2Ba取向gydF4y2Ba,gydF4y2BaangularVelocitygydF4y2Ba)=保险丝(gydF4y2BaaccelReadingsgydF4y2Ba,gydF4y2BagyroReadingsgydF4y2Ba)gydF4y2Ba融合加速度计和陀螺仪数据计算方向和角速度。使用这个语法,设置gydF4y2BaHasMagnetometergydF4y2Ba财产gydF4y2Ba假gydF4y2Ba。gydF4y2Ba

输入参数gydF4y2Ba

全部展开gydF4y2Ba

加速度计读数传感器体坐标系中m / sgydF4y2Ba2gydF4y2Ba指定为一个gydF4y2BaNgydF4y2Ba3矩阵。gydF4y2BaNgydF4y2Ba样品的数量,三列的gydF4y2BaaccelReadingsgydF4y2Ba代表(gydF4y2BaxgydF4y2BaygydF4y2BazgydF4y2Ba)测量。加速度计读数被认为对应于指定的采样率gydF4y2BaSampleRategydF4y2Ba财产。过滤器,引力常数gydF4y2BaggydF4y2Ba被假定为gydF4y2Ba9.81gydF4y2Ba米/秒gydF4y2Ba2gydF4y2Ba。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

陀螺仪读数传感器体坐标系在rad / s,指定为一个gydF4y2BaNgydF4y2Ba3矩阵。gydF4y2BaNgydF4y2Ba样品的数量,三列的gydF4y2BagyroReadingsgydF4y2Ba代表(gydF4y2BaxgydF4y2BaygydF4y2BazgydF4y2Ba)测量。陀螺仪数据被认为对应于指定的采样率gydF4y2BaSampleRategydF4y2Ba财产。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

磁强计读数在µT传感器体坐标系中,指定为一个gydF4y2BaNgydF4y2Ba3矩阵。gydF4y2BaNgydF4y2Ba样品的数量,三列的gydF4y2BamagReadingsgydF4y2Ba代表(gydF4y2BaxgydF4y2BaygydF4y2BazgydF4y2Ba)测量。磁强计读数被认为对应于指定的采样率gydF4y2BaSampleRategydF4y2Ba财产。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

输出参数gydF4y2Ba

全部展开gydF4y2Ba

方向旋转量从本地导航坐标系坐标系统,作为四元数或数组返回。的大小和类型gydF4y2Ba取向gydF4y2Ba取决于gydF4y2BaOrienationFormatgydF4y2Ba属性设置为gydF4y2Ba“四元数”gydF4y2Ba或gydF4y2Ba旋转矩阵的gydF4y2Ba:gydF4y2Ba

  • “四元数”gydF4y2Ba——输出是一个gydF4y2BaNgydF4y2Ba四元数1的向量,gydF4y2BaNgydF4y2Ba是样品的数量。gydF4y2Ba

  • 旋转矩阵的gydF4y2Ba——输出3-by-3-by -gydF4y2BaNgydF4y2Ba旋转矩阵的数组,gydF4y2BaNgydF4y2Ba是样品的数量。gydF4y2Ba

数据类型:gydF4y2Ba四元数gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

角速度传感器体坐标系中表达在rad / s,作为一个返回gydF4y2BaNgydF4y2Ba3组,gydF4y2BaNgydF4y2Ba是样品的数量。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

对象的功能gydF4y2Ba

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名gydF4y2BaobjgydF4y2Ba使用这个语法:gydF4y2Ba

发行版(obj)gydF4y2Ba

全部展开gydF4y2Ba

一步gydF4y2Ba 运行gydF4y2Ba系统对象gydF4y2Ba算法gydF4y2Ba
释放gydF4y2Ba 释放资源,并允许修改gydF4y2Ba系统对象gydF4y2Ba属性值和输入特征gydF4y2Ba
重置gydF4y2Ba 重置的内部状态gydF4y2Ba系统对象gydF4y2Ba
克隆gydF4y2Ba 创建重复的gydF4y2Ba系统对象gydF4y2Ba
isLockedgydF4y2Ba 确定gydF4y2Ba系统对象gydF4y2Ba在使用gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

加载gydF4y2Barpy_9axisgydF4y2Ba文件,其中包含记录加速度计、陀螺仪和磁力计传感器数据从一个设备振动在音高(约gydF4y2BaygydF4y2Ba设在),然后偏航(约gydF4y2BazgydF4y2Ba设在),然后卷(约gydF4y2BaxgydF4y2Ba设在)。该文件还包含记录的采样率。gydF4y2Ba

ld =负载(gydF4y2Ba“rpy_9axis.mat”gydF4y2Ba);accel = ld.sensorData.Acceleration;陀螺= ld.sensorData.AngularVelocity;杂志= ld.sensorData.MagneticField;gydF4y2Ba

创建一个互补滤波器对象与采样率等于数据的频率。gydF4y2Ba

Fs = ld.Fs;gydF4y2Ba%赫兹gydF4y2Ba保险丝= complementaryFilter (gydF4y2Ba“SampleRate”gydF4y2BaFs);gydF4y2Ba

融合加速度计、陀螺仪和磁强计数据使用过滤器。gydF4y2Ba

q =保险丝(accel、陀螺、杂志);gydF4y2Ba

可视化结果。gydF4y2Ba

情节(eulerd (q,gydF4y2Ba“ZYX股票”gydF4y2Ba,gydF4y2Ba“帧”gydF4y2Ba));标题(gydF4y2Ba取向估计的gydF4y2Ba);传奇(gydF4y2Ba“Z-rotation”gydF4y2Ba,gydF4y2Ba“Y-rotation”gydF4y2Ba,gydF4y2Ba“X-rotation”gydF4y2Ba);ylabel (gydF4y2Ba“度”gydF4y2Ba);gydF4y2Ba

图包含一个坐标轴对象。坐标轴对象与标题定位估计,ylabel度包含3线类型的对象。这些对象代表Z-rotation, Y-rotation X-rotation。gydF4y2Ba

引用gydF4y2Ba

[1]瓦伦蒂,R。,I. Dryanovski, and J. Xiao. "Keeping a good attitude: A quaternion-based orientation filter for IMUs and MARGs."传感器。gydF4y2Ba第8卷。15日,2015年,页19302 - 19330。gydF4y2Ba

扩展功能gydF4y2Ba

C / c++代码生成gydF4y2Ba
生成C和c++代码使用MATLAB®编码器™。gydF4y2Ba

版本历史gydF4y2Ba

介绍了R2019bgydF4y2Ba

另请参阅gydF4y2Ba

|gydF4y2Ba