⼩球控制虚拟环境
⽬标:在⼩球上施加⼀个⽔平⽅向的⼒(称为控制⼒),使⼩球在偏离⽬标位置时回到⽬标位置已知条件:⼩球的实时坐标、⽬标位置坐标
看到这⾥的你可以停下来想⼀想,应该⽤什么样的策略来计算这个⼒呢?
到这⾥⼤多数⼈应该都能想出来这样的⽅法:
只有⽐例环节时的⼩球运动
微分环节
那么如何让⼩球能够静⽌在⽬标点呢?这就要请出PID的另⼀个环节:微分环节D(Differential)。
微分环节也会计算出⼀个分⼒,计算⽅法是:
也就是说,这个分⼒与误差的变化速度有关,在⽬标位置不变的情况下,⼩球向右运动时误差变化速度为负,分⼒向左;反之当⼩球向左运
有⽐例和微分环节时的⼩球运动
由公式还可以看出,微分系数可以影响这个“阻⼒”的⼤⼩,因此如果我们把系数调⼤⼀些,就可以让⼩球的运动收敛得更快⼀些:
调⼤kd后的⼩球运动
到这⾥,其实我们已经完成我们的⽬标任务了,⼩球可以在驱动⼒的作⽤下运动到⽬标位置。
积分环节
但现在,我们更希望在⼩球有⼀些外部⼲扰时也能实现上⾯的效果,⽐如我们在⼩球上加上⼀个⽔平向右的恒⼒,此时会发⽣什么呢?
恒⼒⼲扰下⼩球静⽌状态
⼩球在运动过程中仍然会像之前⼀样接近⽬标点,但在最终停下来时我们会发现,⼩球⽆法精确停在⽬标点上,⽽是像上图⼀样停在离⽬标点有⼀定距离的地⽅,此时控制⼒与⼲扰恒⼒平衡,⼩球静⽌。
稍加分析我们就能发现,此时⼩球静⽌,微分环节产⽣的分⼒为零,控制⼒完全由⽐例环节产⽣,且若距离更⼩则⽐例环节的输出更⼩,更
PID作⽤下⼩球控制效果
抛开案例——更专业地理解PID
常⽤术语
被控对象:需要控制的对象,案例中指⼩球
⽬标值:期望被控对象达到的状态量,案例中指⽬标位置的坐标
不同参数下系统的阶跃响应(源:百度百科)
阶跃输⼊:在稳定状态下⽬标值发⽣突然变化(上图⽬标值在0时刻由0跃升到虚线位置)
阶跃响应:阶跃输⼊后被控对象的跟随状态,能够代表系统的控制性能(上图彩⾊线条)
响应速度:阶跃输⼊后被控对象再次到达⽬标值的速度
超调量:阶跃输⼊后,被控对象到达⽬标值后超出⽬标值的距离
PID信号框图
上图就是PID的信号框图,表⽰了PID的运⾏过程:
1. 为系统指定⼀个⽬标值
2. PID将⽬标值与被控对象当前的反馈量作差得到误差
3. PID将误差值分别经过三个环节计算得到输出分量,三个分量加起来得到PID的输出
4. 将PID的输出施加到被控对象上,使反馈量向⽬标值靠拢在线代码运行器
PID三个环节的作⽤
代码流程图
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论