chapter 5 two-tank liquid level control using a basic...

14
Chapter 5 Two-Tank Liquid Level Control using a BASIC Stamp Microcontroller and a MATLAB-based Data Acquisition and Control Toolbox 5.1. Introduction A variety of PC-based data acquisition and control (DAC) boards are currently available in the market. These DAC boards can be broadly classified in two categories: i) high-end DAC boards, which provide a wide range of advanced hardware capabilities along with a sophisticated software environment; and ii) low-end DAC boards, which are primarily used for data acquisition of a few selective signals while using proprietary software. With the emergence of MATLAB [6] as a widely used scientific computing tool in industry and academia, many users seek a DAC platform that can interface with and exploit advanced computing capabilities of MATLAB to perform hardware-in-the-loop experiments. Moreover, within the last decade, new developments in automated code generation programs have allowed users to utilize interactive icon-based control system simulation tools such as Simulink [44] for real-time control. In particular, using the Simulink block library and Real-Time Workshop (RTW) along with Simulink block libraries for vendor-specific DAC boards, one can generate C code from Simulink-based feedback control diagrams for real-time controller implementation on PC-based DAC boards. The ability to rapidly and efficiently design and implement complex control algorithms using an icon-based programming environment enables control designers to enhance productivity. In Chapter 4, we developed a low-cost DAC platform which allows Parallax Inc.’s BASIC Stamp 2 (BS2) microcontroller [55] to be programmed by MATLAB and Simulink. In this Chapter, we illustrate several important features of the DAC platform developed in Chapter 4 by performing liquid level control of a coupled, two-tank system. Liquid level control is ubiquitous in industrial applications, e.g., food processing, effluent treatment, power gener- 56

Upload: others

Post on 11-Mar-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Chapter 5

Two-Tank Liquid Level Control using a BASIC

Stamp Microcontroller and a MATLAB-based Data

Acquisition and Control Toolbox

5.1. Introduction

A variety of PC-based data acquisition and control (DAC) boards are currently available

in the market. These DAC boards can be broadly classified in two categories: i) high-end

DAC boards, which provide a wide range of advanced hardware capabilities along with a

sophisticated software environment; and ii) low-end DAC boards, which are primarily used for

data acquisition of a few selective signals while using proprietary software.

With the emergence of MATLAB [6] as a widely used scientific computing tool in industry

and academia, many users seek a DAC platform that can interface with and exploit advanced

computing capabilities of MATLAB to perform hardware-in-the-loop experiments. Moreover,

within the last decade, new developments in automated code generation programs have allowed

users to utilize interactive icon-based control system simulation tools such as Simulink [44] for

real-time control. In particular, using the Simulink block library and Real-Time Workshop

(RTW) along with Simulink block libraries for vendor-specific DAC boards, one can generate

C code from Simulink-based feedback control diagrams for real-time controller implementation

on PC-based DAC boards. The ability to rapidly and efficiently design and implement complex

control algorithms using an icon-based programming environment enables control designers to

enhance productivity.

In Chapter 4, we developed a low-cost DAC platform which allows Parallax Inc.’s BASIC

Stamp 2 (BS2) microcontroller [55] to be programmed by MATLAB and Simulink. In this

Chapter, we illustrate several important features of the DAC platform developed in Chapter

4 by performing liquid level control of a coupled, two-tank system. Liquid level control is

ubiquitous in industrial applications, e.g., food processing, effluent treatment, power gener-

56

57

ation plants, pharmaceutical industries, water purification systems, and industrial chemical

processing. Thus, the study of liquid level control encompasses many engineering disciplines,

e.g., electrical, chemical, civil, and mechanical.

In this Chapter, we employ the classical proportional-plus-integral (PI) controller for liquid

level control of a coupled, two-tank system [63]. To effectively utilize this control methodology,

the system parameters, e.g., tank dimensions and pump characteristics, must be known exactly.

However, this may not be feasible since system parameters may change due to the effects

of scaling in tanks and orifices, aging of pump, and wear. Thus, to determine the system

parameters, we conduct an experimental system identification study which uses the inherent

nonlinear dynamics of the two-tank system.

The rest of the Chapter is organized as follows. In Section 5.2, we describe the coupled,

two-tank system model and formulate system identification and control design objectives. In

Section 5.3, we outline a method to perform system identification. In Section 5.4, we design

a PI controller. In Section 5.5, we perform experimental validation of the results of earlier

sections. In Section 5.6, we draw some concluding remarks.

5.2. Coupled Two-Tank System Model

Figure 5.1 shows a two degree-of-freedom, state-coupled, two-tank system. This system

consists of two tanks with orifices and liquid level sensors at the bottom of each tank, a pump,

and a liquid basin. The two tanks have the same diameters and can be fitted with differing

diameter outflow orifices. In this experimental setup, the pump provides the infeed to Tank 1

and the outflow of Tank 1 becomes the infeed to Tank 2. The outflow of Tank 2 is emptied

into the liquid basin. The following conditions, with regard to the system dynamic model, are

used to describe the levels of liquid in Tanks 1 and 2:

i) the liquid levels in Tanks 1 and 2, denoted as L1(t) and L2(t), respectively, are measured

using two pressure sensors;

ii) L1(t) is always greater than 0cm and less than 30cm;

iii) L2(t) is always greater than 0cm;

iv) the desired liquid level in Tank 2 is greater than 0cm and less than 20cm for t > 0 ; and

58

v) the voltage applied at the input terminals of the pump, denoted by Vp(t), is between 0 and

22 volt direct current (VDC).

The nonlinear mathematical model describing the liquid levels of Tanks 1 and 2 is given

by [63]

L̇1(t) = −A√

L1(t) + BVp(t), (5.1)

L̇2(t) = C√

L1(t) − D√

L2(t), (5.2)

where A 4=

a1A1

√2g, B 4

=Kp

A1, C 4

=a1A2

√2g, and D 4

=a2A2

√2g, ai is the cross-sectional area of the

outflow orifice at the bottom of the Tank i, Ai is the cross-sectional area of the Tank i, Kp is

the pump constant, g is the gravitational acceleration, and i =1, 2.

Figure 5.1: Two degree-of-freedom, state-coupled, two-tank system

59

5.2.1. System Identification Objectives

In this Chapter, we assume that the system parameters A, B, C, and D or equivalently

ai, Ai, Kp, and g, for i =1, 2, are not known exactly. As previously discussed, the uncertainty

about system parameters may arise due to corrosive buildup in the liquid level system or the

deterioration of the pump motor. Thus, a control design based on the idealized values of the

system parameters may lead to performance deterioration for the closed-loop system. In a

subsequent section, we outline a series of experiments, which exploit the nonlinear dynamics

of (5.1) and (5.2), to numerically estimate the system parameters A, B, C, and D.

5.2.2. Control Objectives

Given a desired, constant, liquid level for Tank 2, denoted as L2d, design a control input

Vp(t) such that limt→∞

L2(t) = L2d . This objective is to be achieved with the assumption that

L1(t) and L2(t) can be measured. Furthermore, the control design is to utilize estimates of the

system parameters.

To quantify this control objective, we define the liquid level tracking error for Tanks 1 and

2, i.e., l1(t) and l2(t), as follows:

l1(t) = L1(t) − L1d, (5.3)

l2(t) = L2(t) − L2d, (5.4)

where L1d is some desired, constant liquid level for Tank 1, which using (5.2) is characterized

as L1d4= (a2

a1)2L2d.

5.2.3. Linearized Error System Model

To facilitate the design of a controller to achieve the aforementioned control objectives, we

begin by describing the linearized error system model (see reference [63] for details)

l̇1(t) = α1l1(t) + β1u(t), (5.5)

l̇2(t) = α2l2(t) + β2l1(t), (5.6)

where u(t) 4= Vp(t)−Vpd and Vpd is the desired pump voltage, which using (5.1) is characterized

as Vpd4=a1

√2gL1dKp

. Furthermore, the parameters α1, β1, α2, and β2 in (5.5) and (5.6) are defined

60

as, respectively,

α14= − A√

4L1d, β1

4=B, α2

4= − D√

4L2d, and β2

4=

C√4L1d

. (5.7)

Next, we develop the transfer function models for the linearized error system of (5.5) and (5.6)

by taking the Laplace transform of (5.5) and (5.6) and rearranging terms to yield

l1(s)u(s)

=β1

s − α1, (5.8)

l2(s)l1(s)

=β2

s − α2, (5.9)

where l1(s) 4=L[l1(t)], l2(s) 4

=L[l2(t)], and u(s) 4=L[u(t)] with L denoting the Laplace operator

[64].

5.3. System Identification

In this section, we outline an experimental method to determine the parameters of the

coupled two-tank system given in (5.1) and (5.2). Specifically, motivated by the nonlinear

dynamics of (5.1) and (5.2), we outline a set of experiments that yield the system parameters

A, B, C, and D. In experiment 1, we first obtain numerical values for the ratios AB and C

D . In

experiment 2, we obtain the numerical value for the parameter A, which using the numerical

value of AB obtained in experiment 1 yields B. In experiment 3, we obtain the numerical value

for the parameter D using the same procedure as in experiment 2, which using the numerical

value of CD obtained in experiment 1 yields C.

5.3.1. Experiment 1

In this experiment, we obtain expressions that relate the ratios AB and C

D to steady state

conditions of the pump and the liquid levels of Tanks 1 and 2. Specifically, we begin by noting

that if a fixed voltage is applied to the pump, then the liquid levels of Tanks 1 and 2 will reach

steady state after a sufficient amount of time. This characteristic can be proven by directly

solving the differential equations (5.1) and (5.2) given that Vp(t) is constant. Next, the solution

of (5.1) and (5.2) under steady state conditions, i.e., with L̇1(t) = 0 and L̇2(t) = 0 yields

A

B=

Vpss√L1ss

, (5.10)

61

C

D=

√L2ss

L1ss, (5.11)

respectively, where L1ss, L2ss, Vpss are the steady state liquid levels of Tanks 1 and 2, and the

steady state pump voltage, respectively. From (5.10) and (5.11), by applying a fixed voltage

Vpss to the pump and directly measuring the liquid levels of Tanks 1 and 2 after a sufficient

amount of time, i.e., L1ss and L2ss, we can determine numerical values of AB and C

D .

5.3.2. Experiment 2

In this experiment, we fill Tank 1 with a fixed amount of liquid and record the time history

of the liquid level in Tank 1 as it is discharged. Using this time history, we can determine

a relationship between the system parameter and the liquid level in Tank 1 at a given time

instant. To do so, we solve the differential equation (5.1) with Vp(t) = 0 and obtain

√L1(t) =

√L1(t0) −

12A(t − t0), (5.12)

where t0 is the initial time and L1(t0) is the initial liquid level in Tank 1. Note that equation

(5.12) is only valid when the right hand side of (5.12) is nonnegative, i.e., prior to full discharge

of Tank 1 since once Tank 1 is fully discharged the right hand side of (5.12) becomes negative.

To determine when the liquid in Tank 1 is fully discharged, we set L1(t) = 0 in (5.12) and

solve for the corresponding time, resulting in

t∗ =2√

L1(t0)A

+ t0, (5.13)

where t∗ is the time of full discharge of Tank 1. Using (5.13), the analytic expression for the

liquid level in Tank 1 is given by

L1(t) =

(√

L1(t0)− 12A(t − t0))2 t <

2√

L1(t0)

A + t0

0 t ≥ 2√

L1(t0)

A + t0

(5.14)

Thus, if we choose a time instant t̄ with t̄ <2√

L1(t0)

A + t0, or equivalently when the liquid level

in Tank 1 is still discharging, then (5.12) can be rewritten to yield the parameter A as follows

A = 2√

L1(t0) −√

L1(t̄)(t̄ − t0)

. (5.15)

62

Next, substituting (5.15) into (5.10), we can determine the parameter B as follows

B =(2

√L1(t0) −

√L1(t̄)

(t̄ − t0)

)√L1ss

Vpss. (5.16)

Note that the determination of the numerical value for B in (5.16) requires the use of the

experimental data obtained from experiments 1 and 2, i.e., the steady state values L1ss, Vpss

from experiment 1 and t̄, t0, L1(t̄), L1(t0) from experiment 2.

5.3.3. Experiment 3

In this experiment, we fill Tank 2 with a fixed amount of liquid and then obtain the time

history of the liquid level in Tank 2 as it is discharging. Using this time history, we can obtain

a relationship between the system parameter D and the liquid level in Tank 2 at a given time

instant. Similar to experiment 2, using the solution of (5.2), we obtain a relationship between

the system parameter D and the liquid level in Tank 2 as follows

D = 2

√L2(t0) −

√L2(t̂)

(t̂ − t0), (5.17)

where t̂ is a time instant before Tank 2 is fully discharged. Now, substituting (5.17) into (5.11),

we can determine the parameter as follows

C =(

2

√L2(t0)−

√L2(t̂)

(t̂ − t0)

)√L2ss

L1ss. (5.18)

Note that the determination of the numerical value for C in (5.18) requires the use of the

experimental data obtained from experiments 1 and 3, i.e., the steady state values L1ss, L2ss

from experiment 1 and t̂, t0, L2(t̂), L2(t0) from experiment 3.

5.4. Proportional-Plus-Integral (PI) Liquid Level Control

In this section, we outline a PI liquid level control design that is based on the linearized

model of (5.8) and (5.9). As described previously, the liquid level control problem consists

of controlling the liquid level of Tank 2 to a desired, constant liquid level L2d. From (5.9),

to control the liquid level in Tank 2, we must use the liquid level of Tank 1, i.e., l1(t) as a

pseudo control input. This necessitates control of liquid level of Tank 1 to a desired liquid level

63

L1d, which serves as a command signal for the Tank 1 controller u(t), or equivalently Vp(t).

Referring to Figures 5.2 and 5.3, we design PI controllers for Tank i, i =1, 2, as follows

Ci(s) = KPi +KIi

s, (5.19)

where KPi is the proportional gain and KIi is the integral gain. To aid in determining the

controller gains KPi and KIi, the desired closed-loop responses for Tank i are specified in

terms of a settling time Tsi and percent overshoot oi performance criterion. It then follows

from reference [64] that the settling time and percent overshoot criterion can be related with

the closed loop damping ratio ξi and natural frequency ωni for Tank i, as follows

ξi =bi√

b2i + π2

, (5.20)

ωni =4

Tsiξi, (5.21)

where bi = log( oi100). Thus, using (5.20) and (5.21), the controller gains KPi and KIi that

achieve the desired closed-loop responses for Tank i are obtained as follows [63]

KPi =1βi

(2ξiωni + αi), (5.22)

KIi =ω2

ni

βi, (5.23)

where αi and βi given in (5.7) depend on the parameters A, B, C, and D, which are obtained

via system identification.

5.5. Experimental Validation

In this section, we explore the experimental system identification and liquid level control

of a two-tank system using the BS2 microcontroller and the BS2 DAC toolbox developed in

Chapter 4. The two-tank, liquid level system is a commercial laboratory equipment developed

and marketed by Quanser Consulting Inc. [65]. The PC-based BS2 DAC platform developed in

Chapter 4 allows MATLAB and Simulink to seamlessly interact with the BS2 microcontroller.

In particular, this DAC platform provides a library of Simulink functions, which allows for di-

rect interaction between user-defined Simulink block diagrams and sensors/actuators connected

to the BS2 microcontroller.

64

The PC-based BS2 DAC platform is composed of two main components, hardware and

software. The hardware required for this platform is the BS2 microcontroller, and user se-

lectable sensors and actuators. The software required for this platform is the MATLAB-based

DAC toolbox.

The BS2 DAC toolbox supports several different types of input and output signals. How-

ever, in this Chapter, only analog input and output signals between ±5VDC are considered.

To convert an analog input signal to a digital format for use on a PC, we utilize the 12-bit

LTC1296 A2D IC. Analogously, to convert an actuation signal, whose representation is in a

digital format, to an analog output signal, we utilize the 12-bit MAX537 D2A IC. Both ICs

are natively supported in the BS2 DAC toolbox. See Chapter 4 for more details of the BS2

DAC toolbox features.

The BS2 DAC toolbox allows users to implement control designs and to develop DAC

panels within Simulink block diagrams. This toolbox provides a Simulink custom library

(BS2Library), which contains blocks that interface with sensors and actuators connected to

the BS2. In this Chapter, we use only the IOBlock, AtoD LTC1296, and DtoA MAX537. The

descriptions of these blocks are provided in Chapter 4.

As described earlier, the liquid levels of Tanks 1 and 2 are measured using pressure sensors,

where the output signal of the sensor is a voltage in the range of 0 to 5VDC corresponding

to the liquid levels in Tanks 1 and 2. A calibration gain for the pressure sensors is then

determined, i.e., the gain that converts the sensor output voltage to centimeters of liquid is

computed as 204.2 ( cm

V olt) . The pressure sensor analog signals are supplied to the LTC1296 A2D

and are utilized in the Simulink block diagram, as shown in Figures 5.2 and 5.4. Using the

MAX537 D2A, the BS2 supplies a controlled voltage signal to the pump, which controls the

liquid levels of Tanks 1 and 2.

5.5.1. System Identification

In performing experiment 1, as outlined earlier, we applied a constant 7VDC signal to

the pump Vpss, which produced a steady state liquid level in Tanks 1 of L1ss = 10.75cm and

a steady state liquid level in Tank 2 of L2ss = 11.40cm. Next, we performed experiment 2

65

Figure 5.2: Simulink block diagram of the PI controller for Tanks 1 and 2

Figure 5.3: PI controller for Tanks 1 and 2

66

Figure 5.4: Calibration and system identification Simulink block diagram

outlined earlier by filling Tank 1 with 16.46cm of water, i.e., L1(t0) = 16.46cm, and obtained

the liquid level of Tank 1 as it was discharged. Figure 5.5(a) shows the liquid level time

history of Tank 1. From Figure 5.5(a), the initial time of discharge t0 is 11.5sec and the time

of full discharge t∗ is 26sec. To compute the system parameter A, we chose t̄ = 16sec, which

corresponds to a liquid level in Tank 1 of L1(t̄) = 10cm. Using (5.15) and (5.16), A and B are

computed numerically to be 0.3978 and 0.1863, respectively.

Next, we performed experiment 3 outlined earlier, by filling Tank 2 with 15.80cm of water,

i.e., L2(t0) = 15.80cm, and obtained the liquid level of Tank 2 as it was discharged. Figure

5.5(b) shows the liquid level time history of Tank 2. From Figure 5.5(b), the initial time

67

of discharge t0 is 59.5sec and the time of full discharge t∗ is 76sec. To compute the system

parameter D, we chose t̂ = 66sec, which corresponds to a liquid level in Tank 2 of L2(t̄) =

7.8cm. Using (5.17) and (5.18), C and D are computed numerically to be 0.4056 and 0.3938,

respectively.

Next, we used the liquid level time histories given in Figure 5.5 to obtain numerous time

instances t̄ and t̂, corresponding to many estimates of the system parameters A, B, C, and D.

We then averaged, individually, the estimates of A, B, C, and D and obtained the following:

A = 0.4382, B = 0.2052, C = 0.4486, D = 0.4356. For comparison, manufacturer specifications

of the Tanks 1 and 2 cross-sectional areas and orifices areas produce the nominal system

parameters A = 0.5128, B = 0.2991, C = 0.5128, and D = 0.5128.

(a) (b)

Figure 5.5: (a) Experiment 2–L1(t) response and (b) Experiment 3–L2(t) response

5.5.2. PI Liquid Level Control

Next, we implement the PI control architecture discussed earlier to control the liquid level

of Tank 2. Referring to Figure 5.2, two A2D blocks labeled Tank 1 Liquid Level and Tank 2

Liquid Level, are used to import the signals L1(t) and L2(t). These sensor signals are then

used for the PI controller of Tanks 1 and 2, wherein the control signal Vp(t) is sent to a D2A

block labeled Pump Voltage for output to the pump.

In this experiment, we specify the desired liquid level of Tank 2 to be L2d = 12cm. Next,

68

we design the control gains KPi, KIi, i = 1, 2 using (5.22) and (5.23) given a set of settling

time and overshoot performance criterion. The resulting control gains are shown in Table 5.1.

Table 5.1: Settling time and percent overshoot requirements and PI controller gains

Ts1 o1 Ts2 o2 KP1 KI1 KP2 KI2

Case 1 20 sec 1.5 % 30 sec 1.5 % 1.6315 0.3039 3.0559 0.3288Case 2 35 sec 1.5 % 50 sec 1.5 % 0.7963 0.0785 1.4565 0.1184Case 3 60 sec 1.5 % 70 sec 3.5 % 0.3322 0.0267 0.7710 0.0641

Figures 5.6–5.8 show the time history of L1(t) and L2(t) using the control gains given in

Cases 1–3 given in Table 5.1. Note that the controller design for the system is obtained by

linearizing the nonlinear model near the predetermined steady state level of Tank 2. Therefore,

the response is not guaranteed to satisfy the imposed constraints.

(a) (b)

Figure 5.6: Response of (a) L1(t) and (b) L2(t) using the PI controller gains of case 1

5.6. Conclusion

In this Chapter, we utilized the MATLAB and Simulink-based DAC platform developed in

Chapter 4 to control a two degree-of-freedom, state-coupled, two-tank system. We outlined a

comprehensive method to perform system identification, and provided a design of a set-point

tracking controller to control the liquid level of the two-tank system. In addition, we exper-

imentally validated the system identification method by using the BS2 DAC toolbox, which

69

(a) (b)

Figure 5.7: Response of (a) L1(t) and (b) L2(t) using the PI controller gains of case 2

(a) (b)

Figure 5.8: Response of (a) L1(t) and (b) L2(t) using the PI controller gains of case 3

produced estimates of the two-tank system parameters. Finally, we experimentally obtained

the response of the set-point tracking controller, which showed good tracking performance

using several sets of performance criterion. This Chapter illustrates that the integration of a

low-cost BS2 microcontroller and the MATLAB and Simulink based DAC toolbox can be used

for data acquisition, experimental system identification, and advanced feedback control.