Real-Time Measurement and Control

Showing results for 
Search instead for 
Did you mean: 

Smith Predictor for real Control System, not simulation

I´ve been developing a .vi for controlling a lung simulator.
My hardware is not NI, so all my input/output is through 3 different VISA Serial-USB (Air Flow sensor, Pressure sensor, Motor controller).
The problem I have, is the delay of the flow measures (+- 160ms), so I am searching the way adding a Smith Predictor to the control routine.


In the attached, is part of what I am doing, but don´t know if this is ok?
I know that the Simulation Loop is used for simulate certain plant/control, and I also know that the Simulation loop can be put inside a general while loop, so that in every execution of the general while loop, only one step of the ODE solver is executed....

But, can I use a Simulation loop to actually control a real system??

I haven´t found any example of this, all the examples are of simulations, but not real stuff.
Which is the correct way of Deploying complex control in labview for real systems? (not modeling, nor design, nor simulation, neither optimization)

Thank you very much for your time!!
Best regards, Pablo

0 Kudos
Message 1 of 3

duplicated post

Abel Souza
Engenheiro Eletrônico
LabVIEW User since 8.5
0 Kudos
Message 2 of 3



I don't really have time to look at the specifics of your VI. But hope the following are useful:


Smith Predctor is a model based *control structure* to cope with time delay dominated systems. There ae plenty of references that describe it:

  • You mention a delay of 160msec, but the use of a Smith Predictor is really important if the main process dynamics (i.e the bit without the delay) is much faster than 160msec.
  • Smith Predictors typically use a model - but it is  usually a linear model, which you can implement without having to use a CD&SIM loop running. But Smith Predictors are sensitive to plant-model mismatch, so if you have a plant with nonlinearities you may get degradation if you  opearate away from the linearised model. So you may need to include some nonlinearities in the model.
  • It is a *control structure* where the actual feedback controller might still be something like a PID but which can be tuned faster as it effectively controls the system without the delay.

Running a CD&SIM loop to simulate a model running on a real-time system:

  • It can be done, but think about what you are doing - if you put a simulation loop in a while loop, do you really want it to repeatedly keep simulating from start to stop. Never having run a CD&SIM loop in RT, I would think it would have to be outside. I would recommend doing as a linear model which can be done with feedback nodes etc. without a CD&SIM loop.
Consultant Control Engineer
0 Kudos
Message 3 of 3