码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 关于如何调节Mahony AHRS算法的参数


    文章目录

      • 一、Mahony算法的控制系统特征多项式
      • 二、Kp, Ki参数调节方法
      • 三、自适应调参

    我在之前的博客AHRS互补滤波(Mahony)算法及开源代码中曾提及Mahony算法的难点在于如何调节PI参数。

    最近看到参考文献[1],提出了基于无阻尼自由频率设计设置Kp、Ki参数,并根据加速度模值切换参数;以及严恭敏老师的文章Mahony航姿算法的参数调节方法,提出了基于时间常数或者无阻尼自由频率来设置Kp, Ki参数。这篇博客主要是对这两篇文章内容的整理与理解。

    一、Mahony算法的控制系统特征多项式

    参考文献[1]中给出了Mahony算法的控制系统方程,如下图中公式(7)所示。把 ϕ m \phi{_m} ϕm​整理出来就是它的传递函数,形式和公式(8)基本长一样,特征多项式为 s 2 + K p s + K i s^2+K_p{s}+K_i s2+Kp​s+Ki​。这也是严老师“捷联惯导算法与组合导航原理-附录练习题”第49题的第一问,即验证Mahony算法控制系统特征多项式为 s 2 + K p s + K i s^2+K_p{s}+K_i s2+Kp​s+Ki​。

    在这里插入图片描述

    二、Kp, Ki参数调节方法

    (1)文献1:
    如下图所示,根据特征多项式,通常认为当阻尼比为0.707时稳态响应最好(超调为4.3%),所以采用公式(10)和(11)来设置Kp和Ki,其实只需要设置一个参数,也就是无阻尼自由频率。

    在这里插入图片描述
    在设置自然频率的时候,我觉得可以考虑调节时间ts(进入2%或者5%误差带的时间)来进行设置,调节时间与自然频率的关系如下:
    在这里插入图片描述

    (2)严恭敏老师在文章中提及:
    在这里插入图片描述

    严老师所说的设置阻尼比的方法和文献1中的方法一致。关于设置时间常数的方法中,为什么beta=2.146/tau,参数2.146的来源如下:

    在这里插入图片描述
    在这里插入图片描述

    三、自适应调参

    (1)文献1:
    由于当载体有加速度的时候,利用加速度对姿态进行反馈修正存在一定的误差,应该适当地对权重进行调整。文献1中提出了下图中的方法,将加速度输出和重力加速度做对比,判定载体的动态性,从而对wn进行调整。

    在这里插入图片描述

    (2)其他参考:
    在参考[3]中提到:

    “关于这一块,现在研究的比较多就是如何实现自适应调参。固定的参数不能获得所有情况下的最优运动姿态角,可以设计参数可调的自适应算法在不同运动状态下进行调节参数的大小。其参数调节规则为:正常运动状态情况下,Kp和Ki值取为系统初始化值;当运动体具有较大运动加速度或姿态变化剧烈时,应选择较小的Kp值(可取其初始化值的0.1倍),而Ki值应在同一数量级内适当取大一点。具体取值需根据实际应用系统选取。”

    参考文献
    [1] Gain-Scheduled Complementary Filter Design for a MEMS Based Attitude and Heading Reference System
    [2] Mahony航姿算法的参数调节方法
    [3] 基于AHRS的三类姿态解算算法对比(含代码)-基于手机端惯性传感器的航迹推算算法(下)

  • 相关阅读:
    Java实现桥接模式(设计模式 五)
    车载软件架构 --- SOA设计与应用(中)
    软件架构设计(六) 软件架构风格-MDA(模型驱动架构)
    【Linux】centos 7.2 max user processes修改不生效
    Window 10安装MySQL 5.7
    mysql 触发器
    单细胞分析:细胞聚类(十)
    pytorch geometric(PYG) - NeighborSampler
    ChIP-seq应用领域、研究思路、数据挖掘、下游实验、实验关键 | 易讲堂
    Golang面试笔试基础篇:从基础语法考察入手(一)
  • 原文地址:https://blog.csdn.net/weixin_42918498/article/details/127973581
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号