我有一台旧的柴油发电机,我在给州长编程方面有很大的问题。我需要发动机在2400到2800 RPM之间。
我有强大的RC汽车伺服推杆推动发动机的气体杠杆,伺服运动在22°(最小)到95°(最大)燃油喷射之间。
我用Atmel meg 328单片机驱动它。速度用霍尔效应传感器和飞轮上的单一磁铁测量。我测量了整个转弯所需的时间,并基于此计算了RPM (这意味着如果引擎更快,代码对它的反应更频繁,=>在注入量上发生更快的变化)
首先,我尝试了最简单、最愚蠢的方式。如果RPM大于我的需要,步进伺服回=>较小量的燃油喷射。如果RPM低于需要的步进伺服前进。这是一个非常糟糕的想法,因为引擎有很大的延迟,所以我的RPM在我需要的RPM周围写了一个完美的正弦图,因为它有很大的惯性。因此,当RPM超过上限时,发动机仍在加速。
我还试着改变调节度的数量,把它乘以差额的平方(所需的RPM-当前RPM),结果证明它是最好的,但它仍然在运行。
我希望能够预测我的曲线,并根据我的未来曲线改变燃油喷射。当负载突然增加时,发动机会得到一个巨大的RPM下降(我从那里启动一个压缩机)。
帮帮我,我不知道。我会很遗憾地发送一些图片。
发布于 2016-08-18 12:18:39
正如Avi Ginsburg所提到的,尝试使用PID控制器:
它主要由一个P旋转元件、一个I集成元件和D重复化元件组成。这经常被用作一个环形电路:

还有一个Arduino图书馆:
http://playground.arduino.cc/Code/PIDLibrary
https://stackoverflow.com/questions/39017684
复制相似问题