Transcript Lecture 2

In this lecture, you will learn the following.
1. Basics of real-time control engineering
2. Effects of fixed and unfixed (also probably unknown) sampling rate on the control system
By using a simple system, we will demonstrate the effects of use of an real-time system and
a nonreal-time system on the controller performance.
1. Basics of Real-Time Control Engineering
Vast majority of the computer based systems operates in a way that some data produced by
sensors or by something else are written to a file, which this may be a text (.txt) file or a data
file (.dat), then the data are read by the computer, and the results produced by the algorithm
embedded into the computer is written a file again.
A real-time system, on the other hand, must be able to keep up with external events. Writing
to or reading from a file takes a while and this may cause loosing some events occurring
during the reading and/or writing period.
Consider our famous motor control system again. It will be meaningless to write the speed
and current information produced by speed and current sensors to a file, run the control
algorithm by reading the data from the file, and finally write the resulting voltage information
to a file again. During reading and writing period, a huge load may be suddenly loaded to the
motor, and the control system will be failed to maintain the control objective in such a case.
This example reveals only the “fastness” aspect of the real time systems. Let us take a look
the definition of real time systems made by IEEE:
1. Basics of Real-Time Control Engineering
A real-time system is one in which the correctness of a result not only depends on
the logical correctness of the calculation but also upon the time at which the result
is made available. *
This definition emphasizes the notion that time is one of the most important entities of the
system, and there are timing constraints associated with systems tasks. Such tasks have
normally to control or react to events that take places in the outside world, which are
happening in “real time”. Thus, a real-time task must be able to keep up with external events,
with which it is concerned. **
*IEEE POSE Standard (Portable Operation System Interface for Computer Environments)
** Real-time Control Systems: A Tutorial, A. Gambier
1. Basics of Real-Time Control Engineering
In general, real-time implementation of an analog feedback control system involves the
following components.
System to be
State measurement
sensors for feedback
Drive system
Data acquisition
PC-based system with
a real-time software
Sensors measure the system states for feedback and produce a low amplitude electrical signal
(voltage or current). A data acquisition system (generally a data acquisition card, or input
ports of a microcontroller) receives this signal, converts it to a digital signal, and then sends to
PC-based system that runs the control algorithm designed. Information produced by the
control algorithm is sent by PC-based system (a host PC, or microprocessor unit of a
microcontroller) to data acquisition system again. Data acquisition system converts this signal
to an analog signal, and then sends it to drive system via its output ports. Main function of
the drive system is to produce drive signals proper for the plant, that is, the system to be
controlled. The drive system may be linear amplifier, or a power electronic system.
Let us consider our control system for PMDC motor :
PMDC Motor
Linear amplifier
Current sensor and
Quanser Q4 DAC
A host PC and a target
PC with xPC Target realtime software
Remember that we have three state variables; current, velocity, and position. For a full-state
feedback, we will use a hall-effect current sensor and an encoder. The incremental encoder
can be used for both velocity and position feedback. Quanser Q4 card receives sensor
outputs, converts the analog current information to a digital one, and then sends measured
values to target PC. The target PC downloads the control algorithm from the Simulink file in
host PC, runs this code, produce the control input signal (voltage) information, and finally
sends this information back to the host PC. The host PC transmits this signal to the Quanser
card. The low-amplitude voltage at the output of the card is amplified by a linear amplifier.
This actual control input signal is then supplied to the motor.
Emphasis will not be upon the theory of real-time systems in this class. Instead, we will
introduce the hardware and software that we will use during the experiments. But, even so,
some important points explained below should be considered.
Speed and predictability are
both critical.
Non-Real-time System
Real-time System
Degraded operation in a
rarely occurring peak load Soft
can be tolerated.
Timing parameters and the
priority for tasks is modified Dynamic
at run-time.
Response to input has to
come at a precise time.
System timing
parameters are known
before execution.
In ECE 893, we use a Static, Hard Real-Time System.
Example: Produce a sinusoid output
Error in output
Error in execution
MATLAB/SIMULINK have a toolbox called xPC Target. This toolbox enables you to real-time
control prototyping and testing. It provides a library of drivers, a real-time kernel, and a hosttarget interface for real-time monitoring, parameter tuning, and data logging. You create a
real-time testing environment for Simulink models by connecting a host computer (a laptop),
a target computer (a desktop), and your hardware under test (PMDC motor). You connect
the host computer running xPC Target, Simulink, and a C compiler to the target computer via
a single TCP/IP communications link (an ethernet cable). You then connect the target
computer to your hardware under test and download code generated by Simulink Coder
from a Simulink model to the target computer via the communication links.
You create an xPC Target application using xPC Target with Simulink Coder to automatically
generate and compile a C/C++ code representation of a Simulink model. You then
download the target application via a LAN (Ethernet) connection from the host computer
to the target computer.
xPC Target enables you to access the target application and control it directly from the
host computer using either the xPC Target Explorer tool or the MATLAB command line. You
can download your target application, start and stop real-time test execution, change the
sample time and stop time, and modify other target application properties.
To monitor and acquire data, xPC Target includes scopes for both the host and target
computers. Scopes support several trigger modes you can use to control the acquisition,
timing, and duration of data collection. You can also display multiple signals in a single
scope and attach multiple scopes to a single model.
Signal monitoring enables you to view signal values at the current sample rate. Signal
tracing lets you capture, store, and display bursts of data, similar to the behavior of a
digital oscilloscope. Signal logging lets you acquire and store signals during the entire test
execution. You can then upload the logged data to the host computer for signal display,
analysis, or archiving.
Host Computer
Target Computer
Design a Simulink
model on the host PC
Boot CD installs a realtime kernel on target
Build the Simulink model
Host and target coordinate for
downloading programs
Program is downloaded to target for realtime execution
Some parameters can be changed on host.
This change is communicated to target.
•MATLAB with
•Programming Interface to Target PC
•User Interface
•Execute High-level Programs
Target PC
• xPC OS from Mathworks
• Q4 HIL Board
Quanser Q4 card in the Target PC provides data acquisition for feedback. Output ports of
the card is used to send the control signal calculated by the control algorithm implemented
in Simulink to the linear amplifier.
4 x 14 bit Analog Inputs
4 x 12 bit D/A Outputs
4 Quadrature Encoder Inputs
16 Programmable Digital IO
• 2 x 32 bit dedicated Counter/ Timers
• 2 External Interrupt sources
• 32 bit, 33MHz PCI Bus Interface
Q4 Terminal Board
From Q4 board
Analog Out (D/A)
Analog In (A/D)
Digital I/O Ports
Ext Interrupt and
Signal Pins
Finally, a linear amplifier is used to produce actual control signals to be applied the system.
The Q4 cards being used for data acquisition and control are very useful… and very
expensive. Read the manuals for voltage limitations and proper use.
Download a supplementary document that explains in detail xPC Target setup, laptop
configuration, Q4 card, linear amplifier calibration and some additional important issues
from .
The software and hardware introduced so far are not the only option to design and
implement real time control systems. These are the things available in our labs.
Of course there are some other software/hardware combinations to achieve a good real
time performance. For example dSPACE provides a very useful hardware (dSPACE data
acquisition card) and software (Real Time Interface - RTI) to implement the control
algorithms embedded in MATLAB/Simulink environment.
2. Real Time vs. Non-Real Time
In this section, we will use a very simple system to compare the effects of use of a real time
system and a non-real time system on the controller performance.
Consider the following first-order scalar system dynamics;
x  x  u
where x is the state variable and u is the control input. The control objective is to drive x to
a desired trajectory, xd. To observe the performance of the controller to be designed, an
error signal can be defined as follows:
e  xd  x
Let’s use a simple PID controller to stabilize the system,
u ( t )  K p e ( t )  K d e ( t )  K I  e ( t ) dt
where Kp, Kd, and KI are control gains. Having a real time system means that the control
system software uses the last two samples of e(t) to calculate its derivative and integral with
a fixed sampling period. This does not necessarily mean that the sampling rate must be fixed.
Most of solvers provide variable (but known) step solving algorithms. By using Simulink, we
will compare the controller performances with (i) fixed and known sampling period (to mimic
a real time system), (ii) unfixed and unknown sampling period (to mimic a non-real time
First consider the following simulation. This blocks simulates the system with a fixed and
known sampling rate. The desired trajectory is just a constant, 1, and the values of the
control gains are Kp=8, Kd=3, and KI=0.01.
PID Controller
MATLAB Function
Time-variation of tracking error signal is shown in the following figure.
After a very short transient, the error settles to a small constant and the system is stable.
Now we will use the same system, same control rule, and the same values of the control
gains, but, for this time, we will also use some additional blocks to make the system a nonreal time system.
PID Controller
Time Delay
MATLAB Function
Uniform Random
Newly-added “Variable Time Delay” block holds the last 10 samples of the error signal and
“Uniform Random Number” block generates an integer ranging from 1 to 10 at each time
step. In this way, the derivative and integrator embedded in PID Controller block use the
existing value of the error signal and any random one of the last 10 sampled values of the
error signal to calculate the derivative and integral of e(t). This means that this system is not
a real time system anymore. Indeed, such a system can be used to simulate a non-real time
Time-variation of tracking error signal for this non-real time system is shown in the
following figure.
x 10
The tracking error goes to infinity as time goes to infinity.
This implies that use of a non-real time system to implement the controller may
make the overall system unstable even if your control system stable. This is the
key point.