当前位置: 首页 > news >正文

深圳网a深圳网站建设网站上传图片要求

深圳网a深圳网站建设,网站上传图片要求,ppt免费下载素材库,可信网站认证有用吗前面已经实现了各种的PID算法#xff0c;然而在某些给定值频繁且大幅变化的场合#xff0c;微分项常常会引起系统的振荡。为了适应这种给定值频繁变化的场合#xff0c;人们设计了微分先行算法。 1、微分先行算法的思想 微分先行PID控制是只对输出量进行微分#xff0c;而…前面已经实现了各种的PID算法然而在某些给定值频繁且大幅变化的场合微分项常常会引起系统的振荡。为了适应这种给定值频繁变化的场合人们设计了微分先行算法。 1、微分先行算法的思想 微分先行PID控制是只对输出量进行微分而对给定指令不起微分作用因此它适合于给定指令频繁升降的场合可以避免指令的改变导致超调过大。微分先行的基本结构图 根据上面的结构图我们可以推出PID控制器的输出公式比例和积分是不变的只是微分部分变为只对对象输出积分记为y我们对微分部分引入一阶惯性滤波可记微分部分的传递函数如下 于是微分部分可以推导出如下的公式 前面我们在推导PID的公式时曾规定KdKp*Td/T于是我们将其带入公式可得 于是我们就可以得到微分先行的离散化公式 这即是位置型PID的计算公式了我们也可以使用前面的方法推导增量型的计算公式如下 从上面的公式我们发现微分部分只与测量值有关而且与连续的几个测量值都有关。而与设定值没有关系设定值的阶跃变化不会造成高频的干扰。 2、算法实现 前面我们已经简单的介绍了微分现行的基本结构也推导了位置型以及增量型公式接下来我们根据前面对其基本思想的描述来实现基于微分先行的PID算法实现同样是包括位置型和增量型两种实现方式。 2.1、位置型PID算法实现 关于微分先行PID算法的公式我们已经推导出来了编码实现就是在公式的基础上将其计算机语言化。同样的首先定义PID对象的结构体 /*定义结构体和公用体*/ typedef struct {float setpoint;       //设定值float proportiongain;     //比例系数float integralgain;      //积分系数float derivativegain;    //微分系数float lasterror;     //前一拍偏差float result;     //输出值float integral;   //积分值float derivative;      //微分项float lastPv;     //前一拍的测量值float gama;      //微分先行滤波系数 }PID; 接下来实现PID控制器 void PIDRegulation(PID *vPID, float processValue) {float thisError;float c1,c2,c3,temp;thisErrorvPID-setpoint-processValue;vPID-integralthisError;tempvPID- gama * vPID- derivativegain vPID- proportiongain;c3vPID- derivativegain/temp;c2(vPID- derivativegain vPID- proportiongain)/temp;c1vPID- gama*c3;vPID- derivativec1* vPID- derivativec2*processValuec3* vPID- lastPv;vPID-resultvPID-proportiongain*thisErrorvPID-integralgain*vPID-integralvPID-derivative;vPID-lasterrorthisError;vPID- lastPv processValue; } 对于微分先行的位置型PID控制器来说本次的微分项不仅与上一拍的微分结果有关而且与上一拍的测量值有关。 2.2、增量型PID算法实现 微分先行增量型PID控制算法的实现就是以前面的增量型公式为基础。微分先行的比例与积分部分并没有什么变化当然积分部分也可以采用各种优化算法。而微分部分以增量型公式实现即可首先定义PID对象的结构体 /*定义结构体和公用体*/ typedef struct {float setpoint;       //设定值float proportiongain;     //比例系数float integralgain;      //积分系数float derivativegain;    //微分系数float lasterror;     //前一拍偏差float preerror;     //前两拍偏差float deadband;     //死区float result;      //输出值float deltadiff;              /*微分增量*/float integralValue;          /*积分累计量*/float gama;                   /*微分先行滤波系数*/float lastPv;                 /*上一拍的过程测量值*/float lastDeltaPv;            /*上一拍的过程测量值增量*/ }PID; 接下来实现PID控制器 void PIDRegulation(PID *vPID, float processValue) {float thisError;float increment;float pError,iError;float c1,c2,c3,temp;float deltaPv;tempvPID- gama * vPID- derivativegain vPID- proportiongain;c3vPID- derivativegain/temp;c2(vPID- derivativegain vPID- proportiongain)/temp;c1vPID- gama*c3;deltaPvprocessValue- vPID- lastDeltaPvvPID- deltadiff c1* vPID- deltadiff c2*deltaPv c3* vPID- lastDeltaPv;thisErrorvPID-setpoint-processValue; //得到偏差值pErrorthisError-vPID-lasterror;iErrorthisError;incrementvPID-proportiongain*pErrorvPID-integralgain*iErrorvPID- deltadiff;   //增量计算vPID-preerrorvPID-lasterror; //存放偏差用于下次运算vPID-lastDeltaPvdeltaPv;vPID-lastPv processValue;vPID-lasterrorthisError;vPID-resultincrement; } 这就实现了一个最简单的微分先行的增量型PID控制器与一般的PID控制器相比还需要知道前一拍的测量值、前一拍的测量值增值以及前一拍的微分增量其余的只需要按公式完成即可。 3、总结 微分先行由于微分部分只对测量值起作用所以可以消除设定值突变的影响还可以引入低通滤波甚至在必要时将比例作用也可进行相应的改进。其实用于设定值会频繁改变的过程对象防止设定值的频繁波动造成系统的不稳定。该控制对于改善系统的动态特性是有好处的但势必影响响应的速度需全面考虑。 欢迎关注
http://wiki.neutronadmin.com/news/81914/

相关文章:

  • 网站优化一年多少钱互联网保险公司有几家
  • 百度云搜索引擎网站网站建设的细节处理
  • 加盟类网站怎么做做一网站需要多少钱
  • 北京三屏网站制作网站内链优化的角度
  • 一般网站建设流程有哪些步骤page文件怎么转换wordpress
  • 十堰市住房和城乡建设厅官方网站互联网公司怎么盈利
  • 做网站需要什么证件吗正规的锦州网站建设
  • 网站建设项目国内外分析报告wordpress前台很慢
  • p2p网站开发维护wordpress 微信 权限
  • 怎样做免费网站推广网站空间多大合适
  • 外贸soho虚拟公司做网站wordpress 页面 评论链接 新窗口打开
  • 河南省和建设厅网站首页免费网站建设咨询
  • 青岛手机网站建设南宁网络推广方案
  • 番禺商城网站建设最大的地方门户网站源码
  • 大学生网站开发总结报告如何给国外网站做seo
  • 做网站号码wordpress 商务
  • 国外空间网站3建设营销型网站流程图
  • 贵港网站seo织梦音乐网站模板
  • 海淘网站主要关键词旺道seo系统
  • 阿里云网站建设——部署与发布wordpress黄聪
  • 珠海市网站设计公司apache wordpress配置
  • asp.net网站开发介绍视频网站如何推广
  • 手机app 网站建设台州免费做网站
  • 取消网站备案流程自己如何做网站统计
  • 网站托管服务适用于php 除了做网站
  • 专业的网站制作团队网站建设的基本步骤是哪些
  • 广州海珠区网站建设门户网站开发一般多少钱
  • php企业网站 源码免版权图片网站
  • 如何做网站拓扑结构图荣成市有做网站的吗
  • 局域网网站建设书籍学校建立网站