PID参数调节的经验

2023-10-30

一、为什么P的值太小会有稳态误差?

举个例子,假如一个温度控制系统,就比如控制烙铁的温度。
1.我们在烙铁电源线中间串一个继电器作为自动开关,继电器用单片机控制。
2.烙铁头上绑一个热电偶,作为温度反馈元件。
首先假设:
1.给定值Sv=100度。
2.PWM的周期T=1000,对应单片机电压U=5V。
3.最低动作电压,或者叫死区电压为2.5V。

假如一开始烙铁上电,烙铁温度是10度,那么此时偏差Ek=100-10=90 比例控制公式:Pout=Kp * Ek 1、若Kp设为1,Pout=1*90=90,电压:90/1000*5V=0.9V<2.5V 所以温度不会升高 2、若Kp设为10,Pout=10*90=900,电压:900/1000*5V=4.5V>2.5V 所以温度会升高,但随着温度身高,Pout会减低,当温度升高到50℃时,Pout=10*50=500,电压:500/1000*5V=2.5V,此时电压无法让温度升高了,此刻就达到了稳态误差,也就是50。 3、若Kp设为50,Pout=50*90=4500>1000,电压:5V,满负荷升温。 当温度升高到90℃时,Pout=50*10=500,电压:500/1000*5V=2.5V,此 时电压无法让温度升高了,此刻就达到了稳态误差,也就是90。 增大Kp的系数,可以减小稳态误差,但无法消除。Kp太小,系统存在过大的稳态误差;而Kp过大,则会使系统有超调,并且出现震荡。 2.为什么Kp过大时系统会超调、震荡? 当Kp=200时,假如温度升到了90度,此时偏差为10,但此时系统输出电压U=200*10 /1000 *5 =10V,但因为最大5V,所以系统仍以5V的电压高度运行,然后逐渐高速接近100度,此时注意,温度越高偏差越小输出越小。 通过计算,可以得到,当温度为97.5℃时,Pout=2.5*200=500,电压:500/1000·5V=2.5V,此时停止加热,但实际情况是余热会让温度继续上升,并不会停止,所以温度会很快地超过100℃,然后又会降温,升温从而产生震荡。 3.为什么积分项可以消除稳态误差?

积分的几何意义是求面积即求和,
积分公式如下:Iout = Kp * 1/Ti * T * ∑ Ek
Iout=∑ Ek ,k∈( 0 , n )
只要反馈值和设定值之间有误差,就会一直求和,直至反馈值和设定值一致。

4.为什么微分项可以抑制震荡、限制超调、以及可以作为超前控制系统的主要输出?

微分的数学意义是求导,速度的导数是加速度,即反应单位时间内的变化量。
微分公式如下:Dout=Kp * Td * [ E(k)-E(k-1) ]/ T
核心公式是:[ E(k)-E(k-1) ]/ T,“本次偏差减去上次偏差,再除以两次间隔的时间”,直至变化率为0才会没有输出。
只要将微分项的输出量的符号设为负值。注意了,那么一旦系统有变化率,此时微分项输出多少,系统就得从总输出中减去多少。若前两次偏差的变化率非常大,那么本次总输出减去的值也就对应的非常多,也就是大大削弱了总输出量,这就相当于微分项作为一个阻尼,抑制了系统的输出

5.PID调试口诀

参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢,微分时间应加长
理想曲线两个波,前高后低四比一
一看二调多分析,调节质量不会低

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

PID参数调节的经验 的相关文章

  • 电机调速(PID算法)(程序原理图全套资料)

    要求 设计一个基于改变PWM信号占空比来实现直流电动机转速控制的系统 满足控制指标要求 思维导图如下 最终设计的成果为 测速使用霍尔传感器 然后霍尔传感器感应的是使用高强度的磁铁 淘宝上面有买 电机驱动用现成的L9110模块 显示直接用OL
  • 基于MATLAB的模糊pi控制器的设计

    基于MATLAB的模糊pi控制器的设计 模糊规则隶属函数的建立 a newfis fuzzypid 添加第一个输入变量e a addvar a input e 1 1 a addmf a input 1 N zmf 1 1 3 a addm
  • TSI系统测量参数之:转速和零转速

    一 TSI系统测量参数 1 轴向位移 2 盖振或瓦振 3 偏心 4 键相 5 零转速 6 轴向振动 7 相对热膨胀 胀差 8 绝对热膨胀 缸胀 二 各参数作用 1 零转速与转速 1 零转速 主要用在汽机转速到零时投盘车的连锁以及对大机转速的
  • 什么是死区时间

    死区时间是PWM输出时 为了使H桥或半H桥的上下管不会因为开关的关断延迟问题发生同时导通而设置的一个保护时段 通常也指pwm响应时间 由于IGBT 绝缘栅极型功率管 等功率器件都存在一定的结电容 所以会造成器件导通关断的延迟现象 一般在设计
  • # Arduino小车PID调速——整定参数初试水

    Arduino小车PID调速 整定参数初试水 在实现了小车较为可靠的测速基础上 便可以正式开展PID调速实验了 本文是基于使用Arduino平台上由Brett Beauregard大神写的PID库进行参数整定的 侧重于在对PID算法有基本了
  • PID算法与PID自整定算法

    本文是由于研发恒温槽项目故需要了解PID控制算法和PID自整定算法 为方便本人日后需要故作此记录 直接粘贴代码吧 这是PID位置式控温算法 函数名 void Pid positional float speed 用途 PID输出 说明 参数
  • [经验] 轻松解读PID控制算法的三种参数的自整定方法

    轻松解读PID控制算法的三种参数的自整定方法 机器人论坛 电子技术论坛 广受欢迎的专业电子论坛 elecfans com
  • PID控制算法01

    PID控制算法 PID控制算法公式 原理 参数作用 PID算法及改进 两个基本类型 位置型PID控制 增量型PID控制 积分环节改进的PID控制 积分分离的PID控制 变速积分的PID控制 抗积分饱和的PID控制 微分环节改进的PID控制
  • PID控制算法(PID控制原理与程序流程)

    PID控制算法 PID控制原理与程序流程 暗影玄极 博客园 cnblogs com
  • 如何在C++中使用system()命令获取执行进程的pid

    当我们使用system 命令 程序等待完成 但我正在执行process using system 并使用负载平衡服务器 因为该程序在执行系统命令后立即进入下一行 请注意 process可能不完整 system my script after
  • docker和主机之间的PID映射

    docker 命名空间与主机命名空间有何不同以及 pid 如何在这两者之间映射 谁能给我一个想法 有助于使用源代码在主机和 docker 之间映射 pid 的简单方法 您可以在中找到映射 proc PID status文件 它包含这样一行
  • 将手柄传递到管道中

    说我有 node foo js node bar js 有没有办法将 foo 的标准输入句柄传递给 bar js 我有一个罕见的情况 我想在管道中进行向后通信 至少我知道我可以发送node bar js的pidnode foo js 鉴于
  • Java程序如何获得自己的进程ID?

    如何获取我的 Java 进程的 ID 我知道有几种依赖于平台的技巧 但我更喜欢更通用的解决方案 不存在可以保证在所有 jvm 实现中工作的独立于平台的方法 ManagementFactory getRuntimeMXBean getName
  • 有没有办法确定 Linux PID 是否暂停?

    我有一个 python 脚本 它使用 SIGSTOP 和 SIGCONT 命令与 os kill 来暂停或恢复进程 有没有办法判断相关PID是处于暂停状态还是恢复状态 您可以从进程的 proc 目录 proc
  • 识别 DNS​​ 请求的 PID 源 (Windows XP)

    我希望确定发出 DNS 请求的进程 查看查询给了我一个线索 但并不能帮助我确定确切的过程 我可以在 Wireshark 中看到本地端口号 但请求太短暂 无法被 TCPView 接收 有没有可以捕获 DNS 请求和 PID 的日志记录工具 过
  • Ubuntu Java:查找特定程序的 pid 并终止该程序

    我正在尝试创建一个应用程序来检查此特定应用程序是否正在运行 然后在指定的时间后终止该应用程序 我打算获取应用程序的 pid 如何获取应用程序的 pid Thanks 你可以尝试ps aux grep foobar获取 pid 然后发出kil
  • Bash:是否可以阻止 PID 被重复使用?

    是否可以阻止 PID 被重复使用 例如 如果我运行一份工作myjob在背景中myjob 并使用获取PIDPID 是否可以阻止 linux 系统重新使用该 PID 直到我检查该 PID 不再存在 进程已完成 换句话说 我想做类似的事情 myj
  • os.kill 没有引发 OSError,但是我没有看到给定的 pid 正在运行

    在我的 ubuntu 服务器上运行以下命令 python c import os os kill 5555 0 这样做是为了查看 pid 5555 是否正在运行 根据我的理解 如果 pid 没有运行 这应该会引发 OSError 这不会对我
  • 如何通过VBA获取当前Excel实例的进程ID,而不使用标题?

    如何获取运行 VBA 代码的当前 Excel 实例的进程 ID 我不想通过标题中的名称来请求它 当我有两个或多个具有相同标题的 Excel 实例时 这会导致问题 您可以使用此方法来获取当前进程ID Declare Function GetC
  • 如何在bash中列出所有后台pid

    要么我无法正确表达我的搜索 要么答案不容易找到 但我正在尝试找出如何列出我的所有后台任务 PID 例如 到目前为止 我发现要列出我们使用的最后一个 PID 但现在我想列出之前任务的 PID 如果存在 但我找不到如何做到这一点 最终我想列出我

随机推荐

  • Java垃圾收集的困境与JVM的跨代引用解决方案

    垃圾收集 Garbage Collection GC 是Java语言中的一项重要特性 它可以自动管理内存并回收不再使用的对象 然而 垃圾收集面临着一些困境 其中之一是处理跨代引用的问题 在本文中 我们将探讨这个困境 并介绍JVM Java虚
  • web服务器原理

    目录 一 第一步 DNS域名解析 二 第二步 建立TCP连接 三 第三步 HTTP通信 四 HTTP请求报文 五 HTTP响应报文 六 第四步 关闭TCP连接 首先 举个例子 例如 在浏览器地址栏键入URL 按下回车之后会经历以下流程 1
  • CSS_高度自动过渡 auto height

    方法一 grid 布局中的 fr 单位 推荐使用 div class wrap div
  • _kbhit()以及_getch()函数的用法

    kbhit kbhit用来检测键bai盘是否有按键 有则返回 1 没有则返回0 函数名 kbhit 包含头文件 include
  • node.js模拟cookie信息请求数据

    有时候获取第三方服务器数据 抓取网站数据时 需要验证cookie信息才能拿到 用nodejs本身的 https模块设置请求头 再发送请求即可 方法 https request url options callback const https
  • 访问计算机需要用户名密码,访问局域网电脑提示需要用户名和密码该怎么办

    在日常工作中经常要建设局域网 如果访问局域网中工作组的电脑时提示需要用户名和密码怎么办 访问局域网电脑提示需要用户名和密码的解决方法其实很简单 下面由学习啦小编告诉你 访问局域网电脑提示需要用户名和密码的解决方法 如果我们访问对方电脑出现如
  • linux硬盘io高排错,磁盘I/O很高的解决思路

    介绍 磁盘IO突然很高是运维人员经常碰到的问题 这是由于有大量的磁盘读和写造成的 通常发生在数据库身上 然而发生的场景各种各样 本文举几个例子阐述解决思路 正文 找到是什么程序在大量的进行读写操作 可以通过监控软件 如zabbix 或工具
  • js的Math对象方法

  • Leetcode 刷题笔记(二) —— 数组类型解题方法二:双指针法

    文章目录 系列文章目录 快慢双指针法 27 移除元素 26 删除有序数组中的重复项 283 移动零 844 比较含退格的字符串 总结 首尾双指针法 977 有序数组的平方 系列文章目录 一 数组类型解题方法一 二分法 二 数组类型解题方法二
  • android下播放器视频输出方法总结

    转自 http m myexception cn android 1790584 html 题记 bitmap native windows opengles api android app native player 在Android下输
  • tomcat官网下载详细步骤

    1 tomcat官方网址 https tomcat apache org 2 选择自己所需要的版本 我选择的tomcat 7 3 选择版本 4 我选择的是7 0 109 5 选择bin 6 选择自己需要的版本 我选择的是zip文件 点击下载
  • boost下载和编译初步指南(windows10+VScode)

    文章目录 boost库介绍 boost下载 配置vscode 测试 boost库介绍 学boost库之前 应该先对STL Standard Template Library 标准模板库已经有所了解 boost是对STL的一个延续和补充 ST
  • BeanCopier的简单使用

    BeanCopier的简单使用 cglib包下的一个类 简单栗子 创建实例 BeanCopier copier BeanCopier create source getClass target getClass false Copy操作 c
  • Jenkins安装配置

    目录 Jenkins 下载 安装配置 安装rpm包 修改配置文件 检测jdk是否安装 检查jenkins是否配置jdk 启动 访问 查看密码 配置 常见错误 jenkins启动时出现Warning jenkins整个安装配置正确 但是最后在
  • 红与黑(bfs + dfs 解法)(算法图论基础入门)

    红与黑问题 文章目录 红与黑问题 前言 问题描述 bfs 解法 dfs 解法 前言 献给阿尔吉侬的花束 入门级bfs查找 模版解读 错误示范 在之前的博客当中 详细地介绍了这类题目的解法 今天为大家带来一道类似的题目练练手 后续还会更新更有
  • 各种优化器SGD,AdaGrad,Adam,LBFGS都做了什么?

    文章目录 各种优化器SGD AdaGrad Adam LBFGS都做了什么 1 SGD 2 SGD Momentum 3 NAG Nesterov Accelerated Gradient 4 AdaGrad Adaptive Gradie
  • vuex(多用于不同页面之间的数据共用和修改)

    之前一直不理解vuex用于哪些方面 现在了解了 其实就类似于不同页面之间的传值 以前我们会用 key value通过地址栏来传值 当然在vue中也可以通过地址栏传值 而现在我们也可以通过vuex来做数据传递和修改 其实就是把store当做一
  • 初始化锁相环——嵌入式

    锁相环 Phase Locked Loop 简称PLL 是一种广泛应用于电子系统中的控制电路 用于将输入信号的相位与参考信号的相位同步 在嵌入式系统中 初始化锁相环是一个关键步骤 它确保系统能够正常运行并与外部时钟同步 本文将介绍如何在嵌入
  • OpenCV使用Shi-Tomasi 算法来实现角点检测

    Shi Tomasi 算法是Harris 算法的改进 Harris 算法最原始的定义是将矩阵 M 的行列式值与 M 的迹相减 再将差值同预先给定的阈值进行比较 后来Shi 和Tomasi 提出改进的方法 若两个特征值中较小的一个大于最小阈值
  • PID参数调节的经验

    一 为什么P的值太小会有稳态误差 举个例子 假如一个温度控制系统 就比如控制烙铁的温度 1 我们在烙铁电源线中间串一个继电器作为自动开关 继电器用单片机控制 2 烙铁头上绑一个热电偶 作为温度反馈元件 首先假设 1 给定值Sv 100度 2