当前位置: 首页 > 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://www.yutouwan.com/news/81914/

相关文章:

  • 建德网站优化公司网站设计过程
  • 腾冲住房和城乡建设局门户网站网站搜索建设
  • 图片直链在线生成网站合肥专业网站建设
  • 凡科建站微信小程序什么网站下载素材做图的
  • 佛山市网站建设分站多少钱工程门户网站建设
  • 流量多网站深圳flash网站建设
  • 订货网站怎么做网站用ps如何做
  • 江苏分销网站建设seo排名优化软件有用
  • 做公司网站需注意什么在线音乐网站开发
  • 无锡定制网站制作公司网站收录差
  • 自己做网站有名西宁整站优化
  • 做狗狗网站的背景图设计院都是带编制的吗
  • 网站登录注册做验证码的目地海南在线直播
  • 做词频分析的网站wordpress区块链插件
  • 遵义市城乡建设局安管人员考试网站制作网站教学
  • 曲靖房地产网站开发十秒折一个萝卜刀
  • vivo官网网站服务中心个人网页设计思维导图
  • 贵阳网站开发方舟网络哪些网站设计的比较好
  • 手机销售网站模板seo优化关键词排名
  • 沈阳网站建设开发设计公司网站建设应该学什么
  • 保险网站源码网页制作基础教程做不出来
  • 建网站可以用企业qq吗武功做网站
  • 中国临海门户网站工程建设潍坊站总站人工服务电话
  • 租用网站服务器价格网站源码建设模板
  • 河南营销型网站网站改版策划方案
  • 在家给别人做网站合法吗在百度如何发布作品
  • c2c网站代表和网址更改域名代理商对网站有影响吗
  • wordpress当下载站不同域名一样的网站
  • 黑龙江建设人员证件查询网站wordpress快速发布
  • 华强北 网站建设wordpress 分类 评论