串联型PID,并联型PID与标准型PID简要说明
PID广泛应用于工业生产各个环节,然而对于不同PID结构会有一些差异,导致在调参时若按照常规的经验调试,结果将会有非常大的不同。
串联型PID(Serial PID)
串联型PID的三个环节由比例,积分和微分项串级而成,结构简图如下:
其传递函数为:
若使用后向欧拉法将其离散化,即将:
带入式(1-1)中,可得到:
其中:
- —— 第m时刻控制器输出
- —— 第m时刻的误差
- —— 离散化控制周期
式(1-3)即为串联型PID的离散化增量式实现。利用递推的方法可得到绝对式实现如下:
并联型PID(Parallel PID)
并联型PID的三个环节由比例,积分和微分项并联而成,其结构简图如下:
其传递函数为:
串联型与并联型二者的系数有所不同,其关系如下:
使用后向欧拉离散化,可得到并联型PID的离散化增量式实现如下:
若使用Tustin方式离散化,即将:
带入式(2-1)中,并将置为0,可得到:
此即为并联型PI的离散化增量式实现。同样利用递推的方法可以得到绝对式实现如下:
标准型PID(Standard or mixed or Ideal PID)
标准型PID与上述二者都不同,其结构简图如下:
其传递函数为:
此时有:
使用后向欧拉离散化方法,可得到标准型PID的离散化增量式实现:
若使用Tustin方式离散化,并将置0,则得到标准型PI的离散化增量式实现:
式(3-4)即为TI的快速电流环(FCL)中速度优化型PI控制器实现原理。值得注意的是,FCL中的各变量均为标幺值,因此实际实现需要稍作转换,即:
其中:
- —— 电压标幺基值
- —— 电流标幺基值
最后,使用同样的递推法,可以得到绝对式实现:
三者区别
三者最重要的区别在于不同结构的参数对于控制器行为影响的不同。并联型PID实现了比例项,积分项和微分项的完全解耦,调节其中的与即可独立的作用在比例,积分和微分项上;而标准形式的将同时影响比例,积分和微分三项行为。串联型类似。工业应用中,标准形式和并联形式的PID应用的最为广泛,且Simulink中也可以看到,PID的形式选择分为Parallel及Ideal(即Standard):
Simulink Parallel PIDSimulink Ideal(Standard) PID值得注意的是比例项和积分项都与前文相同,而微分项,MATLAB中用代替了纯微分项。将其化简可以得到:
前面为正常的微分项,后面则乘上了一个一阶低通滤波器,而即为低通截止频率,对于Ideal类型的控制器,此即为改进型标准PID。该部分的离散化与标准型PID描述相同,唯一的差别在于微分项需要经过一次滤波处理。此处给出绝对式的两种实现(改进型并联PID同理),实现一(先滤波,后微分):
其中:实现二(先微分,后滤波):
其中:
Note
- 无论是串联型,并联型还是标准型,在实现上都分为绝对式PID还是增量式PID。这与PID类型无关,只是实现手段不同。
参考资料
<div id="refer-anchor-1"></div>
作者:SmartFish
链接:https://www.jianshu.com/p/caa2423d82db
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
串联型PID,并联型PID与标准型PID简要说明的更多相关文章
- Python基础:数值(布尔型、整型、长整型、浮点型、复数)
一.概述 Python中的 数值类型(Numeric Types)共有5种:布尔型(bool).整型(int).长整型(long).浮点型(float)和复数(complex). 数值类型支持的主要操 ...
- JSON转换类(一)--过滤特殊字符,格式化字符型、日期型、布尔型
/// <summary> /// 过滤特殊字符 /// </summary> private static string String2Json(String s) { St ...
- PDO 查询mysql返回字段整型变为String型解决方法
PDO 查询mysql返回字段整型变为String型解决方法 使用PDO查询mysql数据库时,执行prepare,execute后,返回的字段数据全都变为字符型. 例如id在数据库中是Int的,查询 ...
- C字符串和C++中string的区别 &&&&C++中int型与string型互相转换
在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别: C字符串 string对象(C++) 所需的头文件名称 ...
- USB 2.0 A型、B型、Mini和Micro接口定义及封装
USB全称Universal Serial Bus(通用串行总线),目前USB 2.0接口分为四种类型A型.B型.Mini型还有后来补充的Micro型接口,每种接口都分插头和插座两个部分,Micro还 ...
- oracle 非数字型转数字型
原文:oracle 非数字型转数字型 oracle中如果一个字段内容不全是数字型 可以通过以下方式过滤 to_number(substr(translate(a.vital_signs_cvalues ...
- Java 中的 int 型转为 long 型
先将 int 型转为 String 型,然后再将 String 转为 long 型,如下图: public class TestIntToLong { public static void main( ...
- 范型方法 & 范型参数 & 范型返回值
Java范型类 public class FanXingClassTest { public static void main(String args[]){ Test<Integer> ...
- Starting MySQL....The server quit without updating PID file[失败]/lib/mysql/ip12189.pid). 错误一例
[root@ip12189 etc]# service mysqld startStarting MySQL....The server quit without updating PID file[ ...
随机推荐
- docker:nginx+confd动态生成配置
docker:nginx+confd动态生成配置 当我们项目越来越多时手动去服务器修改nginx配置是一件很麻烦而且可能出错的事情.我们可以通过nginx+confd+配置中心实现一套方案避免出错并减 ...
- selenium+python自动化101-使用execute_script() 方法获取 JavaScript 返回值
前言 之前经常使用 execute_script() 方法执行 JavaScript 的来解决页面上一些 selenium 无法操作的元素,但是一直无法获取执行的返回值. 最近翻文档,发现 execu ...
- Python:Scipy.interpolate
注意 以下插值函数中,待插值点的坐标,最好按次序排列(参与插值的基准点的坐标可以打乱次序).如果打乱顺序,可能会导致插值结果异常(插值异常而不是错误,不会报错,但是结果有明显异常). griddata ...
- Pycharm:使用Edit Custom VM Options导致Pycharm无法启动
解决办法: Edit Custom VM Options用来扩大内存,但是内存设置不当可能会导致Pycharm无法启动 如果无法启动,可以在我的文档中的pycharm201X.X(日期不同名字也不同) ...
- git命令合集
##快捷键 ##一. 快捷键 1. 清屏快捷键 control+L 2. vim快捷操作 * control+b 往上翻页 * Control+f 往下翻页 * shift+g 回到末尾 3. oh ...
- JZ-042-和为 S 的两个数字
和为 S 的两个数字 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 返回值描述: 对应每个测试案例,输出两 ...
- Nodejs在Linux环境安装
一.下载安装包 http://nodejs.cn/download/ 二.解压 tar -xf node-v14.3.0-linux-x64.tar.xz 三.配置 1.编辑文件vim /etc/pr ...
- centos7运行system-config-kickstart时报错
centos7运行system-config-kickstart时在Package Selection模块中出现如下错误: Package Selection Packageselection is ...
- 人生苦短,我用JRebel
昨天看到团子推送的一篇关于热部署的文章,其中介绍了自研的Sonic插件在公司内部的应用.同时晒出来一张对比图: 团子表示我们的插件要比同类插件优秀哦.不过我定睛一看,好家伙,第一列的JRebel在图中 ...
- linux下安装简单的文件上传与下载工具 lrzsz
编译安装 1.从下面的网站下载 lrzsz-1.12.20.tar.gz wget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 2.查看里面的I ...