ELEC4632 Lab 4 Notes 2022 T3
ELEC4632 Lab 4 Notes 2022 T3
Telecommunications
ELEC4632 Lab 4
1
input limits, i.e., 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. In the Simulink model you will have variables G_obs, H_obs, C_obs and
D_obs inside the Observer block. The values of the variables are G_obs=GT,
H_obs=CT, C_obs=HT, and D_obs=DT.
Fig. 1. Pre-built Simulink model for real-time output state feedback control with observer.
b. After making sure all the proper setting 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.
2
c. Online Students: Copy the auto-generated data files (found in
Documents/MATLAB) for both system identification (i.e. all SysIdenData_x.mat)
and control system 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 for which the modelling data was given in
SysIdenData_StudentVersion.mat (the example data that has been used
throughout Lab 1 and Lab3). 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. 2(b) saturated at the
beginning?