PID--位置型PID和增量式PID比较

2023-05-16

一. 位置型PID

位置型 PID 算法适用于不带积分元件的执行器。 执行器的动作位置与其输入信号呈一一对应的关系。 控制器根据第 n 次计算机采样结果与给定值之间的偏差 e 来计算出第 n 次采用后所输出的控制变量的值。 以调节阀来简单说明,假设调节阀的输入控制信号为 4~20mA, 当 阀 门 开 度 为 0%时 ,控制信号为4mA,而当阀门开度为 100%时,则控制信号为 20mA。

二. 增量式 PID

增量式 PID 算法适用于自身带有积分记忆元件的执行器。这类执行器的动作终点位置和之前每次输入信号的累加值相关。 即每次输入的信号决定相邻两次执行器动作终点位置的增量,因此把这种 PID 算法称之为增量式 PID 算法。 增量式 PID 算法在步进电机的控制和步进电机驱动阀门有着较广泛的运用。

三. 两种算法的区别分析

位置式 PID 控制算法是一种非递推算法,输出 u(k)可以直接控制执行机构的位置,如上文所述的阀门开度的例子, 阀门的开度取决于控制器的输出 u(k)的值。 而增量式 PID 控制算法是一种递推算法,其输出u(k)只是控制量的增量,即 Δu(k)。 而非执行机构的实际位置(例如控制水温上升,无法立即控制最终温度,只能慢慢达到)

位置式 PID 算法的优缺点分析

由位置式 PID 控制的表达式中可以看出: 比例部分只和当前的偏差 e(k)有关,积分部分则是表示系统之前的所有偏差之和, 因此位置式 PID 控制算法的优点在于其控制器结构比较清晰,参数的整定也较为明确。位置式 PID 算法的第一个缺点在于: 当前采样时间的输出值 u(k)与之前各个状态都有关,过去的每个状态都决定着当前时刻的输出值,因此计算时需要对偏差 e(k)进行不断累加,使得计算量不断加大,同时也加大了计算机的负担,一旦计算机出现故障,累加将会停止,输出 u(k)会长度巨大偏差,从而导致执行机构的位置大幅度变化。 位置型 PID 算法的第二个缺点在于积分饱和现象的产生,即当系统的控制量已经达到最大值时,误差依然会在积分的作用下继续累加。 一旦误差开始反向变化,则系统会进入饱和区,并且需要较长时间才能从饱和区退出。 因此当输出 u(k)达到最小或者最大值时,需要停止积分作用,否则将会产生积分饱和现象。 对于积分饱和现象,通常会采取积分限幅算法,即设置控制器输出控制量的极限值,当 PID 控制器的输出量超出设定范围后,即停止积分运算

增量式 PID 算法的优缺点分析

然而对于增量式 PID 算法,它将位置式 PID 算法的缺点加以改进,从而变成了增量式 PID 算法的优点。

①算法采用加权处理,而不需要累加,控制增量 Δu(k)仅仅与最近 3 次的采样值有关;

②计算机每次只会输出控制增量 Δu(k),即执行机构的位置变化量,因此计算机发生故障的几率较小;

③手动切换和自动切换时的冲击小,可以做到无扰动切换。积分饱和现象是位置式 PID 算法应用常见的一种现象,因此对于位置式 PID 算法除了需要对输出进行限幅外还需要对积分输出进行限幅,而增量式算法很好地避免了积分饱和现象,因此在增量式 PID 控制算法中只需要对输出限幅,而无需积分限幅。

参考

① 论文:增量式 PID 和位置式 PID 算法的整定比较与研究(王祎晨)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PID--位置型PID和增量式PID比较 的相关文章

  • APM中SBUS信号解析

    一 SBUS信号概述 SBUS信号以串口传输 xff0c 波特率为100000bps 每2ms一帧 xff0c 一帧25个字节 其中第0字节为起始帧 xff0c 固定为0x0F 第24字节为帧尾 第1 22字节为1 16比例通道数据字节 第
  • 使用simulink分析APM日志信息

    一 将bin转化成mat文件 使用mission planner将bin文件转化成mat文件 二 将工作区变量转化成timeserial对象 RCIN TimeSerial 61 timeseries RCIN 3 RCIN 2 1e6 三
  • Alexa The required native libraries are named “libvlc.dll”

    The required native libraries are named 34 libvlc dll 34 and 34 libvlccore dll 34 In the text below lt libvlc path gt re
  • APM 新版电机电调校准

    旧版的APM电机电调校准需要将油门开到最大后给飞控上电 xff0c 使飞控黄灯常亮后断电 xff0c 继续保持最大油门再给飞控上电 xff0c 听到嘀嘀嘀三声后表示收到遥控器最大油门信号 xff0c 之后再将油门打到最低 xff0c 听到滴
  • APM日志格式表

    APM的日志格式文件在libraries AP Logger LogStructure h文件中 xff0c 二进制数据类型对照表如下 xff1a 单位对照表如下 xff1a
  • APM电机输出逻辑之二

    APM 飞控代码用c 43 43 编写 xff0c 代码中用了很多多态的特性 电机输出相关的函数在void Copter motors output 函数中 由于在Copter类中包含了AP MotorsMulticopter类的实例化对象
  • win11安装ubuntu子系统与桌面 填坑记录

    win11安装ubuntu子系统 win11可以直接从应用市场安装ubuntu子系统 详细安装步骤见参考资料 这里列出一些博主遇到的问题 填坑之路 从应用市场获取ubuntu系统时会报0x80240438或者0x80072efd等错误 网络
  • 机械革命电脑安装Ubuntu18.04+win10正版双系统

    一 电脑设置 系统默认安装了Win10 由于win10系统UEFI的限制 xff0c 其他系统无法加载 因此要装双系统 xff0c 必须先把UEFI模式改成Legacy模式 xff0c 并将Security Boot 改为Disabled
  • python+opencv3生成一个自定义纯色图

    一 图像在计算机中存储为矩阵 矩阵上一个点表示一个像素 若矩阵由一系列0 xff5e 255的整数值组成 xff0c 则表现为灰度图 便于理解 xff0c 以下贴出代码 import cv2 import numpy as np img 6
  • opencv+CUDA9.1+vs2015环境搭建,编译opencv库,调用GPU加速运算

    1 准备工作 xff08 需要用的软件安装 xff09 1 1安装VS2015 CUDA是以VS为基础的 xff0c 因此要先安装VS 安装CUDA的时候会自动检测VS的版本 安装步骤较简单 xff0c 下载在线安装程序之后双击即可 xff
  • px4 mavlink消息自定义及其发送

    在px4源码中自定义消息 xff0c 并发送主要有以下三个大步骤 xff1a 一 自定义mavlink消息 1 在myMessage XML文件中自定义消息 xff08 注意消息ID不要与原有的重复 xff09 具体消息ID可参考这里 2
  • px4自定义uORB消息,并实现收发

    如题 xff0c 实现以上需求 主要有三个步骤 xff1a 一 添加一个新的topic 话题 以uORB test msg为例 1 在根目录中msg文件下添加uORB test msg 并在该文件中加入所需的数据 xff08 在新版本中必须
  • 两台WIN10之间通过局域网共享文件的一些坑

    两台WIN10之间共享文件有两个步骤 准备工作 确保两台电脑在同一个局域网内 xff0c 可以用网线相连 xff0c 也可以链接到同一个路由器 步骤一 xff1a 在A电脑设置共享文件 xff08 夹 xff09 xff08 1 xff09
  • 使用Cifar10训练DenseNet121

    DenseNet默认就是DenseNet BC 相对于resnet xff0c densenet权重参数更少 xff0c 鲁棒性更强 xff10 下载数据集 xff1a Cifar 10在同级文件data下 预训练权重 xff1a 39 d
  • 四旋翼PID调试步骤

    0 将飞机固定在架子上 xff0c 只保留横滚一个自由度 1 将姿态外环参数置为0 xff0c 从姿态内环开始调 由于姿态外环参数为0 xff0c 遥控器的作用量和角度的误差无效 xff0c 飞机无法维持平衡 2 先调姿态内环P xff0c
  • Ubuntu 18.04 解决ssh连接远程服务器的问题

    具体错误为 xff1a connection closed by xx xx xx xx port 22 首先确认远程主机的IP地址是正确的 xff0c 然后进行以下操作 可能原因 1 被防火墙挡了 2 端口没开放 3 ssh服务开了没 网
  • leetcode字符串的全排列题解

    解法描述 xff1a 例如 xff0c 如果集合是 a b c 那么这个集合中元素的所有排列是 a b c a c b b a c b c a c a b c b a xff0c 显然 xff0c 给定n个元素共有n 种不同的排列 xff0
  • 线性二次调节器(LQR)

    线性二次调节器 xff08 LQR xff09 线性二次调节器 xff08 LQR xff09 LQR原理LQR中的LLQR中的QLQR中的R 线性二次调节器 xff08 LQR xff09 线性二次调节器 xff08 Linear Qua
  • 二级倒立摆建模(一)

    目录 一 倒立摆系统简介 二 二级倒立摆模型构建 三 二级倒立摆的线性化模型 四 二级倒立摆的状态空间模型 一 倒立摆系统简介 倒立摆控制系统作为实验装置在控制理论领域的教学与科研工作中担任着不可或缺的角色 在对其稳定控制研究过程中 xff
  • 无人机目标检测

    导师给了个练手项目 xff0c 记录下第一个项目过程 xff1a 项目要求 xff1a 检测无人机降落时是否偏移 xff0c 识别降落点 想法是用opencv xff0c 使用传统的轮廓检测 首先把视频流转换成图片 xff1a 只提取最后两

随机推荐

  • 扩展卡尔曼滤波

    扩展卡尔曼滤波 xff08 Extended Kalman Filter xff0c EKF xff09 是标准卡尔曼滤波在非线性情形下的一种扩展形式 xff0c EKF算法是将非线性函数进行泰勒展开 xff0c 省略高阶项 xff0c 保
  • 相机标定(1)内\外参矩阵和畸变矩阵

    相机标定可以说是计算机视觉 机器视觉的基础 分为以下内容 xff1a 相机标定的目的和意义相机成像过程的简化与建模针孔相机模型的数学描述标定针孔相机模型的参数 相机标定的目的和意义 我们所处的世界是三维的 xff0c 而照片是二维的 xff
  • [Python|最优状态估计与滤波学习笔记] 最小均方滤波,卡尔曼滤波,神经网络滤波

    文章目录 前言 最优状态估计与滤波1 最小均方滤波 xff08 Least Mean Square LMS xff09 基本原理LMS设计步骤仿真代码 2 线性卡尔曼滤波 xff08 Linear Kalman Filter KF xff0
  • jetson机器上对lxde桌面设置中文输入法详细过程(图文展示)

    目录 1 需求2 解决2 1 中文输入法安装包2 2 系统设置 1 需求 手上的jetson nano机器使用的是lxde桌面 xff08 通常从台湾组装的jetson机器会有带有这种图标的界面 xff0c 就是lxde界面 xff0c 和
  • Django密码存储策略分析

    一 源码分析 Django 发布的 1 4 版本中包含了一些安全方面的重要提升 其中一个是使用 PBKDF2 密码加密算法代替了 SHA1 另外一个特性是你可以添加自己的密码加密方法 Django 会使用你提供的第一个密码加密方法 xff0
  • 配置k8s的dashboard

    在https github com kubernetes dashboard releases查看兼容的版本 xff08 使用的k8s是v1 15 1 xff0c dashboard版本是v2 0 0 beta4 xff09 如果安装了一次
  • AirSim学习(1)-介绍,安装,unity测试

    home AirSim是一款基于虚幻引擎的无人机 汽车等模拟器 我们现在也有一个实验性的Unity版本 它是开源的 xff0c 跨平台的 xff0c 支持使用流行的飞行控制器 如PX4和ArduPilot 进行软件在环模拟 xff0c 并支
  • docker数据迁移

    docker数据迁移 前言 开发服务器随着docker运行服务的变多 xff0c docker目录占用磁盘空间也在逐渐变大 xff0c 终于在最近磁盘彻底占满导致容器启动不起来并提示 34 no device space left 34 为
  • 树莓派3B+ VNC连接,cannot currently show the desktop 问题解决

    该问题是分辨率问题 xff0c 修改分辨率就可以 以下是修改过程 备份 span class token function cp span boot config txt config txt 打开文件 span class token f
  • 金蝶K/3 跟踪语句_业务单据

    跟踪语句 业务单据 BOM select from t TableDescription where Ftablename like 39 ICBOM 39 select from t FieldDescription where FTab
  • PX4的填坑经历

    2017年3月中旬正式决定入坑PX4 xff0c 以下是期间的经历 xff08 填坑中 xff09 1 2017年4月1日 按PX4 Development Guide xff0c 在ubuntu上建立PIXHAWK的PX4固件开发环境 x
  • Git 分支管理 和 查看提交历史 标签

    git branch 创建分支 gut branch d 删除分支 git checkout 切换分支命令 git merge 合并分支 用 git add 要告诉 Git 文件冲突已经解决 git log 查看历史 git log onl
  • Android 7.0 Launcher3 去掉应用抽屉

    年初做过一个项目 xff0c 有一个需求就是需要将桌面变为单层不需要二级菜单 最近几次有小伙伴有这个问我这个解决办法 现在我将分享给大家 先上效果图 xff1a 功能分解 去除Allapp键 xff0c 调整HotSeat布局将所有应用摆在
  • C++算法库网站 https://zh.cppreference.com/w/cpp/algorithm

    貌似要出国才能访问的C 43 43 标准库api网站 https zh cppreference com w cpp algorithm 有详细的函数介绍 如下图
  • 关于cv.cvtColor转换的问题及解决方法

    问题描述篇 xff1a 今天在调试困扰了我很久的一个问题 xff0c 在训练网络生成batch数据的时候读入原始图像 xff0c 输出的时候却老是出问题 我们都知道YUV和RGB之间的转换关系 xff1a R 61 Y 43 1 4075
  • Nuttx 驱动开发手册

    目录 Nuttx 代码获取编译 Nuttx 启动流程 Nuttx BootLoader 开发之源码分析 gpio 驱动分析 I2c驱动分析 PX4 框架分析 UORB 进程间通讯分析 PX4应用层驱动分析并实现例程 串口驱动GPS 驱动分析
  • 解析小觅中通过双目相机生成深度图的代码

    最近在使用双目摄像机生成深度图 xff0c 研读一下自带的代码 xff0c 做一个记录 第一部分 xff1a 第一部分是定义了一个命名空间 xff0c 其中包含许多个类 第一个类 xff1a 1 代码 GrabCallbacks类主要用于抓
  • altium designer PCB各层介绍+添加多层+设置正/负片+设置层的网络标号

    top layer 顶层 xff0c 用来走线 bottom layer 底层 xff0c 用来走线 mechanical 机械层 xff0c 用来定义PCB形状和尺寸 keepout layer 禁止布线层 xff0c 用来绘制禁布区 t
  • java死锁产生的条件

    以下四个条件同时满足时机会产生死锁 产生死锁的条件互斥 xff0c 共享资源 X 和 Y 只能被一个线程占用 xff1b 占有且等待 xff0c 线程 T1 已经取得共享资源 X xff0c 在等待共享资源 Y 的时候 xff0c 不释放共
  • PID--位置型PID和增量式PID比较

    一 位置型PID 位置型 PID 算法适用于不带积分元件的执行器 执行器的动作位置与其输入信号呈一一对应的关系 控制器根据第 n 次计算机采样结果与给定值之间的偏差 e 来计算出第 n 次采用后所输出的控制变量的值 以调节阀来简单说明 xf