ELEC4632 Lab 4: Real-Time Implementation of Output Feedback Control System For Set-Point Control
ELEC4632 Lab 4: Real-Time Implementation of Output Feedback Control System For Set-Point Control
ELEC4632 Lab 4: Real-Time Implementation of Output Feedback Control System For Set-Point Control
Telecommunications
ELEC4632 Lab 4
1
yref (k) = {0, 0.7, 0.2, -0.5, 0} with each level period to be 140×0.75 = 105sec. Make sure
your choice of closed-loop eigenvalues results in control input remaining within its limits.
3. Real-time implementation of the control system (1 marks, checked after 2 hours and 20
minutes)
a. When you are satisfied with simulation results, download the pre-built Simulink file named
WaterTankSysControl.slx from Moodle. Set your model and controller parameter in the
real-time model as shown in Fig. 1. The parameters are model matrices G, H, C; state
feedback gain L; observer gain K; inverse of close-loop DC gain Gcl−1(1) named as Gcl_1,
and input and output offsets, u_offset and y_offset, respectively. You just need to assign
them with their values in MATLAB Workspace as Simulink can read them from there.
Moreover, you should change the default values in Saturation TANK#1 block to Vmax and
Vmin of your W-T setup. Make sure to use state-space matrices G, H, C and D of the
canonical observable form in the observer block.
Fig. 1. Pre-built Simulink model for real-time output state feedback control with observer.
b. After making sure all the proper settings are in place, run the Simulink file. The running
time is set to 5×140×0.75 = 525sec or 8 minutes and 45 seconds, and the program will
stop after this time. The data will be recorded in MATLAB Workspace as SFLogData in
Structure format, and it is saved on current directory of MATLAB as
SFControlData_0.mat. Similar to the what was explained in Lab 2 for data
recording, if you repeat the experiment, the new data will be saved under the same
name with an increment of one unit, so you would never lose any test data.
c. Copy the auto-generated data files (found in Documents/MATLAB) for both
system identification (i.e. all SysIdenData_x.mat) and control system
2
implementation (i.e. all SFControlData_x.mat) to your own computer. You will
need these results in the final report.
d. Finally, extract the data as shown below and plot them against your simulated results
similar to Fig. 3.
treal = SFLogData.time;
yref = SFLogData.signals(1).values(:,1);
yreal = SFLogData.signals(1).values(:,2);
ureal = SFLogData.signals(2).values;
This figure shows the actual output feedback control results obtained from one of the
W-T systems. It compares the real-time results with the simulated ones. The closed-
loop eigenvalues were chosen as [0.9 0.9] for this test with zero initial conditions. As
you can see, the practical results are quite similar to the simulation ones for output
signal in Fig. 3(a) and control input signal in Fig. 3(b). Both simulation output and
control input signals are shifted up by output offset and input offset, respectively. This
confirms that the identified model was accurate enough to represent the process and
to be used for the controller design, as well as validity of the output feedback control
design, particularly from the similarity in the pattern of both the control input signals
and their final values at each period in Fig. 3(b).
3
Fig. 3. Comparison between simulated and actual output feedback control of W-T system in set-point tracking, (a)
Output for different water levels, (b) Control input.
Optional as Bonus: Can you explain the behaviour of the real-time control operation in the first
period (initial transient behavior) shown in Fig. 3? Why is control input in Fig. 3(b) saturated at the
beginning?