(三) PID控制中的噪声过滤

news2024/10/7 2:29:38

在这里插入图片描述

在前面的章节里,我们谈到了积分环节由于执行器的物理限制导致的积分项Wind-up,通过设置饱和限幅器,选择性关闭积分环节来完成Wind-up问题。

今天我们要解决的问题就是微分环节可能存在的问题。通过传感器我们可以观测出一个被控量的大小,和前面说到的anti-windup一样,受到物理环境的限制,对于传感器而言,那就是噪声。

我们知道微分环节其实就是对误差的一个求导,几何意义就是斜率,斜率越大,表示控制系统受到的影响也越大。如果噪声变化量很大(或者说频率很大)系统将会受到很大的影响。

测量导致的噪声

传感器是会受到周围环境的干扰,它反映的通常不是实际值。比如:

  • Thermal noise
  • Shot noise
  • Flicker noise
  • Brust noise
  • Coupled noise
  • White noise

我们感兴趣的是他们是如何影响我们的系统的。虽然对于某些控制规律中,只要噪声是一个低幅度的,他可以看成是对系统无关紧要的影响,但对这次要讲的理想PID而言是不一定的。
在这里插入图片描述
上图,黄色的斜线代表了高低频率噪声的斜率,斜率越大,对微分项影响也越大,从而会影响我们整个控制的输出。或者你可以从代数角度来解释,因为所有信号都可以看成是无穷个正弦信号的组合:
n o i s e = y ( t ) = A sin ⁡ ( ω a t + ϕ a ) + B sin ⁡ ( ω b t + ϕ b ) + ⋯ noise=y(t)=A\sin(\omega_at +\phi_a)+B\sin(\omega_b t+\phi_b)+\cdots noise=y(t)=Asin(ωat+ϕa)+Bsin(ωbt+ϕb)+
为了简化问题,我们只考虑第一项:
y ( t ) = A sin ⁡ ( ω a + ϕ a ) y(t)=A\sin(\omega_a +\phi_a) y(t)=Asin(ωa+ϕa)
其中, A A A表示幅值, ω a \omega_a ωa角频率, ϕ \phi ϕ相角。

对其进行求导:
y ( t ) = A ⋅ ω a ⋅ sin ⁡ ( ω a + ϕ a + 9 0 ∘ ) y(t)=A\cdot\omega_a\cdot\sin(\omega_a+\phi_a+90^{\circ}) y(t)=Aωasin(ωa+ϕa+90)
只看幅值部分,有以下结论:

  • ω a > 1 r a d / s \omega_a> 1rad/s ωa>1rad/s 幅值变大
  • ω a < 1 r a d / s \omega_a<1rad/s ωa<1rad/s 幅值变小

可以画出以下图形:
在这里插入图片描述

随着角频率的增大,幅值也增大;反之,角频率越小,幅值也越小。我们想要的是设定一个合理的截断,降低其对微分项的影响。重新回到我们的PID图:
在这里插入图片描述
理想情况我们希望将所有噪声都分离出来,事实上不可能做到。索性的是,大多数噪声高幅值的通常具有较低频率,高频率的往往具有较低幅值。显然使用一个低通滤波器是合适的,比如说一阶低通滤波器。
在这里插入图片描述
设定一个截止频率,小于这个频率的都保留,大于这个频率的都过滤。这样的处理将会使得噪声对于我们的系统影响降低。

拉普拉斯变换

拉普拉斯域的传递函数含义
S微分
1/S积分
N/(S+N)截止频率为N rad/s低通滤波器

考虑一个低通滤波器:
10 S + 10 \frac{10}{S+10} S+1010
常数项10就是代表截止频率为 10 r a d / s 10 rad/s 10rad/s的一阶低通滤波器。不过我们也会写成其他形式:
N S + N = 1 1 N S + 1 = 1 τ S + 1 \frac{N}{S+N}=\frac{1}{\frac{1}{N}S+1}=\frac{1}{\tau S+1} S+NN=N1S+11=τS+11
因为频率的倒数是时间,所以这个 τ \tau τ也被称为时间常数。

OK!
在这里插入图片描述
这里再提一下,如果实现等价方法(积分反馈回路):
在这里插入图片描述
那么我们如何在这两种方法中选择呢?第一种方法逻辑清晰易懂,但是实现起来效率不高,第二种则是抽象,但是效率较高。

来看看matlab中simulink是如何使用的:

在这里插入图片描述
可以看出,Simulink中的微分项是:
D N 1 + N 1 s D\frac{N}{1+N\frac{1}{s}} D1+Ns1N
显然他不是一纯粹的微分环节,他是带了低通滤波,截止频率为 N N N.

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

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

相关文章

奇偶校验位

原理 奇偶校验位有两种类型&#xff1a;偶校验位与奇校验位。 以偶校验位来说&#xff0c;如果一组给定数据位中1的个数是奇数&#xff0c;补一个bit为1&#xff0c;使得总的1的个数是偶数。例&#xff1a;0000001, 补一个bit为1, 00000011。 以奇校验位来说&#xff0c;如果给…

电子科技大学编译原理复习笔记(二):数据类型

目录 前言 重点一览 引言 内部类型 内部类型的特点 内部类型的优越性 用户定义类型 ⭐超重点&#xff1a;六种数据类型聚合方式 ⭐抽象数据类型&#xff08;重点、考点&#xff09; 类型操作 类型检查 类型转换 类型等价 实现模型 本章小结 前言 本复习笔记基于…

Spark 3:Spark Core RDD持久化

RDD 的数据是过程数据 RDD 的缓存 # coding:utf8 import timefrom pyspark import SparkConf, SparkContext from pyspark.storagelevel import StorageLevelif __name__ __main__:conf SparkConf().setAppName("test").setMaster("local[*]")sc SparkC…

flask实现简易图书管理系统

项目结构 技术选型 flask 做后端, 提供数据和渲染html 暂时没有提供mysql, 后续会更新操作mysql和样式美化的版本 起一个flask服务 flask是python的一个web框架, 下面演示如何提供http接口, 并返回json数据 main.py # flask创建http接口 from flask import Flask, request, jso…

Linux 的软件生态 软件包管理器(yum)编译器 - vim

Linux的软件生态 在 手机 ipad 笔记本等等我们使用的产品当中&#xff0c;会有应用商店等等可以下载软件的 软件包管理器&#xff0c;当我们想要下载某一款软件的时候&#xff0c;就去这个应用商店当中搜索&#xff0c;或者是去寻找&#xff0c;找到之后&#xff0c;进行下载&a…

Linux Kernel源码阅读: x86-64 系统调用实现细节(超详细)

0、前言 本文采用Linux 内核 v3.10 版本 本文不涉及调试、跟踪及异常处理的细节 一、系统调用简介 系统调用是用户空间程序与内核交互的主要机制。系统调用与普通函数调用不同&#xff0c;因为它调用的是内核里的代码。使用系统调用时&#xff0c;需要特殊指令以使处理器权限转…

初识Linux操作系统及常用的Linux命令

Linux是一种自由和开放源码的类UNIX操作系统&#xff0c;也是一种基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随互联网的发展&#xff0c;企业对服务器速度和安全的要求越来越高&#xff0c;Linux系统由于具有性能稳定、防火墙组件性能高效、配置简单等…

Java内存模型的抽象结构 JMM

并发编程模型的两个关键问题 线程之间如何通信及线程之间如何同步。 线程之间如何通信&#xff1a;共享内存&#xff0c;消息传递线程之间如何同步通信是指线程之间以何种机制来 交换信息同步是指程序中用于控制不同线程间 操作发生相对顺序 的机制在共享内存的并发模型里&a…

Maven 详细教程(万字长文)

目录 一、Maven的简介二、Maven安装与配置三、Maven POM四、创建 Maven 项目五、Maven项目的构建与测试六、Maven依赖七、Maven仓库&#xff08;本地仓库远程仓库&#xff09;八、Maven生命周期&#xff08;cleansitedefault&#xff09;九、Maven常用插件十、Maven 版本号约定…

大模型时代的prompt学习(持续更新)

目录 为什么要学prompt基本原则prompt撰写框架Base Prompt FrameworkCRISPE Prompt Framework 场景撰写文案文档竞品分析产品设计数据分析 chain of thoughtzero shotin context learning(few shot)Self-Consistency Program-Aidedprompt tipsTo Do and Not To Doadd examples引…

水下图像0

d_r_1_.jpg 一个拖着电线的水下六足机器人在海水中作业 A robot is exploring the reef on the sea floor A hexapod robot works next to reef at the bottom of the sea A rectangular deep-sea robot swims past a patch of reef An underwater robot is detecting coral …

神经网络视觉AI“后时代”自瞄实现与对抗

通俗一点来说&#xff0c;自瞄是在FPS射击游戏中最为常见的作弊手段之一&#xff0c;当下最火爆的CSGO也深受其扰&#xff0c;在此我说些我自己的看法&#xff0c;欢迎大家在下方留言讨论&#xff1b; &#xff08;1&#xff09;软件层面 在神经网络方面的视觉AI应用流行之前&…

面试官:工作三年,还来面初级软件测试?恐怕你的软件测试工程师的头衔要加双引号...

相信身为测试工程师的你可能经历过这些&#xff1a; 已经工作三年了&#xff0c;每个项目都会加班加点全力以赴去完成&#xff0c;薪资增长幅度却不如人意。 听说年后离职的老同事&#xff0c;金三刚拿下高薪offer&#xff0c;年薪直奔50万了。 由于现在的公司接触不到新技术&…

docker(一)安装部署卸载以及基础命令使用

文章目录 1、安装1.1、安装插件1.2、设置源&#xff1a;1.3、安装docker卸载docker&#xff1a;1.4、配置国内源 2、基础命令3、提交某个镜像为新的镜像4、docker 存档 1、安装 机器配置: 1.1、安装插件 [rootdophin ~]# yum -y install yum-utils1.2、设置源&#xff1a; …

Spring相关面试题(Spring核心)

Spring相关面试题 谁定义了bean的生命周期IOC初始化 IOC启动阶段 (Spring容器的启动流程)Spring-IOC是什么IOC是什么DI是什么 依赖注入 DI的三种方式Spring-AOP是什么OOPAOPAOP实现方式动JDK动态代理和CGLIB动态代理 JDK动态代理和CGLIB动态代理IOC 和 AOP 的联系和区别 BeanFa…

【2023 · CANN训练营第一季】应用开发(初级)第五章——媒体数据处理

1.媒体数据处理 受网络结构和训练方式等因素的影响&#xff0c;绝大多数神经网络模型对输入数据都有格式上的限制。在计算机视觉领域&#xff0c;这个限制大多体现在图像的尺寸、色域、归一化参数等。如果源图或视频的尺寸、格式等与网络模型的要求不一致时&#xff0c;我们需…

LLMs开源模型们和数据集简介

本篇文章整理下目前常用的LLMs模型们和数据集简介。 BackBones ​https://github.com/FreedomIntelligence/LLMZoo 可以看到目前被广泛用来作为LLMs的backbone的模型有以下特点&#xff1a; Backbone&#xff1a;基于某个开源backbone&#xff0c;如GLM、LLaMA、BLOOMZ&#…

Android 文本识别:MLKIT + PreviewView

随着移动设备的普及和摄像头的高像素化&#xff0c;利用相机进行文本识别成为了一种流行的方式。MLKit 是 Google 提供的一款机器学习工具包&#xff0c;其中包含了丰富的图像和语言处理功能&#xff0c;包括文本识别。PreviewView 是 Android Jetpack 的一部分&#xff0c;它提…

2 files found with path ‘lib/arm64-v8a/libwechatbacktrace.so‘ from inputs

2 files found with path lib/arm64-v8a/libwechatbacktrace.so from inputs 解决方案&#xff0c;在app module的build.gradle里面的 android { } 块里面添加&#xff1a; packagingOptions {exclude lib/arm64-v8a/libwechatbacktrace.so} 如果有多个&#xff0c;就再增加行…

“宝石与石头”:一道简单却巧妙的力扣算法题

本篇博客会讲解力扣“771. 宝石与石头”的解题思路&#xff0c;这是题目链接。 先来审题&#xff1a; 以下是输出示例&#xff1a; 以下是提示&#xff1a; 本题可以使用数组模拟哈希表来实现。先把宝石字符串中的字符标识到数组的对应位置&#xff0c;每次拿石头字符串中的…