PID巡线调节

1、双巡线P控制

KP可以先从0.2值调起,P比例主要控制小车能够在线上正常巡线,

P比例说明:KP值越小,转弯幅度越大,会直接越过黑线。KP值越大,转弯幅度越小,能正常巡线,但是摆动很平凡。

误差=右巡线-左巡线 两个模拟巡线之间的误差值

p修正值=误差*kp比例常数

左轮速度=速度-p修正值

右轮速度=速度+p修正值

2、双巡线PI控制

在P比例控制的基础上增加积分I控制

i积分说明:I值越大,小车巡线稳定时间越长,回到线上时间越慢。I值越小,小车巡线稳定时间越短,回到线上时间越快。

误差=右巡线-左巡线

所有误差=所有误差+误差

p修正值=误差*kp比例常数

i修正值=所有误差*ki积分常数

PI修正值=p修正值+I修正值

左轮速度=速度-pI修正值

右轮速度=速度+pI修正值

3、双巡线PD控制

在P比例控制的基础上增加微分D控制

D微分说明:D值越大,小车摇摆越频繁,D值越小,小车摇摆越少。

误差=右巡线-左巡线

p修正值=误差*kp比例常数

D修正值=(误差-上一次误差)*KD微分常数

PD修正值=P修正值+D修正值

左轮速度=速度-PD修正值

右轮速度=速度+PD修正值

上一次误差=误差

4、双巡线PID控制

PID调节方法总结:

先调整KP比例常数:从小到大调节,一直到能够巡线为止

再调节KI积分常数:从大到小调节,一直到能够正常巡线为止,调节好的KI不论在任何恶劣环境下只要巡线眼睛在线上都能把小车调整到线上来。

再调节kD微分常数:从小到大调节,让小车在巡线过程中逐渐平滑,减少摆动

推荐初始调节值:kp比例常数:0.2 ki积分常数0.1 KD微分常数:0.1

Kp调节时±0.1 Ki调节时,小数点后加0减0 KD调节时±0.5

误差=右巡线-左巡线

所有误差=所有误差+误差

p修正值=误差*kp比例常数

i修正值=所有误差*ki积分常数

D修正值=(误差-上一次误差)*KD微分常数

PID修正值=p修正值+I修正值+D修正值

左轮速度=速度-PID修正值

右轮速度=速度+PID修正值

上一次误差=误差

4、单巡线PID调节

公式同双巡线一样,唯一的区别是误差值公式的运算,

预期目标值=(白线光值+黑线光值)/2

当前值:实际巡线检测的值

误差=预期目标值-当前值

PID参数调试口诀

参数整定找最佳,从小到大顺序查

先是比例后积分,最后再把微分加

曲线振荡很频繁,比例度盘要放大

曲线漂浮绕大湾,比例度盘往小扳

曲线偏离回复慢,积分时间往下降

曲线波动周期长,积分时间再加长

曲线振荡频率快,先把微分降下来

动差大来波动慢,微分时间应加长

理想曲线两个波,前高后低4比1

一看二调多分析,调节质量不会低

这口诀我看不懂,所以用不来,上面调节法是我看了很多文章视频自己不断调试总结出来的,不一定对,现在我可以凭借感觉调整到最佳状态,但是讲解的话也只能讲成这样了。

小车PID巡线调节的更多相关文章

  1. 四旋翼飞行器Quadrotor飞控之 PID调节(參考APM程序)

    做四轴也有一段时间了.近期一直在做PID方面的工作. 如今四轴基本能够实现室内比較稳定的飞行,操控手感也能够接受.稍后上试飞视频.在此把一些PID方面的经验总结总结和大家分享一下. 首先介绍一下大概的 ...

  2. PID算法

    所谓PID就是比例-积分-微分的英文缩写,但并不是必须同时具备这三种算法,也可以是 PD, PI,甚至只有 P算法控制,下面分别介绍每个参数的含义:首先需要明确一个事实就是,要实现PID算法,必须在硬 ...

  3. 亚博 Arduino智能小车实验报告

    亚博 Arduino智能小车实践报告 一.     程序安装准备 首先安装了Arduino板载USB转串口CH340驱动安装包, 若上述程序安装成功,则可以在我的电脑中找到相应的端口 本机端口号为CO ...

  4. 亲子编程玩Micro:bit-动力小车“麦昆”

    少儿编程之风已经吹进各大城市,编程猫.乐博机器人.童程童美等专业培训机构逐渐进入大家的视野,年龄段已经从K12逐渐降低到幼儿园中班.其实,少儿编程的门槛并不高,它不会让孩子一上手就去接触代码,而是会通 ...

  5. 电子设计省赛--PID

    //2014年4月17日 //2014年6月20日入"未完毕"(未完毕) //2014年6月21日 一開始还以为是多难的算法.事实上就是个渣渣. 当然PID实践中应该会非常难. 另 ...

  6. 树莓派4B智能小车机器套件——入手组装实验记录

    树莓派4B智能小车机器套件--入手组装实验记录 4WD智能小车(4WD SMART ROBOT KIT),支持Arduino.51.STM32.Raspberry Pi等4个版本.本套件采用的是树莓派 ...

  7. 树莓派-4WD智能小车操作小结

    树莓派-4WD智能小车操作小结 树莓派4B-4WD智能小车,双层结构,第一层结构为:小车扩展板(底层)+树莓派主板,通过铜柱隔离固定,小车扩展板相当于计算机的外设扩展板:上面一层为第二层,是三个舵机承 ...

  8. STM32L476应用开发之七:流量的PID控制

    在气体分析仪使用过程中,为了力求分析结果的准确性,一般要求通过的气体流量尽可能的稳定.为了保证流量控制的稳定,我们采用PID调节来控制气路阀门的开度. 1.硬件设计 我们采用的流量计为气体质量流量计, ...

  9. 经典PID控制及应用体会总结

    经典PID控制及应用体会总结 PID控制原理 PID是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制方案: 重点关注相关算法是如何对偏差进行处理的: PID控制器各校正环节 ...

  10. 【嵌入式】Arduino编程基础到应用全解析

    Arduino Author: Andrew.Du 基础 基础语法: setup() loop() pinMode(引脚,模式) pinMode(13,OUTPUT):设置13号引脚为输出 //在使用 ...

随机推荐

  1. Mavros & Mavlink

    博客地址:https://www.cnblogs.com/zylyehuo/ 参考 https://www.bilibili.com/video/BV1x841167uG?spm_id_from=33 ...

  2. [源码系列:手写spring] IOC第十二节:FactoryBean

    内容介绍 在 Spring 框架中,FactoryBean 是一个特殊的工厂类接口,用于创建和管理复杂的 bean 对象.它允许你自定义 bean 的创建逻辑,并且可以在 bean 创建过程中执行一些 ...

  3. JDK7-日历类--java进阶day07

    1.Calendar类 用于获取或者修改时间,之前学的Date类,获取和修改时间的方法已经过时 2.Calendar对象的创建 Calendar类里面有很多抽象方法,如果创建对象就要全部重写,所以不能 ...

  4. 【Spring】JdbcTemplate的使用方法

    概念和准备 什么是 JdbcTemplate Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作 准备工作 引入相关 jar 包 在 spring 配置文件 ...

  5. 学习EXTJS6(10)面向对象的基础框架-2【统一的组件模型】很重要

    用到ExtJS,UNIGUI是以ExtJS为基础的框架.因此掌握基础组件模型太重要了.确实就是让自己知道其所以然. Ext中所有可视组件都继承自Ext.Component. 1.Ext.Compone ...

  6. zk源码—2.通信协议和客户端原理

    大纲 1.ZooKeeper如何进行序列化 2.深入分析Jute的底层实现原理 3.ZooKeeper的网络通信协议详解 4.客户端的核心组件和初始化过程 5.客户端核心组件HostProvider ...

  7. Web前端入门第 31 问:CSS background 元素背景图用法全解

    background 可设置背景色.渐变.背景图等,本文主要讲解背景图片的用法. 背景顾名思义就是背后的景色,始终居于元素背后,元素永远站在背景的身前. 本文示例中所使用的图片: background ...

  8. FastMCP实践开发应用

    一.概述 FastMCP是一个基于Python的高级框架,用于构建MCP(Model Context Protocol)服务器.它能够帮助开发者以最小的代码量创建MCP服务器,从而让AI助手能够更好地 ...

  9. @Accessors lombok注解用法

    最近学习代码看到很多有趣的注解:慢慢整理下: @Accessors注解 @Accessors注解官方给出的解释是:面向getter和setter的更流畅的API.用于生成和查找getter和sette ...

  10. java泛型简单入门

    泛型 泛型 泛指某一种类型 ( 必须是 引用类型 ) 明确时机: 1.有时候 创建对象的时候, 明确泛型 2.有时候 调用一个方法时, 明确泛型 3.有时候 创建一个类型,然后实现一个接口的时候 明确 ...