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

驻马店app和网站开发公司黑马程序员学费多少钱

驻马店app和网站开发公司,黑马程序员学费多少钱,ip上海官网,驻马店高端网站建设最近看到了Brett Beauregard发表的有关PID的系列文章#xff0c;感觉对于理解PID算法很有帮助#xff0c;于是将系列文章翻译过来#xff01;在自我提高的过程中#xff0c;也希望对同道中人有所帮助。作者Brett Beauregard的原文网址#xff1a;http#xff1a;//brettb…最近看到了Brett Beauregard发表的有关PID的系列文章感觉对于理解PID算法很有帮助于是将系列文章翻译过来在自我提高的过程中也希望对同道中人有所帮助。作者Brett Beauregard的原文网址http//brettbeauregard.com/blog/2011/04/improving-the-beginner’s-pid-reset-windup/ 1、问题所在 积分饱和是一个陷阱它可能比任何其他内容对初学者有更多的要求。当 PID 认为它可以做一些它做不到的事情时就会发生这种情况。例如Arduino 上的 PWM 输出接受0-255 之间的值。默认情况下PID 不知道这一点。如果它认为300-400-500 会奏效它将尝试那些期望得到它所需要的东西的值。由于在现实中该值被限制在 255它只会继续尝试越来越多的数字而不会取得任何进展。 这个问题以奇怪的滞后的形式显现出来。上面我们可以看到输出以 非常兴奋 的方式超出了外部限制。当设定值下降时输出必须在低于255的限制线之前逐步减少。 2、解决方案–步骤1 有几种方法可以缓解积分饱和但我选择的方法如下告诉 PID 输出限制是什么。在下面的代码中您将看到现在有一个 SetOuputLimits函数。一旦达到任一限制pid 停止求和 (积分)。它知道没有什么可做的; 它知道自己已经无能为力。由于输出不会积分饱和所以当设定值下降到我们可以做一些事情的范围内时我们会得到立即的响应。 3、解决方案–步骤2 不过请注意在上面的图表中虽然我们摆脱了那个积分饱和滞后但我们并没有完成这一步。PID认为它正在发送的东西和刚刚发送的东西间还是存在偏差。为什么比例项和 (在较小的程度上) 微分项的存在。 尽管积分项已被安全地钳位但P和D仍在增加他们两的份额产生的结果也有可能会高于输出限制。在我看来这依然是不可接受的。如果用户调用名为 SetOutputLimits 的函数他们必须假定这意味着“输出将保留在这些值之内”。因此对于步骤2我们将其作为一个有效的假设。除了钳位积分项之外我们还要钳位输出值使其保持在预期的位置。 (注意 您可能会问为什么我们需要钳位这两个。如果我们要控制输出限制为什么要单独钳位积分项呢如果我们只是钳位输出积分项就会不停的增长。虽然在向上的过程中输出看起来会很好但我们会看到在下降的过程中会受到积分饱和的影响。 4、代码 /*working variables*/ unsigned long lastTime; double InputOutputSetpoint; double ITermlastInput; double kpkikd; int SampleTime 1000;//1 secdouble outMinoutMax; void Compute() {unsigned long now millis();int timeChange (now - lastTime);if(timeChangeSampleTime){/*Compute all the working error variables*/double error Setpoint - Input;ITerm (ki * error);if(ITerm outMax) ITerm outMax;else if(ITerm outMin) ITerm outMin;double dInput (Input - lastInput);/*Compute PID Output*/Output kp * error ITerm- kd * dInput;if(Output outMax) Output outMax;else if(Output outMin) Output outMin;/*Remember some variables for next time*/lastInput Input;lastTime now;} }void SetTunings(double Kpdouble Kidouble Kd) {double SampleTimeInSec ((double)SampleTime)/1000;kp Kp;ki Ki * SampleTimeInSec;kd Kd / SampleTimeInSec; }void SetSampleTime(int NewSampleTime) {if (NewSampleTime 0){double ratio (double)NewSampleTime/(double)SampleTime;ki * ratio;kd / ratio;SampleTime (unsigned long)NewSampleTime;} }void SetOutputLimits(double Mindouble Max) {if(Min Max) return;outMin Min;outMax Max;if(Output outMax) Output outMax;else if(Output outMin) Output outMin;if(ITerm outMax) ITerm outMax;else if(ITerm outMin) ITerm outMin; } 添加了一个新函数允许用户指定输出限制 [52-63 行]。这些限制用于钳位积分项 [17-18] 和输出 [23-24] 5、最终结果 正如我们所看到的积分饱和被消除了。此外输出将保留在我们希望的位置。这意味着无需对输出进行外部钳位。如果希望它的范围从23到 167您可以将它们设置为输出限制。 欢迎关注
http://www.zqtcl.cn/news/663272/

相关文章:

  • 做网站找哪家好要钱吗小程序开发合同
  • 速成美站东莞网站建设 包装材料
  • 丹阳网站建设案例自己做个网站怎么赚钱
  • 净水机企业网站源码浏览器下载安装2022最新版
  • 高端网站建设四川网页版微信怎么下载
  • 青岛做网站皆赴青岛博采wordpress怎么改密码忘记
  • 深圳最好的网站建设广西论坛网站建设
  • html5网站设计网站建设 广西
  • 顺德手机网站设计价位网站开发学习流程图
  • 班级网站设计合肥蜀山网站开发
  • 杭州网站建设培训ck播放器整合WordPress
  • 网站建设是什么软件品牌策划公司哪家好推荐
  • 网站转跳怎么做餐饮vi设计
  • 刘连康seo培训哪家强网站优化推广平台
  • 网站推广内容滁州做网站的
  • 黄山做网站公司山东省住房和城乡建设厅举报电话
  • 中医科网站建设素材上海文明城市建设网站
  • html课程教学网站模板手机微信小程序开发教程
  • 用电脑做兼职的网站比较好食品网站建设网站定制开发
  • 网站开发 加密保护小程序制作开发进度表
  • 深圳坪山站外贸展示型网站建设
  • 手机端自定义做链接网站济南网站制作方案
  • 软件网站是怎么做的帮别人做网站赚多少钱
  • 纯静态网站 搜索功能佛山网站建设 奇锐科技
  • 四川省建设厅官方网站联系电话自己网站做虚拟币违法吗
  • 同城招聘网站自助建站2014 网站建设
  • 个人网站空间大小江油官方网站建设
  • 怎样建网站做什么网站能吸引流量
  • 做vi设计的网站网络营销推广思路
  • 简述网站设计流程沁水做网站