首页 > 其他分享 >琢磨下PID的用法

琢磨下PID的用法

时间:2022-12-13 14:47:47浏览次数:38  
标签:输出 20 PID 琢磨 32767 用法 100 10V

PID的目的:

是为了使系统从当前值更快更稳的变到设定值。比如,温度控制,当前是20°,想让它变成100°,这里有个前提条件是要确保整个升温过程中温度都不能超过100°。

简单方法,可以每秒升温a°,(100-20)/a秒后ok。但这种方法缺点是无法确保时刻通过温度反馈来判断后续如何操作,比如预想1秒升温20°,但实际情况都很难控制,

比如我们煤气灶开一样的火,铁锅和砂锅单位时间内升温多少是不一样的。所以我们需要根据经过单位时间后反馈的温度来决定后续操作该如何进行?

回到最开始的例子从20-->100,一开始可以猛烈加热,当温度升到一定程度,再减少一些,如此循环,直到温度无限趋近100°而不超过。我理解PID大体上就是这种理念而产生的。

 

方法:

1、PID有三个参数(常量参数)P、I、D,需要凭经验通过多次调试将其确定下来。

2、三个参数确定后,只要给出当前值和设定值即可通过公式得到结果,根据这个结果来决定下一步的操作

 

如果根据PID的结果进行下一步操作:

PID输出是0-32767的数值,

1)可对应到模拟量输出口如0-10输出,PID输出为32767时模拟口输出10V,PID输出0时模拟口输出也是0V。
举个例子,
用PID控制温度,当前温度20°C,想让它升到100°C,用热水来加热,那么这个热水进水管上用个MFC,流量控制器,这个流量控制器是用0~10V电压来控制阀门开度的,0V就是关阀,10V就是阀全开。
那么当PID算出结果是10000时,就用10000在0-32767中的比例换算成0~10V的值,这个电压加到热水进水管的阀门上,开度就跟着变成多大。

2)这个数值你可以对应到某个输出口用占空比型式输出如周期设成一秒那么它的输出占空比高时会是高电频0.99秒低电频0.01秒如此循环,占空比低时相反。
举个例子,
PID值=(32767-0)/4,那么如果周期是一秒,则打开0.25秒,关闭0.75秒,从而实现控制。

标签:输出,20,PID,琢磨,32767,用法,100,10V
From: https://www.cnblogs.com/castlewu/p/16978700.html

相关文章

  • Selenium中的option用法实例
    Selenium中的option用法实例在上一篇文章Selenium中免登录的实现方法一option中我们用到了option,而option的用法是很多的,本文举几个例子关于无头浏览器,也属于option的一......
  • [转]PID控制参数整定口诀
    0.PID控制系统  1.PID调参口诀        参数整定找最佳,从小到大顺序查        先是比例后积分,最后再把微分加。        P-I-D  ......
  • [转]PID控制
    目录1基本情况1.1位置式PID1.2增量式PID1.3PID控制适用系统2PID三个量的含义解析2.1P:比例2.2I:积分2.3D:微分2.4PID:三者的关系3PID控制中特殊情况考虑3......
  • SQL基本用法总括一
    整理一份SQL基本用法,包含:①表:创建,查询,修改,重命名      ②删除:字段,表,数据,主键,自增长      ③新增:字段,表      ④更新,排序,分组    ......
  • JAVA8 lambda之reduce三种用法
    reduce操作可以根据指定的计算模型,实现从Stream中生成一个指定类型的值。一,用法1未定义初始值,从而第一次执行的时候第一个参数m的值是Stream的第一个元素,第二个参数n是St......
  • 第一百一十二篇: JS数组Array(一)数组基本用法
    好家伙, 1.数组 Array应该就是ECMAScript中最常用的类型了。ECMAScript数组跟其他编程语言的数组有很大区别。跟其他语言中的数组一样,ECMAScript数组也是一组有序的......
  • String类的用法
    1.charAt  举例:  2.codePointAt  举例:  3.codePointBefore:  举例:  4.codePointCount:  举例:  5.getChars:  举例: 运行结果:......
  • JS中URLSearchParams的基本用法
    本章将和大家分享JS中URLSearchParams的基本用法。话不多说,下面我们直接来看代码。一、JS中URLSearchParams的基本用法<!DOCTYPEhtml><htmllang="en"><head><......
  • golang的chan用法与fatal error: all goroutines are asleep - deadlock!
    例子1:funcmain(){ch:=make(chanint)ch<-1fmt.Println("发送成功")}上面这段代码能够通过编译,但是执行的时候会出现以下错误:为什么会出现deadlock错误呢?......
  • react进阶用法完全指南
    React调用回调函数,正确设置this指向的三种方法通过bindthis.increment=this.increment.bind(this);通过箭头函数<buttononClick={this.multi}>点我*10</button......