4轴开发之串级PID调试技巧

2023-05-16


欢迎查看我原始的出处:http://lindue.com/17868.html

【调节串环PID大概过程(注意修正反向)】

 

1、估计大概的起飞油门。

 

2、调整角速度内环参数。

 

3、将角度外环加上,调整外环参数。

 

4、横滚俯仰参数一般可取一致,将飞机解绑,抓在手中测试两个轴混合控制的效果(注意安全),有问题回到“烤四轴”继续调整,直至飞机在手中不会抽搐。

 

5、大概设置偏航参数(不追求动态响应,起飞后头不偏即可),起飞后再观察横滚和俯仰轴向打舵的反应,如有问题回到“烤四轴”。

 

6、横滚和俯仰ok以后,再调整偏航轴参数以达到好的动态效果。

 

*/

 

/*

【过程详解】

 

1、要在飞机的起飞油门基础上进行PID参数的调整,否则“烤四轴”的时候调试稳定了,飞起来很可能又会晃荡。

 

2、内环的参数最为关键!理想的内环参数能够很好地跟随打舵(角速度控制模式下的打舵)控制量。

在平衡位置附近(正负30度左右),舵量突加,飞机快速响应;舵量回中,飞机立刻停止运动(几乎没有回弹和震荡)。

2.1首先改变程序,将角度外环去掉,将打舵量作为内环的期望(角速度模式,在APM中叫ACRO模式,在大疆中叫手动模式)。

2.2加上PP太小,不能修正角速度误差表现为很“软”倾斜后难以修正,打舵响应也差。P太大,在平衡位置容易震荡,

打舵回中或给干扰(用手突加干扰)时会震荡。合适的P能较好的对打舵进行响应,又不太会震荡,但是舵量回中后会回弹好几下才能停止(没有D)。

2.3加上DD的效果十分明显,加快打舵响应,最大的作用是能很好地抑制舵量回中后的震荡,可谓立竿见影。

太大的D会在横滚俯仰混控时表现出来(尽管在“烤四轴”时的表现可能很好),具体表现是四轴抓在手里推油门会抽搐。

如果这样,只能回到“烤四轴”降低D,同时P也只能跟着降低。D调整完后可以再次加大P值,以能够跟随打舵为判断标准。

2.4加上I,会发现手感变得柔和了些。由于笔者“烤四轴”的装置中四轴的重心高于旋转轴,这决定了在四轴偏离水平位置后

会有重力分量使得四轴会继续偏离平衡位置。I的作用就可以使得在一定角度范围内(30度左右)可以修正重力带来的影响。

表现打舵使得飞机偏离平衡位置,舵量回中后飞机立刻停止转动,若没有I或太小,飞机会由于重力继续转动。

 

3、角度外环只有一个参数P。将外环加上(在APM中叫Stabilize模式,在大疆中叫姿态模式)。打舵会对应到期望的角度。

P的参数比较简单。太小,打舵不灵敏,太大,打舵回中易震荡。以合适的打舵反应速度为准。

 

4、至此,烤四轴”效果应该会很好了,但是两个轴混控的效果如何还不一定,有可能会抽(两个轴的控制量叠加起来,

特别是较大的D,会引起抽搐)。如果抽了,降低PD的值,I基本不用变。

 

5、加上偏航的修正参数后(直接给双环参数,角度外环P和横滚差不多,内环P比横滚大些,I和横滚差不多,D可以先不加),

拿在手上试过修正和打舵方向正确后可以试飞了(试飞很危险!!!!选择在宽敞、无风的室内,1米的高度(高度太低会有地面效应干扰,

太高不容易看清姿态且容易摔坏),避开人群的地方比较适合,如有意外情况,立刻关闭油门!!!

5.1试飞时主要观察这么几个方面的情况,一般经过调整的参数在平衡位置不会大幅度震荡,需要观察:

5.1.1在平衡位置有没有小幅度震荡(可能是由于机架震动太大导致姿态解算错误造成。也可能是角速度内环D的波动过大,

前者可以加强减震措施,传感器下贴上3M胶,必要时在两层3M泡沫胶中夹上“减震板”,注意:铁磁性的减震板会干扰磁力计读数;

后者可以尝试降低D项滤波的截止频率)。

5.1.2观察打舵响应的速度和舵量回中后飞机的回复速度。

5.1.3各个方向(记得测试右前,左后等方向)大舵量突加输入并回中时是否会引起震荡。

如有,尝试减小内环PD也可能是由于“右前”等混控方向上的舵量太大造成。

 

6、横滚和俯仰调好后就可以调整偏航的参数了。合适参数的判断标准和之前一样,打舵快速响应,舵量回中飞机立刻停止转动(参数D的作用)。


如果须要查找更多相关资料,请登录http://lindue.com

微博:http://weibo.com/devlopment

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

4轴开发之串级PID调试技巧 的相关文章

  • LADRC的学习——用simulink搭建仿真模型

    作者 墨心 时间 2019 7 25 用simulink搭建仿真模型 前面两篇博客主要讲了ADRC的相关概念和知识 并且尝试着搭建模型和仿真 之后学习了PID的相关知识 了解了Kp Ki Kd三个参数的意义 接下来 主要根据高志强教授的论文
  • 基于卡尔曼滤波进行四旋翼动力学建模(Simulink&Matlab)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 文献来源 摘要 由于近年来民用和军事领域对
  • 端口被占用怎么办?关闭占用端口的进程

    当你发现某个端口被占用时 但不知道是哪一个进程占用了端口 需要关闭占用该端口的进程 1 启动系统命令行 windows系统 win r 2 输入命令 netstat ano 可查看所有端口的使用情况 netstat aon findstr
  • PID稳压

    思路说明 我们设置一个目标值 这是我们要调节的目标 我们通过AD采样 PC3 采集到当前电压 通过减法运算我们得出当前电压与目标电压的差值 接下来我们只要发现当前电压与目标电压不同 我们就要想办法改变当前单片机的输出电压 PA8 也就是当前
  • 基于MATLAB的模糊pi控制器的设计

    基于MATLAB的模糊pi控制器的设计 模糊规则隶属函数的建立 a newfis fuzzypid 添加第一个输入变量e a addvar a input e 1 1 a addmf a input 1 N zmf 1 1 3 a addm
  • PID自控理论(频域bode图理论分析)

    PID 迟后超前矫正 临界比例度法整定PID 在低频区 主要是PI控制器起作用 用以提高系统型别消除或减小稳态误差 在中 高频区 主要是PD控制器起作用 用以增大幅值穿越频率和相位裕度 提高系统的响应速度 因此 PID控制器可以全面地提高系
  • 深入浅出PID控制算法(二)————PID算法离散化和增量式PID算法原理及Matlab实现

    引言 上篇介绍了连续系统的PID算法 但是计算机控制是一种采样控制 他只能根据采样时刻的偏差来计算控制量 因此计算机控制系统中 必须对公式进行离散化 具体就是用求和代替积分 用向后差分来代替微分 使模拟PID离散化为数字形式的差分方程 准备
  • 深入浅出PID控制算法(三)————增量式与位置式PID算法的C语言实现与电机控制经验总结

    前文对PID算法离散化和增量式PID算法原理进行来探索 之后又使用Matlab进行了仿真实验 对PID三个参数又有了更深入的认识 接下来我们来使用C语言进行PID算法实现 并且结合控制电机的项目来深入学习 1 PID 算法C 语言原代码 先
  • 【平衡小车制作】(一)硬件原理图讲解(超详解)

    大家好 我是小政 之后的一系列文章我将介绍我玩平衡小车的过程以及遇到的一些问题 将这些内容记录下来分享给大家 也让大家少走一些弯路 接下来我将从硬件框架选择 软件编程 PID算法 PID调参 蓝牙遥控这五个部分向大家讲解平衡小车的制作过程
  • PID控制算法01

    PID控制算法 PID控制算法公式 原理 参数作用 PID算法及改进 两个基本类型 位置型PID控制 增量型PID控制 积分环节改进的PID控制 积分分离的PID控制 变速积分的PID控制 抗积分饱和的PID控制 微分环节改进的PID控制
  • docker和主机之间的PID映射

    docker 命名空间与主机命名空间有何不同以及 pid 如何在这两者之间映射 谁能给我一个想法 有助于使用源代码在主机和 docker 之间映射 pid 的简单方法 您可以在中找到映射 proc PID status文件 它包含这样一行
  • C++ 在 Windows 中发送简单信号

    Windows 上是否有相当于kill 的函数 int kill pid t pid int sig 如果没有 是否可以根据进程的 PID 来测试进程是否正在运行 Thanks Windows 没有 Unix 意义上的信号 您可以使用Ope
  • Java程序如何获得自己的进程ID?

    如何获取我的 Java 进程的 ID 我知道有几种依赖于平台的技巧 但我更喜欢更通用的解决方案 不存在可以保证在所有 jvm 实现中工作的独立于平台的方法 ManagementFactory getRuntimeMXBean getName
  • 如何在 OSX 10.9 中从 ProcessSerialNum 获取 PID?

    GetProcessPID在 OSX 10 9 中被标记为已弃用 并附有注释 使用适当的 processIdentifier 属性 NSRunningApplication 对象 问题是构造类方法NSRunningApplication没有
  • Ubuntu Java:查找特定程序的 pid 并终止该程序

    我正在尝试创建一个应用程序来检查此特定应用程序是否正在运行 然后在指定的时间后终止该应用程序 我打算获取应用程序的 pid 如何获取应用程序的 pid Thanks 你可以尝试ps aux grep foobar获取 pid 然后发出kil
  • os.kill 没有引发 OSError,但是我没有看到给定的 pid 正在运行

    在我的 ubuntu 服务器上运行以下命令 python c import os os kill 5555 0 这样做是为了查看 pid 5555 是否正在运行 根据我的理解 如果 pid 没有运行 这应该会引发 OSError 这不会对我
  • 查看用户最近执行的Android任务

    我想查看我的 Android 手机最近的任务 我尝试了一些来自互联网的代码 但没有一个能正常工作 我只想获取用户最后执行的应用程序的PID和名称 例如 如果我执行计算器应用程序 然后执行我创建的最近任务应用程序 则该应用程序应该能够告诉我类
  • Mysql 连接到服务器:用户 root@localhost 的访问被拒绝

    edit9 是否有可能我只是缺少文件夹的一些权限 我真的非常非常感谢更多的建议 edit3 由于这篇文章没有得到足够的回复 而且这绝对是至关重要的 我尽快完成这件事 我重建了我的帖子以显示我认为到目前为止我已经扣除的内容 注意 通过许多不同
  • 如何在bash中列出所有后台pid

    要么我无法正确表达我的搜索 要么答案不容易找到 但我正在尝试找出如何列出我的所有后台任务 PID 例如 到目前为止 我发现要列出我们使用的最后一个 PID 但现在我想列出之前任务的 PID 如果存在 但我找不到如何做到这一点 最终我想列出我
  • docker 容器无法启动,因为现有的 pid 文件

    当我启动 docker 容器时 它会失败 因为现有的 pid 文件 root newhope sergio docker logs sharp shockley httpd pid 1 already running httpd pid 1

随机推荐

  • 【Heydrones】飞手百科第一篇:一定要看的无人机原理总结

    飞手百科 知识是最好的保险 本文目录 1 xff0c 无人机的飞行原理 2 xff0c 无人机的几大系统 3 xff0c 无人机的外观介绍 4 xff0c 无人机的专业术语 xff08 一 xff09 无人机的飞行原理 旋翼和轮子一样 xf
  • 【Tars】腾讯微服务框架Tars介绍

    目录 1 介绍2 设计思路3 整体架构4 平台特性 1 介绍 Tars是 基于名字服务 使用Tars协议 的高性能 RPC 开发框架 xff0c 同时配套一体化的 服务治理平台 xff0c 帮助个人或者企业快速的以微服务的方式构建自己稳定可
  • C++11常用新特性快速一览

    最近工作中 xff0c 遇到一些问题 xff0c 使用C 43 43 11实现起来会更加方便 xff0c 而线上的生产环境还不支持C 43 43 11 xff0c 于是决定新年开工后 xff0c 在组内把C 43 43 11推广开来 xff
  • 语法糖:萃取lambda表达式

    背景 现在手头主负责的服务代码 xff0c 基本上都用C 43 43 11来开发了 xff0c 异步编程使用的是TAF的future promise future的then函数 xff0c 接受的是一个Callback对象 xff0c 该对
  • hashmap C++实现分析

    一 简介 Map 是 Key Value 对映射的抽象接口 xff0c 该映射不包括重复的键 xff0c 即一个键对应一个值 在HashMap中 xff0c 其会根据hash算法来计算key value的存储位置并进行快速存取 本文介绍的C
  • SpringMVC(04) -- SpringMVC获取请求参数

    SpringMVC学习笔记 源码地址 4 1 xff09 通过ServletAPI获取 将HttpServletRequest作为控制器方法的形参 xff0c 此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的
  • docker删除所有容器/镜像

    1 想要删除容器 xff0c 则要先停止所有容器 xff08 当然 xff0c 也可以加 f强制删除 xff0c 但是不推荐 xff09 xff1a docker stop docker ps a q 2 删除所有容器 docker rm
  • php中常见的几种设计模式

    1 单例模式 单例模式可以说是面向对象语言里最常用 也是最简单的一种模式 单例就是单个实例 xff0c 单个对象的意思 xff0c 就是说我们去实例化一个类的时候 xff0c 不管调用多少次 xff0c 都永远只有一个实例 不会有多个 xf
  • Ubuntu查看文件大小或文件夹大小

    一 查看文件大小 查看文件大小的命令 xff1a ls l filename 会在终端输出 xff1a rw r r 1 root root 2147483648 Mar 5 09 39 filetemp0606 其中数字214748364
  • Git 遇到了 The remote end hung up unexpectedly -- early EOF -- index-pack failed 问题

    Git 遇到了 The remote end hung up unexpectedly early EOF index pack failed 问题 今天想 clone 在 gitlab 的 repo xff0c 结果在 clone 的过程
  • 【Docker】在Docker容器中运行VScode

    原文链接 xff1a 容器中的远程开发 Prerequisites VScodeDocker Desktop Steps 打开Docker xff1a 在Windows下出现鲸鱼图标且图标静止则打开成功 xff1b 检查Docker xff
  • github 常用命令汇总 更新代码和子模块的代码

    针对PX4代码 xff0c 在github库中建立了Firmware的分支 xff0c ADRC branch xff0c 用于存放修改的代码 xff0c 其中涉及了子模块ecl的修改 代码下载 xff1a git clone https
  • C、C++多线程编程

    本文的笔记来自于b站视频的爱编程的大丙 xff0c 博客链接 xff1a https subingwen cn xff0c 有做了相应的补充 xff01 一 线程概述 进程对应的虚拟地址空间的各个分区如图 xff1a 每个进程的虚拟地址空间
  • 【x86架构】中断基础介绍

    说明 本文讲的是Intel的x86架构下的中断 参考的文档主要如下所示 xff1a 64 ia 32 architectures software developer manual pdf PCI Express体系结构导读 x86 x64
  • Java中的this有哪四种用法

    JAVA中的this是一个非常重要的模块 在编程中有非常重要的地位 擅长用this的人常常可以使程序更加简洁和方便 今天来了解一下this的用法 java中this关键字必须放在非静态方法里面 xff0c this关键字代表自身 xff0c
  • 线程不执行delegate,防止线程结束

    如果我们将NSURLConnection放在线程中 xff0c 是不是delegate方法总是不会触发 xff1f 原因就是由于线程结束了 解决方法就是让线程在数据返回之前不结束 1 可以在线程中加一个timer防止结束 xff0c 这方法
  • vscode 配置 git (配置、暂存、推送、拉取、免密)

    前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 vscode 中对 git 进行了集成 xff0c 很多操作只需点击就能操作 xff0c 无需写一些 gi
  • 计算机视觉3 SIFT特征提取与全景图像拼接

    1 原理 检测并提取图像的特征和关键点匹配两个图像之间的描述符使用RANSAC算法使用我们匹配的特征向量估计单应矩阵拼接图像 步骤一和步骤二过程是运用SIFT局部描述算子检测图像中的关键点和特征 xff0c SIFT特征是基于物体上的一些局
  • 高超声速滑翔飞行器摆动式机动突防弹道设计(源代码)

    谢愈 xff0c 刘鲁华等 xff0c 高超声速滑翔飞行器摆动式机动突防弹道设计 xff0c 航空学报 xff0c 2011 算法有两个控制量 xff1a 攻角和倾侧角 xff0c 攻角只是起辅助作用 xff0c 主要还是倾侧角的设计 由于
  • 4轴开发之串级PID调试技巧

    欢迎查看我原始的出处 xff1a http lindue com 17868 html 调节串环 PID 大概过程 xff08 注意修正反向 xff09 1 估计大概的起飞油门 2 调整角速度内环参数 3 将角度外环加上 xff0c 调整外