การควบคุมระดับนํ้าของกระบวนการสองถังที่เชื่อมต่อกัน (coupled tanks process)

MIMO

การศึกษาระบบควบคุมระดับน้ำในถังที่เชื่อมต่อกัน เริ่มต้นที่การศึกษาแบบจำลองของระบบรักษาระดับน้ำถังเดียว แสดงดังรูปที่ 1

รูปที่ 1 ระบบถังเดี่ยว

อัตราการไหลออกของของไหลแสดงได้ด้วยสมการ

qout(t)=kh(t)

(1)

โดยที่ k เป็นค่าคงที่

สมการสมดุลมวลของระบบถังเดียวเขียนได้ดังนี้

qin(t)qout(t)=dV(t)dt

(2)

โดยที่ V(t) คือปริมาตรของของไหล

จัดรูปสมการ (2) จะได้

qin(t)qout(t)=dATh(t)dt=ATdh(t)dt

(3)

แทนค่า qout

qin(t)kh(t)=ATdh(t)dt

(4)

จัดรูปสมการ (4) จะได้สมการพลศาสตร์ของระบบถังที่ 1

dh1(t)dt+kATh1(t)=1ATqin(t)

(5)

ต่อมาพิจารณาหาสมการพลศาสตร์ของถังที่ 2 ดังแสดงในภาพที่ 2

รูปที่ 2 ระบบถังคู่

สมการสมดุลมวลของระบบถังที่สองเขียนได้ดังนี้

dh2dt=k2(h1h2)A2k3h2A2

(6)

สมการ (5) และ (6) เขียนในรูปสมการเสตท ได้ดังนี้

[dh1dtdh2dt]=[k2A1k2A1k2A2(k2+k3)A2]+[h1h2]+[1A10]=qin

(7)

y=[01][h1h2]+[0]

กำหนดให้

A1=A2= 32 cm^2
k2=k3=14.3

แทนค่าลงในสมการ (7) จะได้

[dh1dtdh2dt]=[0.44690.44690.44690.8938]+[h1h2]+[0.031250]=qin

(8)

y=[01][h1h2]+[0]

นำสมการ (8) ไปสร้างเป็น control block diagram บนโปรแกรม Simulink ดังนี้

ทำการรันสคริปดังนี้

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
%%state model
A=[-0.4469 0.4469; 0.4469 -0.8938];
B=[0.03125;0];
C=[0 1];
D=[0];
 
%%check controlable
p=ctrb(A,B);
rankp=rank(p)
 
%%check observable
q=obsv(A,C);
rankq=rank(q)
 
%creat transfer function
[num1,den1]=ss2tf(A,B,C,D,1)
 
open("two_tank.slx")
sim('two_tank.slx')

จะได้ผลลัพธ์การจำลองการทำงาน ซึ่งจะพบว่าผลตอบสนองของระบบยังไม่ลู่เข้าสู่ค่า Set Point ทั้งนี้เพราะยังมิได้มีการเพิ่มตัวควบคุมที่เหมาะสมให้แก่ระบบ ดังนี้

ดาวน์โหลด Matlab/Simulink file ได้ทีนี่