Basically I got system with a sensor and an output. I want to apply a digital implemented feedback controller. The problem in this setup is the sensor. The specifications of the module says that the sampletime of the sensor does change in wide range, depending on the usecase; from 1.3 second to 10 second. But it stays constant until the system is disabled.

My first approach was tuning a digital PID-Controller for the longest sampletime. This works fine. Even if I change the sampletime to the shortest the system stays stable, which was expected because I'm still in ROC. The problem now is that the system's response is pretty slow.

If I design the controller for my fastest samplingrate the results are satisfying but become instable for the slowest samplerate, which can be explained again by the ROC

I could use some kind of adaptive predefined gains which I change depending on the samplerate but I was wondering if there are control strategies which are able to handle the sampletime changes?

To give a better overview I will add some details:
I'm talking about a heating system which heats with radiation. As a sensor I use a pyrometer module with a samplingrate of up 1kHz. The problem is, that the pyrometer is not able to produce reasonable readings whenever the radiator is turned on. (Yes there are other alternatives to the pyrometer, but they start at $50k and are too expensive). The radiator has to be pulsed to operate it. So to maintain a decent heat up time and steady-state temperature the "duty-cycle" has to be at a decent rate(target is 95%). The minimum "off-time" of the radiator is 0.2 seconds before the measured values are reasonable. So at the end my sensor got an effective sampletime of 1-10seconds (by varying the duty cycle).

The hardware is hard too change, radiator and sensor have been evaluted for months right now. Therefore I try to improve the results by "just" changing the control algorithm.


1 Answer 1


If what you are sensing can be modeled easily, you might be able to get away with feeding the sensor into the model and using the output of the model as your sensor.

For example: assume you want to control the position of a train on a track by controlling the power (-100% to 100%) to its motors. You have a sensor that can only measure the position once every 10 seconds. Since you know the power of the motor and the mass of the train, you can create a fairly accurate estimation of where you are even without the sensor. And every 10 seconds, you are guaranteed that the error of the model will be re-calibrated to 0.

Many GPS units use this technique to provide sensor "readings" faster than they receive fixes.

  • $\begingroup$ Yeah I like your idea, by using virtual sensoring. Unfortunatly the system is way to complex: It is a heater for thin plates (20-400°C), the element which is heated has a very low thermal mass and is influenced heavily by the temperature of the enviorment (which might be changed from previous heating process). In addition I have gas flows onto the plate (O3 and N2) from -100°C to 30°C with alternating flowrate(10-100 lpm) and the plate is rotating with 10-200rpm First my knowledge in thermodynamics is not sufficient and the calculation of this complexity are not performable in "realtime" $\endgroup$
    – TobiasK
    Commented Jun 23, 2015 at 14:00
  • $\begingroup$ I give you +1 anyway $\endgroup$
    – TobiasK
    Commented Jun 23, 2015 at 14:00
  • 1
    $\begingroup$ It's also possible that your sensor is insufficient for your needs. You could choose a better sensor, or multiple sensors that read at different times. $\endgroup$
    – Ian
    Commented Jun 23, 2015 at 14:08
  • $\begingroup$ Please see my edit $\endgroup$
    – TobiasK
    Commented Jun 24, 2015 at 6:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.