共轴麦轮直立、运动、位置串级PID

2024-08-28 15:52

本文主要是介绍共轴麦轮直立、运动、位置串级PID,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

角度PID

  • 微分项Angle_Pram[KD] * gyroy:根据角速度的变化率来调整电机PWM,角速度变化越快,调整的幅度也越大。

速度PID

 

  • Encoder_Least = (Encoder1 + Encoder2 + Encoder3 + Encoder4) - Trg_Speed;:计算速度偏差,即四个编码器的读数之和与目标速度Trg_Speed的差值。
  • Encoder *= 0.8;:将之前的滤波结果乘以0.8,实现低通滤波的效果,减少噪声。
  • Encoder += Encoder_Least * 0.2;:将新的速度偏差乘以0.2后加到滤波结果上,更新滤波后的速度读数。
  • Encoder_Integral += Encoder;:将滤波后的速度读数加到积分项上,实现积分控制。

积分限幅

  • if(Encoder_Integral > 20) Encoder_Integral = 20;:如果积分项超过20,将其限制在20。
  • if(Encoder_Integral < -20) Encoder_Integral = -20;:如果积分项低于-20,将其限制在-20。这是为了防止积分饱和。

  • sudu_out = Speed_Pram[KP] * Encoder + Speed_Pram[KI] * Encoder_Integral;:根据比例项和积分项计算速度控制器的输出。这里使用了Speed_Pram[KP]作为比例增益,Speed_Pram[KI]作为积分增益。

转向环

  • Direct_Out = Direct_Pram[KD] * gyro_z;:在这种情况下,控制器仅使用微分项(D项),其中Direct_Pram[KD]是微分增益,gyro_z是陀螺仪的读数。这个微分项有助于机器人在直线行驶时快速响应并抑制任何不必要的转向或旋转。

最后实现基本运动

Angle_PID_Out = Angle_PID(Speed_PID_Out+Mid_Angle);  这个是串级pid,将速度环的输出作为直立环的输入

然后叠加转向环和轮子差速。最后得到PWM。

这篇关于共轴麦轮直立、运动、位置串级PID的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115207

相关文章

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

Unity3D 运动之Move函数和translate

CharacterController.Move 移动 function Move (motion : Vector3) : CollisionFlags Description描述 A more complex move function taking absolute movement deltas. 一个更加复杂的运动函数,每次都绝对运动。 Attempts to

Linux Centos 迁移Mysql 数据位置

转自:http://www.tuicool.com/articles/zmqIn2 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysql5.1 yum 安装的 mysql 服务 查看 mysql 的安装路径 执行查询 SQL show variables like

PDFQFZ高效定制:印章位置、大小随心所欲

前言 在科技编织的快节奏时代,我们不仅追求速度,更追求质量,让每一分努力都转化为生活的甜蜜果实——正是在这样的背景下,一款名为PDFQFZ-PDF的实用软件应运而生,它以其独特的功能和高效的处理能力,在PDF文档处理领域脱颖而出。 它的开发,源自于对现代办公效率提升的迫切需求。在数字化办公日益普及的今天,PDF作为一种跨平台、不易被篡改的文档格式,被广泛应用于合同签署、报告提交、证书打印等各个

Matlab/Simulink和AMEsim联合仿真(以PSO-PID算法为例)

目录 安装软件和配置环境变量 Matlab/Simulink和AMEsim联合仿真详细流程 非常重要的一点 Simulink模型和AMEsim模型用S-Function建立连接 从AMEsim软件打开Matlab Matlab里的设置 Matlab的.m文件修改(对于PSO-PID算法) 运行程序 我印象中好像做过Matlab/Simulink和AMEsim联合仿真的分享似的

运动耳机哪个牌子的质量好?五款口碑绝佳机型安利!

​喜欢户外活动的你,肯定是个有格调的人。想象一下,如果在户外的时候,能戴上一款耳机,不仅跟环境搭,还能让你享受到超棒的音乐,那感觉得多爽!开放式耳机就是为这个目的设计的,它不塞耳朵,戴着更舒服,音质也棒,让你在户外能更好地感受到周围自然的声音。这耳机现在超受欢迎,作为一个既爱户外又爱数码的发烧友,我自己也试过不少款,它们真的给我的户外探险加了不少分。接下来,我会跟大家分享这些耳机的亮点,帮你挑出自

Windows11上使用WSL2,提示:系统尚未使用systemd作为初始化系统(PID 1)启动

前言 略 报错信息 System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down 解决方法 使用如下命令 # windows终端,执行如下命令wsl --update# 登录ubuntu系统,执行如下命令s

Xcode 运行项目时候选择模拟器位置处显示My Mac 的处理

1、先关闭Xcode,找到该工程项目目录,找到该项目的*.xcodeproj 文件,然后右键点击选择“显示包内容”; 2、包内容中显示以下三项:project.pbxproj .project.xcworkspace .xcuserdata 接着选择“xcuserdata”这个文件夹,将其整个移到废纸篓,重新打开你的项目,则可使用Simulator; 3、如果上诉方法没有用, 那么找到tar

生命在于运动

程序员和设计师大部分时间都坐在电脑前。有效的锻炼有助于他们更好地工作。 传统的: 当坐在电脑桌前的时候 脚触地。双手在肘部弯曲。打字时手应搁在桌子上。键盘和鼠标应在触手可及的地方。显示屏应在视线水平上,不高不低。光线最好应来自上方。即光线应该从天花板上照下来。每隔20分钟远眺。可降低眼睛长时间盯着近距离物体产生的疲劳。鼠标和手差不多大小。使用全尺寸符合人体工学的键盘。我个人比较喜欢Mi

带死区的PID控制算法

带死区的PID控制算法 带死区的PID控制算法: 注:本文内容摘自《先进PID控制MATLAB仿真(第4版)》刘金琨 编著,研读此书受益匪浅,感谢作者! 带死区的PID控制算法: 在计算机控制系统中,某些系统为了避免控制作用过于频繁,消除由于频繁动作所引起的震荡,可采用带死区的PID控制算法,控制算式为: e ( k ) = { 0 ∣ e ( k ) ∣ ≤ ∣ e 0