我可以在计算中使用变量dt(∆time)并且PID原理仍然可以正常运行吗?
#1 楼
简短的答案:是的,只要您调整实际dt,您就可以了。更长的答案:实际上,我们始终使用微分和积分的连续时间概念的离散时间近似值。因此,变化的dt只是意味着近似值的精度会随着时间而变化,但这没关系。您可能会遇到问题的情况示例如下:
您处于稳定的边缘,并且一些较慢的时间步长
太慢了
dt没有不会随机变化,而恰好与重要的系统频率进行交互
评论
$ \ begingroup $
请您进一步说明我可能遇到问题的第二种情况吗?那怎么会引起问题呢?
$ \ endgroup $
–丹·巴兹莱(Dan Barzilay)
2014年7月27日在20:02
$ \ begingroup $
这几乎只是理论上的情况。您是否看过塔科马海峡大桥的视频?控制器可能会发生相同的事情,但是您必须非常不幸地使dt变化成为原因。在任何业余控制器和大多数行业系统中,dt的周期性变化都远远没有引起人们的关注。
$ \ endgroup $
–ryan0270
2014年7月28日在2:40
#2 楼
通常,最好通过硬件计时器中断来确定采样时间。如果无法完成此操作(例如使用纯软件循环),则只要您计算就可以使用,
normalized_error =(latest_reading-set_point)/(latest_time_stamp -previous_time_stamp)
评论
$ \ begingroup $
请您解释为什么最好保持固定的dt(时间采样)并提供使用可变变量的负面影响?
$ \ endgroup $
–丹·巴兹莱(Dan Barzilay)
2014年7月27日在20:04
$ \ begingroup $
对于“专业”(实际商业产品)硬实时控制系统,通常,处理器/ MCU具有硬件计时器以产生周期性的时间滴答中断,在其中可以很容易地编程以将PID采样任务附加到系统中时间刻度任务。固定采样使系统更可预测,并具有最佳/精确/准确的微调结果。
$ \ endgroup $
– EED
2014年7月27日21:00
$ \ begingroup $
如果不能做到以上几点,不要太担心。在很大程度上,“标准化”仍将有效。
$ \ endgroup $
– EED
14年7月27日在21:08
#3 楼
实际上,我也想使用中断方法。由于此方法允许您在非常任意的基础上执行代码,执行某些操作等。由于非常数dt,我认为是你评论
$ \ begingroup $
欢迎使用雅克机器人技术。就目前而言,您的回答不会增加问答环节-您可以扩展答案吗?
$ \ endgroup $
–安德鲁♦
2014年8月6日在17:54
评论
我们是在谈抽样的微小调整还是较大变化?只要您的采样频率足够高,就没关系了,但是很容易说服自己,如果误差中存在阶跃函数,并且您将下一个采样大量延迟,则控制器将不会以相同的方式响应。 br />dt的变化大约是几毫秒加减,我想这不是一个大变化。