1 传统的位式控制算法

用户期望值Sv(设定值)经控制算法输出一个输出信号OUT,输出信号加载到执行部件上(像MOS管等)对控制对象进行控制(步进电机、加热器等),控制对象的当前值(Pv)如速度通过传感器反馈给控制算法与Sv相比较。

特点:1 位式算法输出的控制信号只有两种状态‘H’或者‘L’。

2 算法输出信号OUT的依据:

如果Pv>=Sv 输出信号高了

如果Pv<Sv 输出信号低了

缺点:只能考察控制对象的当前值

2 PID算法

Sv:用户的设定值(目标值)

Pv:反应负载当前的状态值(控制对象当前的状态值)

E = Sv - Pv :偏差值

2.1 PID算法分析

1.从开始工作到当前时刻得到一个采样点序列(假如每秒采样一次,Xk表示当前时刻的采样值):

X1,X2,X3,..........Xk-1,Xk

2.分析采样点序列得到三个信息:

1> 偏差值Ek = Sv - Xk 反映了当前时刻,传感器反馈回来的值与目标值偏差的程度;

如果:Ek>0   表示当前时刻未达标

Ek=0   表示当前时刻已达标

Ek<0   表示当前时刻已超标

设:Pout = Kp * Ek  ——比例控制

特点:比例控制一般输出为PWM信号,通过调节PWM的占空比,来对输出进行控制。比例控制只考虑当前时刻是否有偏差,当Ek=0时,负载就处于失控状态,PWM此时可不起作用;比例控制没有偏差时是不起作用的,需要始终有一个偏差。

一般地在算法上加一个常数:

Pout = Kp * Ek + out0 ;

2>历史偏差序列(有正数有负数)

设:E1=Sv-X1,E2=Sv-X2,E3=Sv-X3,.........Ek = Sv - Xk

得序列:E1,E2,E3,.............Ek.

Sk=E1+E2+E3+............+Ek

如果:Sk>0     过去时间段大多数时刻未达标

Sk=0     过去时间段总体情况较好

Sk<0     过去时间段大多数时刻超标

根据历史状态输出信号得:

Iout = Kp * Sk  ——积分算法

单纯的积分控制Sk=0时,会严重干扰当前情况,进入失控状态;一般的

Iout = K* E+ out0

3>最近两次的偏差相减

Dk=Ek-Ek-1

如果:Dk>0 偏差有增大趋势
            Dk=0 偏差趋势没有变化
            Dk<0 偏差有减小趋势
         Dout =Dk * Kp   ——微分控制
       微分控制不可以独立行动,微分算法只关心偏差有没有变化趋势
         Dout =Dk * Kp + out0

PID算法控制简单理解的更多相关文章

  1. PID算法控制直流电机笔记

    1.将偏差的比例.积分和微分通过线性组合构成控制量,用这一控制量对被控对象进行控制,这样的控制器称为PID控制器.简单说就是根据系统的误差,利用比例.积分.微分计算出控制量进行控制. 2.为什么需要P ...

  2. BOOTH 算法的简单理解

    学习FPGA时,对于乘法的运算,尤其是对于有符号的乘法运算,也许最熟悉不过的就是 BOOTH算法了. 这里讲解一下BOOTH算法的计算过程,方便大家对BOOTH的理解.        上图是BOOTH ...

  3. 推荐系统 LFM 算法的简单理解,感觉比大部分网上抄来抄去的文章好理解

    本文主要是基于<推荐系统实践>这本书的读书笔记,还没有实践这些算法. LFM算法是属于隐含语义模型的算法,不同于基于邻域的推荐算法. 隐含语义模型有:LFM,LDA,Topic Model ...

  4. 关于Dijkstra 和 Bellman-ford算法的简单理解

    两个算法都是跟求图的有源最短路径有关.Dijkstra主要针对的是无负权值节点的图,而Bellman-Ford算法则是可以处理有负权值的有向图的最短路径问题.两者都用到了一个“松弛计算”的方法,也就是 ...

  5. PID算法

    所谓PID就是比例-积分-微分的英文缩写,但并不是必须同时具备这三种算法,也可以是 PD, PI,甚至只有 P算法控制,下面分别介绍每个参数的含义:首先需要明确一个事实就是,要实现PID算法,必须在硬 ...

  6. PID算法通俗理解,平衡车,倒立摆,适合不理解PID算法的人来看!

    先插句广告,本人QQ522414928,不熟悉PID算法的可以一起交流学习,随时在线(PID资料再我的另一篇博客里) 倒立摆资料连接↓ https://www.cnblogs.com/LiuXinyu ...

  7. PID算法的理解及场景模拟

    增量式PID算法的简化版之后的公式: △u(t)=Ae(t)-Be(t-1)+Ce(t-2) △u:PID控制器输出的下一时刻的调整量 e(t):PID控制器在当前时刻的状态变化量-给定值 e(t-1 ...

  8. PID算法笔记2

    总所周知,PID算法是个很经典的东西.而做自平衡小车,飞行器PID是一个必须翻过的坎.因此本节我们来好好讲解一下PID,根据我在学习中的体会,力求通俗易懂.并举出PID的形象例子来帮助理解PID.一. ...

  9. PID控制算法的C语言实现一 PID算法原理

    本系列是转载............. 全部的程序有一个共同点:就是我没认真去调pid的参数 在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握PID算法的设 ...

随机推荐

  1. Linux平台Oracle 12.1.0.2 单实例安装部署

    主题:Linux平台Oracle 12.1.0.2 单实例安装部署 环境:RHEL 6.5 + Oracle 12.1.0.2 需求:安装部署OEM 13.2需要Oracle 12.1.0.2版本作为 ...

  2. LeetCode12.整数转罗马数字

    给定一个整数,将其转为罗马数字.输入确保在 1 到 3999 的范围内. 示例 1: 输入: 3 输出: "III" 示例 2: 输入: 4 输出: "IV" ...

  3. .NET 黑魔法 - asp.net core 日志系统

    asp.net core 里如何记录日志呢? 这要从asp.net core的依赖注入说起,在asp.net core里的依赖注入真是无所不在,各种面向切面的接口与事件. 好吧,来点干货. 首先,我们 ...

  4. XMLHttpRequest对象(Ajax)的状态码(readystate) HTTP状态代码(status)

    2018-11-28 14:19:00 来自 :XMLHttpRequest对象(Ajax)的状态码(readystate)  HTTP状态代码(status) XMLHttpRequest对象(Aj ...

  5. SpringMVC探究-----从HelloWorld开始

       1.SpringMVC简介 Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离. 它的设计是围绕Dispatch ...

  6. 为什么我们要使用HTTP Strict Transport Security?

    http://www.freebuf.com/articles/web/66827.html

  7. ext2文件系统的运行—superblock/inode/block

    鸟哥私房菜书上内容: superblock:记录此 filesystem 的整体信息,包括inode/block的总量.使用量.剩余量, 以及文件系统的格式与相关信息等:inode:记录文件的属性,一 ...

  8. maven项目没有src/test/java和src/test/resources目录问题解决

    新建maven项目,如下图示: 只有src/main/java和src/main/resources两个目录,而没有src/test/java和src/test/resources,于是第一反应是没有 ...

  9. tensorflow学习4-过拟合-over-fitting

    过拟合: 真实的应用中,并不是让模型尽量模拟训练数据的行为,而是希望训练数据对未知做出判断. 模型过于复杂后,模型会积极每一个噪声的部分,而不是学习数据中的通用 趋势.当一个模型的参数比训练数据还要多 ...

  10. Python智能检测编码并转码

    #安装包工具 $pip3 install chardet #直接打开文件,中文显示乱码 >>> import chardet >>> f = open('test. ...