PID如何调试,如何配置P,I,D值,如何适配pwm的定时器配置,如何给小车配电源

news2025/1/28 12:08:57

首先你要搞清楚PID公式原理

PID算法解析PID算法解析_pid滤波算法-CSDN博客

然后你要明白调试原理

首先要确定一个电源

电源决定了你后面调试时电机转动速度大小和pwm占空比的关系,电源电压越大那要转到同一速度所需的占空比越小,反之电源电压越小那要转到同一速度所需的pwm占空比越大,这是pwm积累原理的一个特征

所以我的电源如果说它的电压值是不同的,那我的pi d值也会不同,这就是为什么要保证电源电压一定要相同

而且如果你的电源只是三伏3,那就算你的pid值转到极致,它也就是转成3伏3的电压。如果一个轮子它的额定功率是12伏或者是5伏,你3伏3就不够,可能你放到地上他跑都不会跑,这也是要考虑的一个因素

所以我们调试的时候就需要选定我们的电压,这里我选了12伏作为电压电源电压

其次,你要先确定你的pi d公式是实时可行的,你要配置三个模块,一个是电机转动的tb6612模块,pwm定时器比较输出模块,定时器中断实时处理pi d算法模块,编码器实时读取速度模块

然后把这三者结合在一起,并调试各个模块的功能,调通之后你再进行下一步

然后你需要配置一个串口来实时输出你的 pi d公式对应输出的实时转速和当前pwm占空比

然后用vofa++,这样可以用线条显示你的转速与预测值实际想要得到的值的差距,这样的测试工具可以让你的调试更简单更加明显。这也是通常pi d调试需要的一个软件,下面是vofa的配置方法

vofa++使用方法

 vofa++的使用发送数据还是需要用printf函数,不要自己一个一个字节发

准备好之后,我们首先让电机跑一跑看一下当我pwm输出最大值的时候,我的转速达到了多少

这样我们就可以指定我们的目标转速,不然我们不知道最大转速是多少,你就算定一个转速,如果他比你最大转速还要快的话,那他不就一直在加速就没有用

之后呢,我们要看一下我们这个pwm适不适合我们这个占空比这个调值适不适合,因为如果说我们的占空比调值是1~10,那它增大减小的很少,也就是说你的间隔要大一点它才能有一个过程,如果是1~10这么一个小范围里面的话,它没有过程它就直线加速直线减速,这样是体现不了我们pi d公式的效果的,我们完美的pw m占空设置就是我们完美的定时器比较输出值设置,应该是当我比较输出最大的时候,我的转速是最快的,当我的比较输出值最小的时候,我的转速是最慢的,然后他们中间应该相隔千或者万为单位

之后就可以我们知道了我们的最大速度也就是我们最大占空比时我们的最大速度是多少之后,我们就可以设置它的一半为我们的目标速度,然后打开我们的vofa加加看一下当前pid值是怎么样一个变化

 P值增大,可以让我更快达到我想要的目标值,然后其他i  d值这些你还是要去看pi d原理,你就知道pid值代表的是什么意思要该怎么调

pid值调好之后,要让它使得我的限时转速在我的目标转速左右徘徊,而且它的波形较为完整,然后要更接近于我的那个目标转速

之后用手轻轻触摸轮子看一下我的那个pwm输出它会不会增大。因为当你趋于稳定的时候,你手给轮子添加一个阻力,它速度变慢,pi d公式想要让它速度变得跟原来一样快跟目标速度一样快,那他就需要增大我的p他。M占空比的输出来增加我的力,这样我们就可以看到pi d反馈是否真正实现

 这样我们调试就完成了,但是这也只是初调,因为我们此时没有把车放到地上,你这样的初调只能验证你的pi d公式是准确的是可以用的,那我们要把它放到地上的话,我们需要给他先测试一下什么转速能跑,然后设定一个真正适用于我们的一个范围

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2283659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小马模拟器-第三方全街机游戏模拟器

链接:https://pan.xunlei.com/s/VOHSiB6st-f3RWlIK01MS2fUA1?pwd44v7# 1.小马模拟器是一款完全免费的游戏模拟器软件,支持街机(FBA,MAME,PGM2),3DS,WII,NGC,DC,SS,DOS,MD,WSC,NDS,JAVA,PCE,FC,SFC,GBA,GBC,PSP,PS,N64等多种游戏…

微信小程序date picker的一些说明

微信小程序的picker是一个功能强大的组件&#xff0c;它可以是一个普通选择器&#xff0c;也可以是多项选择器&#xff0c;也可以是时间、日期、省市区选择器。 官方文档在这里 这里讲一下date picker的用法。 <view class"section"><view class"se…

【算法】递归型枚举与回溯剪枝初识

递归型枚举与回溯剪枝初识 1.枚举子集2.组合型枚举3.枚举排列4.全排列问题 什么是搜索&#xff1f;搜索&#xff0c;是一种枚举&#xff0c;通过穷举所有的情况来找到最优解&#xff0c;或者统计合法解的个数。因此&#xff0c;搜索有时候也叫作暴搜。搜索一般分为深度优先搜索…

rocketmq-product-send方法源码分析

先看有哪些send方法 首先说红圈的 有3个红圈。归类成3种发送方式。假设前提条件&#xff0c;发送的topic&#xff0c;有3个broker&#xff0c;每个broker总共4个write队列&#xff0c;总共有12个队列。 普通发送。负载均衡12个队列。指定超时时间指定MessageQueue,发送&#…

69.在 Vue 3 中使用 OpenLayers 拖拽实现放大区域的效果(DragPan)

引言 在现代 Web 开发中&#xff0c;地图功能已经成为许多应用的重要组成部分。OpenLayers 是一个功能强大的开源地图库&#xff0c;支持多种地图源和交互操作。Vue 3 是一个流行的前端框架&#xff0c;以其响应式数据和组件化开发著称。本文将介绍如何在 Vue 3 中集成 OpenLa…

77,【1】.[CISCN2019 华东南赛区]Web4

有句英文&#xff0c;看看什么意思 好像也可以不看 进入靶场 点击蓝色字体 我勒个豆&#xff0c;百度哇 所以重点应该在url上&#xff0c;属于任意文件读取类型 接下来该判断框架了 常见的web框架如下 一&#xff0c;Python 框架 1.Flask URL 示例 1&#xff1a;http://…

手撕B-树

一、概述 1.历史 B树&#xff08;B-Tree&#xff09;结构是一种高效存储和查询数据的方法&#xff0c;它的历史可以追溯到1970年代早期。B树的发明人Rudolf Bayer和Edward M. McCreight分别发表了一篇论文介绍了B树。这篇论文是1972年发表于《ACM Transactions on Database S…

一文简单回顾复习Java基础概念

还是和往常一样&#xff0c;我以提问的方式回顾复习&#xff0c;今天回顾下Java小白入门应该知道的一些基础知识 Java语言有哪些特点呢&#xff1f; Java语言的特点有&#xff1a; 面向对象&#xff0c;主要是封装、继承、多态&#xff1b;平台无关性&#xff0c;“一次编写…

GCC之编译(8)AR打包命令

GCC之(8)AR二进制打包命令 Author: Once Day Date: 2025年1月23日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章请查看专栏: Linux实践记录_Once-Day的博客-C…

2.1.3 第一个工程,点灯!

新建工程 点击菜单栏左上角&#xff0c;新建工程或者选择“文件”-“新建工程”&#xff0c;选择工程类型“标准工程”选择设备类型和编程语言&#xff0c;并指定工程文件名及保存路径&#xff0c;如下图所示&#xff1a; 选择工程类型为“标准工程” 选择主模块机型&#x…

图像处理算法研究的程序框架

目录 1 程序框架简介 2 C#图像读取、显示、保存模块 3 C动态库图像算法模块 4 C#调用C动态库 5 演示Demo 5.1 开发环境 5.2 功能介绍 5.3 下载地址 参考 1 程序框架简介 一个图像处理算法研究的常用程序逻辑框架&#xff0c;如下图所示 在该框架中&#xff0c;将图像处…

计算机工程:解锁未来科技之门!

计算机工程与应用是一个充满无限可能性的领域。随着科技的迅猛发展&#xff0c;计算机技术已经深深渗透到我们生活的方方面面&#xff0c;从医疗、金融到教育&#xff0c;无一不在彰显着计算机工程的巨大魅力和潜力。 在医疗行业&#xff0c;计算机技术的应用尤为突出。比如&a…

Linux初识——基本指令(2)

本文将继续从上篇末尾讲起&#xff0c;讲解我们剩下的基本指令 一、剩余的基本指令 1、mv mv指令是move&#xff08;移动&#xff09;的缩写&#xff0c;其功能为&#xff1a;1.剪切文件、目录。2.重命名 先演示下重命名&#xff0c;假设我想把当前目录下的di34改成dir5 那…

单片机-STM32 WIFI模块--ESP8266 (十二)

1.WIFI模块--ESP8266 名字由来&#xff1a; Wi-Fi这个术语被人们普遍误以为是指无线保真&#xff08;Wireless Fidelity&#xff09;&#xff0c;并且即便是Wi-Fi联盟本身也经常在新闻稿和文件中使用“Wireless Fidelity”这个词&#xff0c;Wi-Fi还出现在ITAA的一个论文中。…

80,【4】BUUCTF WEB [SUCTF 2018]MultiSQL

53&#xff0c;【3】BUUCTF WEB october 2019 Twice SQLinjection-CSDN博客 上面这个链接是我第一次接触二次注入 这道题也涉及了 对二次注入不熟悉的可以看看 BUUCTF出了点问题&#xff0c;打不开&#xff0c;以下面这两篇wp作为学习对象 [SUCTF 2018]MultiSQL-CSDN博客 …

Prometheus部署及linux、mysql、monog、redis、RocketMQ、java_jvm监控配置

Prometheus部署及linux、mysql、monog、redis、RocketMQ、java_jvm监控配置 1.Prometheus部署1.2.Prometheus修改默认端口 2.grafana可视化页面部署3.alertmanager部署4.监控配置4.1.主机监控node-exporter4.2.监控mysql数据库mysqld_exporter4.3.监控mongod数据库mongodb_expo…

问题排查 - TC397 CORE2 50MS/100MS任务不运行

1、问题描述 CORE2 的任务运行次数的计数值OsTask_100ms_Core2 - task_cnt[12]、OsTask_50ms_Core2 - task_cnt[16]不在累加&#xff0c;但是其他任务OsAlarm_1ms_Core2、OsAlarm_5ms_Core2、OsAlarm_10ms_Core2、OsAlarm_20ms_Core2 任务计数值累加正常。 如果是任务栈溢出&a…

Spring FatJar写文件到RCE分析

背景 现在生产环境部署 spring boot 项目一般都是将其打包成一个 FatJar&#xff0c;即把所有依赖的第三方 jar 也打包进自身的 app.jar 中&#xff0c;最后以 java -jar app.jar 形式来运行整个项目。 运行时项目的 classpath 包括 app.jar 中的 BOOT-INF/classes 目录和 BO…

百度APP iOS端磁盘优化实践(上)

01 概览 在APP的开发中&#xff0c;磁盘管理已成为不可忽视的部分。随着功能的复杂化和数据量的快速增长&#xff0c;如何高效管理磁盘空间直接关系到用户体验和APP性能。本文将结合磁盘管理的实践经验&#xff0c;详细介绍iOS沙盒环境下的文件存储规范&#xff0c;探讨业务缓…

蓝桥杯之c++入门(一)【第一个c++程序】

目录 前言一、第⼀个C程序1.1 基础程序1.2 main函数1.3 字符串1.4 头文件1.5 cin 和 cout 初识1.6 名字空间1.7 注释 二、四道简单习题&#xff08;点击跳转链接&#xff09;练习1&#xff1a;Hello,World!练习2&#xff1a;打印飞机练习3&#xff1a;第⼆个整数练习4&#xff…