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

一、背景

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

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

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

二、目的

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

三、测试方式、过程

3.1 硬件准备

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

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

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

       https://blog.csdn.net/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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入之梦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值