(二)PID控制的Anti-windup

news2024/11/22 14:25:46

在这里插入图片描述

  • 比例环节:快速接近目标
  • 积分环节:防止稳态误差
  • 微分环节:减少振荡

被控对象可以分为两个部分,分别是执行器,用于产生力或者能量从而改变系统,和处理,比如说温控的加热过程。在现实世界中,执行器往往不能执行所有来自控制器的输出,因为他有速度约束(Rate constraint)和饱和(Saturation)。

一、执行器饱和

在这里插入图片描述
上图所示,只考虑比例环节。因为系统存在稳态误差,所以控制系统的误差将会保持不变,输出的控制信号将会一直增加,执行器(比如电机)的转速也会逐渐提升,但是由于电机的物理限制,到达某个转速后,就无法继续增加转速了,我们称执行器饱和。这种饱和是常见的:
在这里插入图片描述
我们希望这个执行器是线性的,也就是我给多少控制信号他就执行多少。

二、由饱和引起的Windup

在这里插入图片描述
只考虑积分环节,此时飞行器出现了一种特殊情况,飞行器被你的手抓住了。抓住一段时间后,积分项的累计使得控制输出——转速越来越快,直到达到电机的最大转速, 因为积分环节并不知道执行器达到了其物理极限(也就是饱和),兢兢业业地增加控制速度。对于执行器没有什么影响,顶多是不执行。

问题出现在,释放之后。假设这个飞行器电机的最大转速是1000RPM,释放时下发的速度是2000RPM,此时释放飞行器,他会突然以最大的加速度朝着目标高度前进,误差会逐渐降低,但是因为下发的速度实在太大,就算到达了目标高度也不会停止,而是继续往上升,误差项变成了负数,积分环节的将会反向进行调整,从而加速速度的降低,我们不得不等待这个积分环节将下发速度降低到额定转速以下,才能继续减少上升的加速度。等待的这段时间,飞行器早就不知道飞到哪里去了。

我们需要做点什么来防止这种Windup,这里的Windup就是指积分环节的累计导致控制朝着远离目标值的方向保持加速一段时间,出现的原因就是因为执行器饱和。

我们需要对积分环节做限幅操作(Clamping),也就是关掉积分项。
在这里插入图片描述
解决的方法就是增加一个饱和限制,目的是正确识别这个Windup,然后停止积分环节的累计。两个条件满足,便可以判断是这种情况:

  • 比较输入和饱和值不等
  • 输入误差符号与输出量符号相同

那么我们需要积分环节,反之不需要。

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

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

相关文章

PCL学习六:Filtering-滤波

参考引用 Point Cloud Library黑马机器人 | PCL-3D点云 1. 点云滤波概述 1.1 背景 在获取点云数据时,由于设备精度、操作者经验、环境因素等带来的影响,以及电磁波衍射特性、被测物体表面性质变化和数据拼接配准操作过程的影响,点云数据中将…

java的spi机制使用场景讲解和具体使用

八股文背多了,相信大家都听说过一个词,SPI扩展。 有的面试官就很喜欢问这个问题,SpringBoot的自动装配是如何实现的? 基本上,你一说是基于spring的SPI扩展机制,再把spring.factories文件和EnableAutoConf…

回收站文件恢复,分享4个巧妙解决方法!

案例:回收站文件怎么恢复 【清理电脑时一不小心清空了我的回收站,有朋友知道该怎么恢复吗?急急急!】 回收站对于电脑用户来说,可以带来很多的方便,能让用户能够在删除文件后将其恢复。但是,有…

C++之正则表达式

目录 #include • .:换行符以外的任何字符 • […]:…字符中的任何一个 • [^…]:…字符之外的任何一个 • [[:charclass:]]:指定之字符类charclass中的一个 • \n, \t, \f, \r, \v:换行符,tab符号&#xf…

协程实现原理

大家好,我是易安!今天我们来探讨一个问题,Go 协程的实现原理。此“协程”非彼”携程“。 线程实现模型 讲协程之前,我们先看下线程的模型。 实现线程主要有三种方式:轻量级进程和内核线程一对一相互映射实现的1:1线程…

自动驾驶经验分享

人生经验总结 第一个要聊的就是在自动驾驶行业工作的这几年,有什么人生经验可以总结一下。 我觉得从这几个方面,首先第一个是能力上,能力上你需要去锻炼,做成功一件事情的一个能力;技术上,对前沿的技术要…

并发编程java

1、CountDownLatch: 如果我们知道了我们的需要执行的任务数,那么我们可以用java并发包下的CountDownLatch,直接上代码: public class CountDownLaunch {private static final Executor executor Executors.newFixedThreadPool(…

SpringBoot参数校验

简单数据类型 SpringBoot自带了validation工具可以从后端对前端传来的参数进行校验&#xff0c;用法如下&#xff1a; 引入validation起步依赖 <!-- 参数校验 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>sprin…

springboot、SpringCloud 常见版本版本介绍

官方版本号&#xff08;2023年5月6日&#xff09; Spring Boot 版本说明 Spring Boot的版本号分析&#xff1a; Spring Boot的版本以数字表示。例如&#xff1a;Spring Boot 2.4.1.RELEASE --> 主版本.次版本.增量版本&#xff08;Bug修复&#xff09; 主版本&#xff0c…

学系统集成项目管理工程师(中项)系列18a_进度管理(上)

1. 规划项目进度管理 1.1. 为实施项目进度管理制定政策、程序&#xff0c;并形成文档化的项目进度管理计划的过程 1.2. 输入 1.2.1. 项目管理计划 1.2.1.1. 范围基准 1.2.1.2. 其他信息 1.2.2. 项目章程 1.2.2.1. 【19下选43】 1.2.2.2. 项目章程中规定的项目审批要求和总…

python ---->>利用 urllib 库获取网络资源

我的个人博客主页&#xff1a;如果’真能转义1️⃣说1️⃣的博客主页 &#xff08;1&#xff09;关于Python基本语法学习---->可以参考我的这篇博客《我在VScode学Python》 &#xff08;2&#xff09;pip是必须的在我们学习python这门语言的过程中Python ----&#xff1e;&a…

SAP: SMARTFORMS

事务码&#xff1a;SMARTFORMS 1、输入表格名&#xff0c;点击创建/更改/显示 2、设置页格式 查看页格式事务码&#xff1a;SPAD 创建的详细流程&#xff1a;详见博客ABAP开发Smartform实例_abap smartform_小强pp的博客-CSDN博客 SMARTFORMS TEMPLATE使用方法_Seele_1018的…

MT6771安卓手机核心板MT6771核心板方案智能模块

MT6771核心板是一款基于MTK平台、工业级高性能、可运行android10.0操作系统的4GAI安卓智能模块&#xff0c;核心处理器架构采用ARM4xCortex-A73upto2.0GHzARM4xCortex-A53upto2.0GHz&#xff0c;为智能设备提供了很好的运算支持。很高兴看到这个模块集成了4G LTE连接和高能效。…

界面开发框架Qt新手入门 - 自定义排序/筛选模型示例(二)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 自定义排序/筛选模型…

ALOHA 开源机械臂(Viper 300 Widow X 250 6DOF机械臂组成)第一部分

软件简介&#xff1a; ALOHA 即 A Low-cost Open-source Hardware System for Bimanual Teleoperation&#xff0c;是一个低成本的开源双手遥控操作硬件系统&#xff0c;即开源机械臂。其算法 Action Chunking with Transformers (ACT) 采用了神经网络模型 Transformers&#…

#杂谈 个人嵌入式开发的学习

本人目前从事的是嵌入式软件开发的相关工作。这是一个关于个人做项目时用过的开发工具的杂谈&#xff0c;仅是为了记录学习经历&#xff0c;同时也为和我有同样瞎搞东西的爱好者提供一个学习思路。 前言 我的技术栈&#xff1a; 下面介绍一下我用过在或者还在用的开发工具&…

JavaWeb综合案例-Servlet优化

将WebServlet的访问路径不要写死&#xff0c;写成通配符的形式 1. 反射笔记&#xff08;后续代码会用到该机制&#xff09; 1.1 基础概念 JAVA反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&am…

【Nodejs】Express实现接口

介绍 Express 是一个第三方模块&#xff0c;用于快速搭建服务器 类似于jquery与DOMExpress 是一个基于 Node.js 平台&#xff0c;快速、开放、极简的 web 开发框架。express保留了http模块的基本API&#xff0c;使用express的时候&#xff0c;也能使用http的APIexpress还额外封…

【花雕学AI】我们如何才能避免被ChatGPT替代?——一个跨学科的视角

ChatGPT是一个由OpenAI开发的AI文本工具&#xff0c;它可以理解和生成自然语言&#xff0c;从而与用户进行对话。ChatGPT是基于GPT-3或者GPT-4模型的&#xff0c;这是目前最大和最先进的语言模型之一。ChatGPT通过在大量的互联网文本数据上进行预训练和强化学习&#xff0c;学习…

linux修改程序的配置文件

修改指定文件中的数&#xff0c;例如创建一个文件如图 把6修改成7 修改完成 代码如下&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <unistd.h> #include <string.h> #incl…