掌上单片机实验室 – 检验自整定适应性(12A)

Arduino PID-Auto Tune库函数指南 与Arduino PID库同出于一位作者:Brett Beauregard 下面将解释一下本库之中的函数使用方法。与上篇PID库的指南一样,笔者在此不会详细地阐述PID的内部实现方法和原理。建议看过PID算法Brett Beauregard的博客地址,配合此文档阅读本文效果更佳。 阅读详情

一、背景

       前面经过努力,将Arduino 的共享资源 PID AutoTune 自整定库用起来了,并进行了验证性测试,效果不错。

       但那个验证是在我琢磨自整定库的平台上(掌上实验室小车)进行的,做完后回味了一下,感觉应该换到轮式驱动单元上测试一下,看看如何?

       因为当初我尝试 PID 时,手工整定在轮式驱动单元上成功了,但到掌上实验室小车上却没有达到预期,说明两个平台物理特性还是有差别的。虽说两个小车的驱动电路完全一样,但两个轮子的物理尺寸不同,所用的电机虽然都是130电机,但减速比不同。

二、目的

       验证针对不同物理特性的对象,PID自整定的效果如何。

三、测试方式、过程

3.1 硬件准备

       因为目的就是检验一下自整定算法的适应性,为减小工作量,用两个轮式驱动单元所构成的差分驱动小车底盘作为对象,和掌上实验室小车的差别只是物理结构、尺寸不同,驱动电路完全一样:

        控制板用和掌上实验室相同的STM32F103C8核心板,为便于接线,使用我自己设计的Arduino UNO扩展板:

       详细介绍见:ROS学习笔记之六 – 创建基于STM32的Arduino环境

       https://blog.youkuaiyun.com/embedream/article/details/91823053

       轮式驱动单元内置控制和反馈电路,用杜邦线引出,对于学习而言,很方便使用,任何一块核心板都可以,只是上述扩展板上每个IO引脚都配了一对电源和地线,更方便一些:

 

       小车供电使用最常见的充电宝,只需自己做一根USB电源线即可(这是我买的DIY套件,用笔记本电脑失效的电池拆开后组装的,4节18650):

 

 3.2 程序准备

       因控制板一样、驱动电路一样,所以程序基本无需修改,只是将对应车轮尺寸的两个常数定义修改一下。

      掌上实验室小车的轮子直径 65mm,一圈60齿:

     轮式驱动单元的轮子直径是 80mm,一圈是100齿: 

          实际接线时,发现扩展板上 PC14、PC15没有焊接插针,故换到 PB14、PB15。

          此外,由于两个轮式驱动单元是对称安装,左右侧转动方向相反,故修改左侧的控制信号Ctrl2、Ctrl3定义,交换一下,以使得两个轮子的转动方向统一(实际上掌上实验室小车有同样的问题,只是那个小车上可以通过改变电机的接线方向实现)。

3.3 PID自整定过程

        完全按照“掌上单片机实验室 – 检验自整定效果”一文的测试过程,实际结果如下:

左侧自整定过程:

 

 

 右侧自整定过程:

 

 

 

3.4检验效果

    将上述整定结果作为 PID 调速的默认参数:

        用 90% 的 PWM 测试了一下,两侧轮子的最快转速大约是 380mm/s,故选择100、300mm/s两点作为调速验证,结果如下:

1、左侧速度 100mm/s:

2、左侧速度 300mm/s: 

 3、右侧速度 100mm/s:

 4、右侧速度 300mm/s:

 

 5、设置两轮速度为150mm/s,走1000mm:

PID 自整定适应性测试

       从上述结果看,基本和前面的验证一致,符合预期。

       由此可以得出,这个自整定的算法可以很方便地实现 PID 参数整定,而且效果不错!

四、结语

       用自整定方式完成 PID 参数整定,对于PID 应用而言,无疑是个福音。

       因为很多时候大家都知道需要使用 PID 控制以达到所需要的效果,但实际使用时很少得到满意的结果。

       因为对象特征千差万别,没有好的手段很难获得。而且,通常对象特性包含了很多因素,就拿我测试的小车来说,输入只是 PWM,但影响速度的因素却有很多:转动阻力、车轮惯性、供电电源、测速的真实性等。

       这个方式实际上是利用程序自动重复加入扰动激励,从而获得包含所有因素的响应,还是很有价值的!

        以后如果遇到不同的 PID 应用场景,再多尝试几次,看看其普适性如何。

        但目前为止,我认为其对于直流电机的 PID调速是完全能够胜任的!

————————————

文中程序下载:

链接:https://pan.baidu.com/s/1g_X8zD0fjST_PPmEx-_SGg

提取码:0vnx

【ESP32 Arduino平衡小车制作】(四) 直流电机PID控制 一、PID算法1-1 积分分离pid算法1-2 带有死区的pid算法1-3 微分先行pid算法二、程序编写三、硬件设计 一、PID算法 PID 是 结合Proportional(比例)、 Integral(积分)、Differential(微分)三种环节于一体的闭环控制算法,它是目前为止在连续控制系统中计数最为成熟的一种控制算法; PID 控制的实质是对目标值和实际值误差进行比例、积分、微分运算后的结果用来作用在输出上。 连续控制的理想 PID 控制规律 u(t)u(t)u(t) = K p&. 阅读详情

相关推荐

Arduino PID 库函数指南

虽然PID的原理并不难,但是实现起来未免会给Arduino的许多创客玩家带来些许困难。本文将不对PID的具体实现细节Arduino的PID库函数使用方法分享给大家,以供参考。

冲啊梅勒斯 4万+

Arduino PID Autotune Library

终于,我发布了一个自动调PID参数的一个库来完善Arduino PID库文件。在我发布当前版本的PID库的时候,我做了大量的博客让读者明白,这个库内部是怎么运行的。但是也不是那么深入,这个也是这篇博客的目标。我会解释这个自动调谐库能够完成什么,是怎么完成的。

xuanyuanlei1020的专栏 8073

【雕爷学编程】Arduino BLDC 之自适应PID调整

Arduino还有一个丰富的库和社区,你可以利用它们来扩展Arduino的功能和学习Arduino的知识。无刷直流电机是一种先进的电机技术,它利用电子换向来替代传统的碳刷和换向器,从而提供更高效、更可靠和更低维护成本的电机驱动解决方案。请记住,BLDC电机的自适应PID调整涉及到更多的细节和配置,包括电机驱动器的选择和设置、传感器的使用、电机模型的建立等。5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。

雕爷学编程 812

Arduino PID Autotuner 使用教程

Arduino PID Autotuner 使用教程 项目介绍 Arduino PID Autotuner 是一个用于自动调整 PID 控制参数的开源项目。该项目基于 Ziegler-Nichols/relay 方法,旨在为 Arduino 及兼容板提供自动 PID 调谐功能。尽管项目最初是为 Arduino 设计的,但它并不依赖于 Arduino 标准库。项目的主要目的是简化 PID 控制参数的...

gitblog_00502的博客 908

【花雕学编程】Arduino FOC 之基于自适应PID控制的无刷直流电机位置控制

在Arduino平台上实现FOC可以提供平滑的运行和高度的扭矩、速度和位置控制,它通过精确控制电机的电流和电压来实现高效率、高精度和低噪声的操作。通过高效的自适应控制和实时反馈机制,可以实现高精度的电机位置控制。5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。传感器精度:高精度的传感器反馈对位置控制至关重要,需选择可靠的编码器,以确保位置测量的准确性,避免因传感器误差导致的控制问题。

雕爷学编程 1221

自动整定PID参数

②强行震荡:再暂时禁用PID调节,使控制器将一个矩形波状的控制作用力作用于系统,当被调量低于设定值时,控制输出产生一个正的阶跃信号,迫使被调量向高处转变,当被调量高于设定值时,控制输出产生一个负的阶跃信号,迫使被调量向低处转变,由此强行使系统产生震荡。完成波形分析后,仅需将得到的峰峰值和周期带到PID前辈们推导出的公式中,计算得到相应的PID参数,再将PID参数更新投入使用,PID自整定便大功告成!③分析波形:分析以上过程产生的波形的特征,根据需要计算出相应的PID参数。

1万+

Arduino小车PID自整定调速——菜鸟也来写PID自整定库

PID自整定

ba_wang_mao的专栏 5486

UFS Write Booster技术解析:原理、配置与故障排查实战

在存储技术领域,缓存机制是提升I/O性能的核心手段之一,其原理是通过高速存储介质暂存数据,减少对低速主存储的直接访问,从而降低延迟、提升吞吐。Write Booster正是这一原理在UFS(通用闪存存储)规范中的具体实现,它通过引入独立的易失性高速缓存区(Write Booster Buffer),将主机写入命令快速响应与后台数据持久化分离,技术价值在于显著改善随机写入性能,消除由垃圾回收等后台操作引发的写入卡顿。该技术广泛应用于智能手机应用安装、相机连拍、固件升级(OTA)等对写入流畅性要求高的场景。本文

weixin_42561143的博客 356

掌上单片机实验室 – 实现PID自整定(11)

上一篇实现了小车运动控制,在程序框架下,基于FreeRTOS编写了驱动任务,包含电机控制、测速、PID调速、行走距离控制等和运动相关的功能。但 PID 调速只是完成了算法,并未真正实现调速,因为 PID 调速的核心是PID 参数的确定,即整定!而整定是 PID 最富挑战的内容,调速效果的好坏完全取决于参数。 本篇目的是尝试使用 Arduino 分享的自整定库实现 PID 参数自整定。

embedream的专栏 6806

【遥感数字图像处理(朱文泉)】第一章 数字图像基础

关于图像的定义、类型、模拟图像和数字图像

甜子yu的博客 4403

BIOS硬件监控实战:如何手动读取IT8738芯片的温度与风扇数据(附代码)

本文深入探讨了如何绕过操作系统和HWMonitor等监控软件,直接通过寄存器级操作读取IT8738超级I/O芯片的硬件监控数据。文章提供了从动态定位EC空间、构建底层读写函数到解码传感器寄存器映射的完整实战指南,并附有C语言代码示例,帮助开发者理解BIOS硬件监控的底层原理,适用于定制硬件开发与故障诊断。

weixin_29192211的博客 109

推荐开源项目:arduino-pid-autotuner - 智能PID调参利器

推荐开源项目:arduino-pid-autotuner - 智能PID调参利器 在电子工程和自动化领域,PID控制器是控制系统的常见组件,其性能直接影响着系统稳定性和响应速度。然而,手动调整PID参数并非易事,尤其对初学者来说。这就是为什么我们向您推荐arduino-pid-autotuner,一个基于Ziegler-Nichols和继电器方法的自动PID调参库。 1、项目介绍 arduino-...

gitblog_00037的博客 871

Android流畅度优化实战:从掉帧定位到布局与渲染调优

在移动应用开发中,性能优化是决定用户体验与留存率的关键环节,其中Android流畅度优化更是核心命题。用户感知的“卡顿”往往并非持续低帧率,而是由于掉帧率波动引发的偶发不流畅。本文从性能优化理论出发,系统讲解如何使用Systrace、CPU Profiler等工具定位掉帧瓶颈,深入分析布局层级过深、过度绘制、对象分配与GC压力等常见诱因。同时结合冷启动耗时、列表滚动掉帧、Bitmap加载等真实工程案例,阐述从应用层到系统层的分级优化策略,并给出低端机适配、异步化改造及线上监控体系搭建的实践方案。内容覆盖布局

weixin_29185493的博客 200

【亲测免费】 探索自动PID调优的便捷之道:arduino-pid-autotuner

探索自动PID调优的便捷之道:arduino-pid-autotuner 在追求精准控制的物联网世界里,一个高效且适配性强的PID控制器是不可或缺的工具。今天,我们来深入探讨一款专为简化PID调参过程而生的开源宝藏——arduino-pid-autotuner。 项目介绍 arduino-pid-autotuner是一个基于Ziegler-Nichols或继电器法的自动化PID参数调整库,最初设计...

gitblog_00297的博客 764

Notion访问卡顿?一键优化DNS与Hosts提升加载速度

本文针对Notion访问卡顿问题,提供了两种核心优化方案:修改Hosts文件与配置DNS。详细解析了卡顿根源在于网络链路,并手把手指导用户在Windows、Mac、iOS及Android设备上实施优化,旨在通过替换为更优线路,显著提升Notion的页面加载与同步速度。

fff88的博客 1195

终端以太网接入Internet实验

实验过程: 1.布局 2.连接 3.配置Route0和Route1 4.配置RIP 5.static: 6.查看Route0,Route1的路由表: 7.完成PC2和server0 IP地址,子网掩码和默认网关地址的配置: 8.命令行: 9.启动PC0桌面下的PPPoe宽带连接程序: 10.启动PC1桌面下的PPPoe宽带连接程序: 11.验证PC0和PC2的ICMP报文传输过程 12.验证PC1和server0的ICMP报文传输过程 关键命令说明

chaojidagouzi的博客 4082

【Arduino小车实践】PID算法简介

【Arduino小车实践】PID算法简介

weixin_62403234的博客 1428

124、LLC谐振变换器的矩阵变压器设计

摘要 本文分享了LLC谐振变换器中矩阵变压器的实战设计经验。针对大功率LLC单颗变压器的痛点(绕组层数多、散热不均、漏感一致性差),作者提出将大变压器拆分为多个小变压器单元(建议6个),通过原边串联、副边并联的方式实现功率分配。详细解析了磁芯选型、匝比计算、绕组结构、漏感控制和散热设计等关键参数,特别强调了小磁芯优势、等效匝比计算误区以及三明治绕法的重要性。文中还总结了调试过程中的谐振频率偏移和均流问题解决方案,并给出了矩阵数量选择、磁芯材质、绝缘材料等实用建议。作者指出,矩阵变压器在2kW以上LLC应用中

Jack010169的博客 169

# Arduino小车PID调速——整定参数初试水

通过以上实验证明了pid调速过程中,一个特定的参数仅对一定的速度区间有比较好的调节效果。若比这个速度低,则会出现比例积分作用过强,从而出现震荡;若比这个速度高,则会出现比例作用不强,系统的稳定时间变长,且出现小幅度周期性波动的情况。

Symean的博客 1015

cesium单向流动线效果

在学材质的路上一去不复返了属实是,难也难在这。还请各位大佬多多指教~

就zhei? 689

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Arduino PID整定

基本上,如果您将引脚转换为真正的模拟输出,那么 Arduino 将向输出发送一个 0 值,以便通过低通滤波器获得 0 伏电压。换句话说,10 秒后,我们的输出将增加 10%。20 秒后,我们将只有 1 次完整的重复,这意味着需要 20 秒才能达到总输出的 30%(按比例计算)。请记住,我们的目标是提供足够的输出,将温度保持在我们想要的位置。) 我们将使用启发式方法进行调整,对于大多数使用 Arduino 的人来说,这通常是最简单的方法。换句话说,这就是我们所处的位置与我们希望达到的位置之间的差值。

acktomas的博客 1395

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

CSharp/C#移植Arduino的PID库源代码

using System; using System.Collections; namespace ArduinoPid { public class PID_AutoTune { // #define AUTOMATIC 1 // #define MANUAL 0 // #define DIRECT 0 // #define REVERSE 1 // #define P_ON_M 0 // #define P_ON_E 1 /// &lt

asdakdkwfwfd 878

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

探索 Arduino PID 库:智能控制的利器

探索 Arduino PID 库:智能控制的利器 去发现同类优质开源项目:https://gitcode.com/ 在电子制作和自动化领域,Arduino 平台因其简单易用而广受欢迎。然而,要实现精确的温度、速度或其他参数控制,PID(比例-积分-微分)算法是必不可少的工具。这就是为什么 如此重要的原因。这个开源项目为 Arduino 开发者提供了一种便捷的方式来实现 PID 控制,让复杂的控制...

gitblog_00070的博客 1077

Arduino PID

Arduino小车PID自整定调速——菜鸟也来写PID自整定库 https://blog.youkuaiyun.com/yanggg1997/article/details/76674986   Arduino小车PID调速——整定参数初试水 https://blog.youkuaiyun.com/yanggg1997/article/details/75142360?locationNum=7&fps=...

longbinliu的专栏 4656

PID控制及整定算法

一、PID控制算法   PID是比例、积分、微分的简称,PID控制的难点不是编程,而是控制器的参数整定。参数整定的关键是正确地理解各参数的物理意义,PID 控制的原理可以用人对炉温的手动控制来理解。阅读本文不需要高深的数学知识。 注:整个控制流程是PID控制器函数与被控对象的传递函数、一个负反馈结合完成的,在保证被控对象的传递函数与负反馈结合的闭环系统能够达 到稳态的前提下(...

angengguo7895的博客 3589
上一篇: 掌上单片机实验室 — 检验自整定效果(12)
下一篇: 掌上单片机实验室 — 程序阶段性完善(13)
嵌入之梦
博客等级 码龄21年 134粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入之梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值