如何使你的直流电机闭环?(PID讲解)

双11提前购!买周边/年卡,一键领4重福利! 送200元神券包+10%红包返利+最高10年VIP!还能抽iPhone18Pro!仅限1次,速抢>> 阅读详情

前言:看了看很多大佬写的PID讲解很全面也很复杂,实在是不适合很多萌新入坑,所以想按自己的理解写一篇通俗易懂的PID算法讲解

一:PID的基本定义


PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很 常见的控制算法。常见的PID算法,位置式PID,增量式PID,串级PID等。

二:我们为什么要使用这个算法?


 以电机转速为例子来解释,很多人应该都有这个疑惑,我控制转速,直接给电机输出一个PWM不就行了吗,假设我设置定时器的arr(自动重装载值)=1000-1,想让电机转慢一点,设置输出比较的PWM为200。我想让电机转的快一些,就给PWM输出1000,让电机全速旋转不就可以了吗?不停的进行测试,然后用编码器读取到电机当前的转速,记录下来,我就知道了电机的一个速度对应一个固定的PWM的值。大家有没有想过一个问题,电机随着使用时间的增加,电机的性能其实会发生变化,输出相同的PWM值,速度会和最开始测得的值是不一样的。我们有一辆小车(电机控制小车的速度),如果我改变小车的负重,根据生活中的常识,相同的输出电压下,负载越重,小车的速度越慢的,那么前面记录的数据都不成立了。所以说仅仅输出一个PWM值,是不能精确控制电机转动的速度保持在相同的值。这个时候PID的算法就会体现出重要的作用。现在,我用一个编码器来读取电机速度(编码器可以精确读取电机的转动速度),编码器的作用就是把电机转动的速度(模拟量)转化为一个数字量,传入到我们的微处理器。我们使用PID算法本质上是为了让编码器的值(即速度)稳定在一个值。 PID调参变成了如何让编码器的值(速度)保持在一个固定值。

三:P,I,D参数如何控制闭环?


我们的PID处理的函数,使用的C语言,函数中有两个入口参数,一个是编码器测量到当前的速度值(程序中使用position代替),另一个就是我们想达到的速度值(程序中使用target代替)。

1.P值的作用


如果

基于stm32的位置和速度双闭环PID直流电机控制 基于stm32的位置和速度双闭环PID直流电机控制为什么要用双闭环PID算法?如何将位置环和速度环一起使用?程序部分代码 为什么要用双闭环PID算法? 在PID算法中,我们如果只是使用单个闭环PID控制会出现很多的不足。例如我们在单独使用位置环时,在电机未能达到预设位置时,电机的运行状态是100%PWM满偏运行的,这样在我们实际运用时,如果我们使用的电机功率很高就会造成速度过快的现象。所以在电机的... 阅读详情

相关推荐

直流电机与PID——PID学习(二)

直流电机与PID学习 文章目录直流电机与PID学习前言一、位置闭环控制1.离散化PID分析2.代码实现3.参数整定二、速度闭环控制1.速度闭环控制分析2.代码实现 前言 一、位置闭环控制 1.离散化PID分析 偏差:测量值减去目标值(10米) 通过司机大脑算出一个控制量(以每秒10米的速度开一秒钟,停车时由于惯性会超出10米,这样是不可取的,可以刚开始开快一点,在快要到家的时候减速,依靠刹车惯性正好10米,这个便是PID控制) 2.代码实现 3.参数整定 P:比例控制 D:微分控制 I:

戚晨夕的博客 2626

从零开始之PID控制

从零开始系列之PID控制,宗旨就是以说人话的方式讲述它,真正的做到从零开始,小白一看就会,一学就废。

qq_30993593的博客 1万+

PID详解

1、什么是PID及其作用 设定一个输出目标,反馈系统传回输出值,如与目标不一致,则存在一个误差,PID 根据此误差调整输入值,直至输出达到设定值. 为什么需要PID呢,比如控制温度,我们需要设置一个要达到的目标温度值,当将温度稳定在目标温度值 例如,我们希望水的目标温度值为70°,其希望无非就是可以快速而且无抖动的达到70°,并稳定在70° 如果我们使用普通的方式加热,当温度到达70°后就以及停止加热,岂不是简单快速,当然用在要求不高的场合也可以,但是如果要求更高的场合呢,会出现温度到达70°后......

weixin_48435215的博客 5万+

基于STM32F407单片机对双直流电机的pid闭环控制(有代码)

直流电机简介 直流电动机是将直流电能转换为机械能的电动机。因其良好的调速性能而在电力拖动中得到广泛应用。直流电动机按励磁方式分为永磁、他励和自励3类,其中自励又分为并励、串励和复励3种。 当直流电源通过电刷向电枢绕组供电时,电枢表面的N极下导体可以流过相同方向的电流,根据左手定则导体将受到逆时针方向的力矩作用;电枢表面S极下部分导体也流过相同方向的电流,同样根据左手定则导体也将受到逆时针方向的力矩...

ShawnWang1994的博客 1万+

基于stm32的直流电机串级PID控制(代码开源)

基于stm32的直流电机串级PID控制,做速度位置控制

weixin_45720060的博客 9131

直流电机闭环PID控制

int32_t sp=0,pv=0,pv_1=0,e=0,e_i=0,e_d = 0,out=0; float Kp = 20.0; float Ki = 0.01; float Kd = 10.0; sp = 10000; while (1) { //error pv=TIM2->CNT; e = sp - pv; //derivative = e - e_i,in case sp changes,use pv e_d = pv_1 - pv;...

zh0umu的博客 5905

matlab直流电机pid调速仿真,直流电机双闭环PID调速系统仿真设计

目录直流电机双闭环PID调速系统仿真1 转速、电流双闭环直流调速系统的组成及工作原理2 双闭环调速系统的动态数学模型3 调节器的设计3.1 电流调节器的设计3.2 转速调节器的设计4 搭建模型5 参数计算5.1 参数的直接计算5仿真具体参数6 仿真结果7 结束语8参考文献摘要在工程的应用中,直流电动机的占有很大的比例,同时对于直流系统的调速要求日益增长。在直流调速系统中比较成熟并且比较广泛的是...

weixin_39942451的博客 7523

直流电机PID转速闭环调速控制系统

在工业自动控制系统和各种智能产品中常常会用用电动机进行驱动、传动和控制,而现代智能控制系统中,对电机的控制要求越来越精确和迅速,对环境的适应要求越来越高。随着科技的发展,通过对电机的改造,出现了一些针对各种应用要求的电机,如伺服电机、步进电机、开关磁阻电机等非传统电机。但是在一些对位置控制要求不高的电机控制系统如传动控制系统中,传统电机如直流电机乃有很大的优势,而要对其进行精确而又迅速的控制,就需要复杂的控制系统。随着微电子和计算机的发展,数字控制系统应用越来越广泛,数字控制系统有控制精确,硬件实现简单,受

飞行动力的博客 9628

直流电机闭环调速实验

电机测速是由直流电机带动光栅盘转动,光栅盘上有 12 个透光孔,光栅盘下有一个光电断续器,它输出一组频率正比于电机转速的脉冲信号,经过一级 74LS14 滤去毛刺后送至该模块中的 F/V 转换,通过 F/V 转换就可以得到表征电机的当前转速的电压值。当给定直流电机转速 U(R)接入后,与当前转速值 U(t)(测速输出)相比较,其差值e(t)在计算机中进行 PID 计算,解算成u(t),经数/模转换器(B2)驱动直流电机,改变电机转速,达到直流电机闭环调速控制。式中, u(t )——调节器的输出信号;

qq_62016426的博客 4293

PID控制原理

PID控制原理 PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法,它是连续系统中技术最为成熟、应用最为广泛的一种控制算法,该控制算法出现于20世纪30至40年代,适用于对被控对象模型了解不清楚的场合。实际运行的经验和理论的分析都表明,运用这种控制规律对许多工业过程进行控制时,都能得到比较满意的效果。PID控制的实质就是根据输入的偏差值,按照比例、积分、微分的函数关系进行运算,运算结果用以

逍遥子的博客 2万+

STM32直流电机速度闭环PID控制实战教程

STM32微控制器是STMicroelectronics(意法半导体)生产的一款广泛应用于各种嵌入式系统中的高性能ARM Cortex-M系列微控制器。由于其出色的性能、丰富的外设接口以及灵活的电源管理功能,STM32成为了工业控制、医疗设备、消费电子产品等众多领域的首选。在对闭环控制系统进行设计之前,有必要了解闭环控制系统的概念和基本工作原理。闭环控制系统是一种反馈控制系统,通过监测输出与期望输出之间的差异来调整控制输入,以达到精确控制的目的。

weixin_42471823的博客 922

MATLAB开发直流电机PID速度控制项目

在现代电气工程中,电机模型的建立对于系统的设计、分析和优化至关重要。MATLAB(Matrix Laboratory)是一个高级数学软件包,广泛应用于工程计算、数据分析和算法开发领域。MATLAB中的Simulink模块提供了强大的系统建模和仿真能力,使得电机控制系统的建模变得简单直观。MATLAB电机模型通常包括电机的电气特性、机械特性和控制策略三个主要部分。通过建立这些模型,工程师可以模拟电机在不同工况下的行为,评估控制策略的有效性,并预测电机在实际运行中的性能。

weixin_28746213的博客 1926

LightGBM学习笔记

LightGB学习笔记1. lightgbm概述1.1 lightgbm介绍1.2 lightgbm和xgboost对比2 .直方图算法及改进2.1 直方图算法2.2 直方图算法改进2.2.1 GOSS算法3.树的生长策略4.系统设计5. 实战 lightgbm是基于boosting的学习框架,使用的是基于决策树的学习算法,具有更快的训练速度、更低的内存使用、更高的正确率、并且能够支持并行化学习,可以用来处理大规模数据,本文主要是针对学习视频https://www.bilibili.com/video/BV

一一xi的博客 3299

YOLOv8_obb的C++工程部署实战:从模型转换到实时视频推理

本文详细介绍了YOLOv8_obb模型在C++环境下的完整工程部署流程,涵盖从PyTorch模型到ONNX格式的转换、基于ONNX Runtime的C++推理引擎搭建、旋转框后处理解析,以及实时视频流处理与性能优化。文章重点解析了模型转换的关键参数、环境配置的常见问题、核心推理代码的实现,并提供了实用的避坑指南,旨在帮助开发者高效完成YOLOv8_obb的C++工程部署。

weixin_29100927的博客 41

小曾WRF自学日记(3)渐入佳境 ——WRF实例-数据下载与WPS前处理

ww

weixin_46297571的博客 1475

lattice Diamond Programmer程序下载

Lattice Diamond Programmer(支持Lattice FPGA与CPLD程序下载)

qq_44385725的博客 5150

LeRobot 官方论文:一个用于端到端机器人学习的开源库

本文介绍了一个名为LeRobot的开源库,旨在解决机器人学习领域的碎片化问题。该库提供了端到端的技术栈,包括统一的机器人中间件API、标准化的数据集格式(LeRobotDataset)、优化的推理栈以及多种最先进机器人学习算法的实现。LeRobot支持多种低成本开源机器人平台(如SO-10X、ALOHA-2等),通过共享中间件实现便捷的遥操作和数据收集。其数据集格式已广泛应用于社区,截至2025年9月已有16,000多个数据集公开共享。该库还支持流式处理大规模数据,降低了研究门槛。在模型方面,LeRobot

2506_90492529的博客 891

可信启动方案设计

本博客简要解释了TF-A中的Measured-Boot可信启动设计实现。

AI-安全-功耗 1189

OceanBase数据库LSM-Tree存储引擎深度解析:合并写入与压缩优化策略

OceanBase数据库采用创新的LSM-Tree架构设计,通过"基线-增量"分离存储实现高性能。内存中的MemTable处理写入,磁盘上的SSTable存储有序数据,利用多级缓存加速读取。写入时先写日志再更新内存,合并操作将增量数据整合为基线数据以优化查询性能。相比传统B+树引擎,OceanBase在写入吞吐、压缩效率和存储成本方面优势显著,特别适合写入密集型场景。合并操作作为核心机制,通过多种触发方式和执行策略平衡性能与资源消耗。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1333

PX4从放弃到精通(二十二):日志

文章目录前言一、下载日志二、ulog转CSV三、利用flightplot软件分析PX4的ulog日志1 windos安装2 ubuntu18.04安装四、使用PlotJuggler分析PX4日志五、设置日志记录条件六、添加自定义日志消息 前言 PX4 1.10以上固件 QGC 一、下载日志 将飞控链接地面站,在下图页面点击“刷新”,即可看到保存的日志(前提是要有TF卡) 选择需要下载的日志,点击右侧的“下载”,然后选择目录即可进行下载,如果想擦除所有的日志,可以点击右侧的“擦除全部” 二、ulog转CS

超维空间科技的博客 6769

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 基于MATLAB的图像处理①(图像导入,对比度调节,多图分区域显示)
下一篇: 基于Matlab的图像处理②(图像增强技术,中值滤波,均值滤波)
憨猪在度假
博客等级 码龄7年 2万+粉丝 50原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值