【嵌入式电机控制#11】PID控制入门:对比例算法应用的深度理解

 接下来内容需要数学功底,并且有现成结论的内容不做推导,重在讲解工程实践中的方法论,建议控制类专业或学习过相关理论的人阅读

一、开闭环系统

        (1)开环控制系统:被控对象输出对控制器的输出没有影响

        (2)闭环控制系统:系统被控对象的输出会返送回来影响控制器输出,形成一个或多个闭环控制系统。把控制系统输出量的一部分或全部,通过一定方法和装置返送回系统的输入端,然后将反馈信息与原输入信息进行比较,再将比较结果施加于系统进行控制,避免系统偏离预定目标。

        、、、、

        (3)反馈:控制论的基本概念,将系统输出反馈输入端,并以某种方式改变输入,进而影响系统功能的全过程。反馈可分为负反馈、正反馈。

        负反馈起到与输入相反的作用,使系统偏差减小,趋于稳定。

        正反馈使偏差不断增大,使系统震荡,可以放大控制作用。正反馈主要用于信号产生电路、输入前馈系统等。

        对负反馈的研究是控制论的核心问题。

        举例1 投篮

    

        举例2 工业液位调节系统     

        举例3 工业加热炉温控系统

        第一个系统研究的是执行器的运动问题,我们称为运动控制系统。

        后两个研究的是被控对象在某段过程的状态问题,我们称为过程控制系统。

        运动控制系统通常要求系统具有较小惯性或自身惯性的影响能被克制,因而实时性更强。

        而过程控制系统通常具有较大惯性,很难快速改变输出稳态。

        而嵌入式电机控制,主要涉及的是实时性要求更强的运动控制系统。

二、PID控制器

        (1)PID控制器:将偏差的比例、积分、微分,通过线性组合构成控制量,用这一控制量对被控对象进行控制,这样的控制器叫做PID控制器。

        (2)PID控制的使用:当实际工程问题处于黑盒状态时(被控对象的结构和参数不完全清楚),系统控制器的结构参数必须依靠经验和现场调试来确定。

                这样的特征让PID更能适用于黑盒问题,帮助我们更快的进行系统建模。

                然而,PID的三个系数并非时刻全部都在使用,我们也会根据情况,选择PI和PD控制。

        (3)PID算法的要求:除了一般软件算法常见的六大要求以外,运动控制系统中的PID算法不仅仅需要通过数学公式实现占空比自动调整,还要在极短时间内就能实现稳定在目标输出。

          所以,电机控制的PID算法必须实现:稳、准、快

                             

                                       PID调参过程中,各系统建模的响应曲线对比

三、PID控制算法

        (1)比例控制(P)

                比例控制是最简单的控制,他的控制器输出与偏差量成比例关系。当仅有比例控制时,系统稳态误差为0,则输出也为0。所以,比例控制是用来放大当前误差的一种算法,不能单将其用入电机控制系统中!

                             

        下面是一个Kp调节的响应曲线,不同曲线对应了不同Kp值下的响应,我们 一 一 分析。

        首先,Reference代表我们的阶跃输入(Step Input),它的幅值与我们的目标速度相同,这也是我们嵌入式系统中常用的一种控制器输入,它的响应叫做阶跃响应(Step Response)。

        1. 当Kp=0.5时,由于误差被缩小并输出,而误差本身也是随着修正而输出的,所以曲线应该呈缓慢爬升趋势。(可以做DE或CE严格推导)

        2. 当Kp=1.6时,由于误差被放大,曲线迅速超调,但是超调量控制在了1一下,所以它之后会缓慢震荡,然后回到目标稳态。(在实际情况下,这种行为已经很危险了,遇到类似一定要注意

        3. 当Kp=1.1时,虽然超调,但是超调量并不是很大,经过短暂的时间就直接回稳了。

        在以上三种曲线中,K=1.1时是比较理想的,因为它既没有多少震荡,响应速度也足够的快。

           

       

        若Kp调大,在相同误差下,会造成更大的输出但是如果Kp过大,系统会因为细小误差的出现而变得极其不稳定。

        相反的,若Kp小,在相同误差下,输出更小,因此控制器会敏感性会降低。若比例增益太小,当有干扰出现时,其控制器输出的抑制信号可能不够,进而无法修正

       

        需要注意的是,对于大部分系统而言,单调Kp很难稳定在我们预设值。这时,比例系统稳态输出会与预设产生自身无法消除的误差,叫做稳态误差(Steady State Error)。

        而控制理论给出了一个解释,稳态误差产生本质上是因为负载特性和控制特性曲线的交点与设定值不一致。

        以下是Kp环节的误差修正方程,SV是设定值,PV是测量值:

                         

       在单位反馈线性定常系统中,由于Final Value Throem(终值定理),稳态误差与系统开环增益K成反比。

        如果系统仅采用比例控制,则开环增益等于比例增益、执行器以及被控对象本身的增益乘积

                                                                  K = Kp * Ko

        所以稳态误差ess反比于Kp*Ko

        但在一般情况下,我们在变动Kp时,都是在具有一定非线性的系统中操作的(如电机控制系统)。我们在变动Kp的时候Ko也会因为电气、机械的影响跟着改变,而我们单独改变Ko的时候,Kp由于时控制器固定的算法,所以是不变的。

        因此!!!

        在常见电机控制系统中,稳态误差和比例增益成正比,而和控制系统本身的增益成反比。

        若加入一个偏置,或者是积分控制,则可以消除我们的稳态误差。

        这个偏置到底是什么呢?我们下一回分解!

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

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

相关文章

多视图几何:本质矩阵与基础矩阵

文章目录 1. 前置知识1.1. 向量叉乘1.2. 混合积1.3. 引理证明 2. 本质矩阵3. 基础矩阵4. 应用例子 1. 前置知识 1.1. 向量叉乘 假设 a ( a x a y a z ) \mathbf{a} \begin{pmatrix} a_x \\ a_y \\ a_z \end{pmatrix} a ​ax​ay​az​​ ​ 以及 b ( b x b y b z ) \mat…

Hive集群之间迁移的Linux Shell脚本

新旧 Hive 集群之前数据迁移单表脚本 migrate_hive_single_table.sh #!/bin/bash#配置参数 OLD_NAMENODE"hdfs://<old-namenode>:<old-port>" EXPORT_PATH"/tmp/hive-export/dm" NEW_DB"dm_events" TABLE_NAME"dm_usereventfi…

新时代的开始,华为开源仓颉编程语言!

7月30日&#xff0c;华为即将开源自研的仓颉编程语言。 仓颉这个名字很有意思。传说中的仓颉创造了汉字&#xff0c;开启了中华文明的文字时代。华为用这个名字&#xff0c;体现了对中华文化的致敬。从2020年开始研发&#xff0c;到去年首次亮相&#xff0c;再到现在的全面开源…

【python实用小脚本-128】基于 Python 的 Hacker News 爬虫工具:自动化抓取新闻数据

引言 在技术社区中&#xff0c;Hacker News 是一个汇聚最新技术文章和讨论的热门平台。许多开发者和技术爱好者依赖它来获取行业动态和前沿资讯。然而&#xff0c;手动浏览和筛选这些文章可能耗时且低效。本文将介绍一个基于 Python 的 Hacker News 爬虫工具&#xff0c;它能够…

mac 电脑安装Homebrew来安装npm与node成功后,安装nvm的流程

文章目录 前言一、卸载node(如果没下载可以忽略这步)1.官网下载安装包的2. homebrew安装的 二、安装Homebrew(1) 命令安装&#xff08;2&#xff09;出现上面提示&#xff0c;执行对应的命令&#xff08;3&#xff09;校验是否安装成功 三&#xff1a;安装node&#xff08;Home…

根据无人机倾斜摄影osgb做的3dmax模型3dtiles制作,导出.b3dm加载到谷歌地图cesiumlab

根据无人机倾斜摄影osgb做的3dmax模型3dtiles制作&#xff0c;导出.b3dm加载到谷歌地图cesiumlab 根据无人机倾斜摄影osgb做的3dmax模型3dtiles制作&#xff0c;导出.b3dm加载到谷歌地图cesiumlab

Yocto项目:嵌入式Linux开发的“万能烹饪手册”

目录 一.Yocto是什么? 二.Yocto如何运作&#xff1f; 2.1 三大核心工具 2.2 实例 三.为什么开发者爱用Yocto&#xff1f; 3.1 ​自由定制&#xff0c;拒绝“全家桶”​​ 3.2 跨平台支持&#xff1a;从x86到火星芯片​ 3.3 工业级可靠性​ PetaLinux是Xilinx官方推出的…

【nosql】有哪些非关系型数据库?

非关系型数据库Nosql 分类 键值存储 (Key-Value Store): 代表: Redis, DynamoDB, RocksDB, etcd核心优势: 极致简单、超高读写性能&#xff08;尤其内存型&#xff09;、高吞吐。场景: 缓存、会话存储、配置、计数器、分布式协调、简单消息队列。 列式 / 宽列存储 (Wide-Colu…

Redis存储Cookie实现爬虫保持登录 requests | selenium

前言 前面已经介绍了requests和selenium这两种方式的基础知识和模拟登录,但是我们需要每次都进行登录,这明显是很麻烦并且不合理的,所以这次我分享一下怎么可以让我们的程序进行一次登录之后,和普通浏览器一样下次不进行登录直接进行对网站数据的爬取 下面的我分享的内容需要…

leetcode:474. 一和零[01背包][动态规划]

学习要点 给定背包容量&#xff0c;装满背包最多有多少个物品深入理解01背包深入理解动态规划 题目链接 474. 一和零 - 力扣&#xff08;LeetCode&#xff09; 题目描述 解法:01背包 class Solution { public:int findMaxForm(vector<string>& strs, int m, int …

UE5 使用过程遇到的问题

切换缓存位置 进入界面&#xff0c;选择-编辑-编辑器偏好设置搜索缓存&#xff0c;找到通用全局&#xff0c;修改本地DCC路径到要切换的位置 闪退报错 Fatal: Failed to get dll export function: cuvidGetDecoderCaps [NVDEC] 因为NVIDIA驱动没有卸载干净&#xff0c;使用D…

2025 BSidesMumbaiCTF re 部分wp

XORyy 附件拖入ida。明文 idkwhattonamethis 附件拖入ida 前三个函数都是检查环境&#xff0c;跳过即可 长度为5&#xff0c;可以根据flag格式求解。脚本。尽管多解但是可能的结果很少 Diff_EQ 附件拖入ida z3求解等式&#xff0c;脚本。无反调试的情况下本地可以验证&#xff…

图灵完备之路(数电学习三分钟)----逻辑与计算架构

经过前面几节的学习&#xff0c;我们已经有了简单的数电知识&#xff0c;下面&#xff0c;我们将正式进入设计简单图灵完备机的工作&#xff0c;首先&#xff0c;我们要设计出具有逻辑运算与计算功能的简单结构&#xff1a; 1.逻辑架构 首先&#xff0c;该架构能实现多种逻辑…

【C++笔记】AVL树的深度剖析

【C笔记】AVL树的深度剖析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录【C笔记】AVL树的深度剖析前言一. AVL树的概念二.AVL树的实现2.1 AVL树的结构2.2 AVL树的插入2.3 平衡因子更新三.旋转3.1旋转的原则3.2右单旋3.3左单…

支持向量机(SVM)在肝脏CT/MRI图像分类(肝癌检测)中的应用及实现

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

DeepSeek扫雷游戏网页版HTML5(附源码)

用DeepSeek帮忙生成一个网页版的扫雷游戏&#xff0c;效果非常棒&#xff0c;基于HTML5实现&#xff0c;方便运行。 提示词prompt 帮我做一个网页版的 html5 扫雷游戏游戏功能说明 游戏难度&#xff1a; 1 简单&#xff1a;1010 格子&#xff0c;10个地雷 2 中等&#xff1a;16…

Day53GAN对抗生成网络思想

生成对抗网络&#xff08;GAN&#xff09;是深度学习领域的一种革命性模型&#xff0c;由Ian Goodfellow等人于2014年提出。其核心思想源于博弈论中的零和博弈&#xff0c;通过两个神经网络&#xff08;生成器和判别器&#xff09;的对抗性训练&#xff0c;实现数据的高质量生成…

meilisearch-轻量级搜索引擎

meilisearch是一款开源的轻量级搜索引擎&#xff0c;相比于elasticsearch等重量级搜索引擎&#xff0c;meilisearch注重数据搜索&#xff0c;从而而省去了其它不必要的功能&#xff08;如支持聚合分析、分布式搜索等特性&#xff09;&#xff0c;以便于快速上手开发和构建应用。…

51c大模型~合集150

我自己的原文哦~ https://blog.51cto.com/whaosoft/14034001 #原来Scaling Law还能被优化 Meta这招省token又提效 2017 年&#xff0c;一篇《Attention Is All You Need》论文成为 AI 发展的一个重要分水岭&#xff0c;其中提出的 Transformer 依然是现今主流语言模型…

每天一个前端小知识 Day 23 - PWA 渐进式 Web 应用开发

PWA 渐进式 Web 应用开发&#xff08;离线缓存、桌面安装等&#xff09; &#x1f9e0; 一、什么是 PWA&#xff1f; PWA&#xff08;Progressive Web App&#xff09;是一种让 Web 应用具有类似原生 App 用户体验的技术体系。 PWA 不是一个框架&#xff0c;而是由一组浏览器 A…