Tải bản đầy đủ (.pdf) (30 trang)

Hướng dẫn thí nghiệm cao học : Nhận dạng hệ thống

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (686.19 KB, 30 trang )


ĐẠI HỌC BÁCH KHOA – ĐHQG TP. HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG





HƯỚNG DẪN THÍ NGHIỆM
CAO HỌC TỰ ĐỘNG HÓA



BÀI THÍ NGHIỆM



NHẬN DẠNG HỆ THỐNG
(SYSTEM IDENTIFICATION)



Biên soạn: HUỲNH THÁI HOÀNG











Năm 2005


Bài thí nghiệm: Nhận dạng hệ thống
1
I. MỤC ĐÍCH THÍ NGHIỆM
Muốn thiết kế hệ thống điều khiển có chất lượng tốt cần phải biết mô hình
toán học của đối tượng điều khiển. Nhận dạng hệ thống là phương pháp rút ra mô
hình toán học của hệ thống dựa vào dữ liệu vào – ra quan sát được. Lý thuyết nhận
dạng hệ thống được đưa ra từ những năm 1960 trên cơ sở lý thuyết xác suất thống
kê. Đến nay các phương pháp nhận dạng mô hình tuyến tính đã phát triển khá hoàn
chỉnh; các phương pháp nhận dạng hệ phi tuyến, đặc biệt là hệ phi tuyến MIMO
đang là vấn đề nghiên cứu được rất nhiều người quan tâm hiện nay.
Bài thí nghiệm này trang bò cho học viên kiến thức thực hành về nhận dạng
hệ thống. Thông qua các thí nghiệm cụ thể nhận dạng các đối tượng điển hình
trong phòng thí nghiệm là động cơ DC và hệ bồn chứa học viên sẽ áp dụng được
các phương pháp nhận dạng mô hình tuyến tính cũng như phi tuyến; phương pháp
nhận dạng hệ thống hở cũng như hệ thống kín; phương pháp nhận dạng hệ SISO
cũng như hệ MIMO vào thực tế. Bài thí nghiệm sẽ giúp học viên củng cố kiến thức
lý thuyết, phát triển kỹ năng thực hành nhận dạng hệ thống để sau này có thể vận
dụng lý thuyết nhận dạng các hệ thống thực tế trong công nghiệp.
Để có thể thực hiện tốt bài thí nghiệm, học viên cần xem lại cơ sở lý thuyết
trong các môn học Mô hình hóa, nhận dạng và mô phỏng; Mạng neuron nhận dạng,
dự báo và điều khiển. Phụ lục A ở cuối hướng dẫn thí nghiệm này tóm lượt lý
thuyết tối thiểu học viên phải nắm trước khi tiến hành thí nghiệm.

II. ĐỐI TƯNG NHẬN DẠNG

II.1. Sơ đồ khối thu thập dữ liệu
Bài thí nghiệm này sử dụng bộ công cụ Simulink kết hợp với Realtime
Workshop và xPC Target của Matlab để thực hiện các thí nghiệm thu thập dữ liệu,
do đó sơ đồ khối phần cứng của hệ thống được thiết kế như hình 3. Máy tính chủ
(Host) sử dụng để soạn thảo các sơ đồ Simulink thu thập dữ liệu, đồng thời cũng
được sử dụng để thực thi các thuật toán nhận dạng hệ thống. Máy tính chủ giao tiếp
với máy tính đích (Target) qua cổng nối tiếp (cổng COM). Máy tính đích giao tiếp
trực tiếp với các đối tượng cần nhận dạng qua các card thu thập số liệu. Trong bài
thí nghiệm này card thu thập số liệu được sử dụng là card PCL-818L (hãng
Advantech). Card PCL-818L có 16 kênh chuyển đổi AD 12 bit, 1 kênh chuyển đổi
DA 12 bit và 16 ngõ vào/ra song song. Đối tượng nhận dạng trong bài thí nghiệm
này là động cơ DC và hệ bồn chứa liên kết.


Hình 1: Sơ đồ khối thu thập dữ liệu

Máy tính chủ
Máy tính đích +
card DAS

Đối tượng
điều khiển


Bài thí nghiệm: Nhận dạng hệ thống
2

II.2 Động cơ DC
Động cơ DC là phần tử chấp hành được sử dụng rất phổ biến trong các máy
móc, dây chuyền sản xuất công nghiệp. Sơ đồ khối hệ thống động cơ DC dùng

trong thí nghiệm được trình bày ở hình 2. Tín hiệu điều khiển xuất ra từ máy tính
PC qua ngõ ra tương tự (Analog Output) của card PCL-818L. Mạch khuếch đại
công suất là mạch khuếch đại đẩy kéo, trục quay encoder gắn với trục quay động
cơ. Một bộ đếm lên/xuống được sử dụng để đếm xung từ encoder. Tín hiệu ra của
bộ đếm được đưa vào ngõ vào số (Digital Input) của card thu thập số liệu PCL-
818L. Bằng cách đếm xung, chúng ta đo được vò trí của động cơ, lấy sai phân vò trí
giữa hai lần lấy mẫu liên tiếp ta sẽ đo được tốc độ quay của động cơ.




Hình 2: Động cơ DC: hình dáng bên ngoài (trên), sơ đồ khối phần cứng (dưới)

II.3 Hệ bồn chứa
Hệ bồn chứa là đối tượng phi tuyến điển hình thường gặp trong các quá trình
công nghiệp. Hệ bồn chứa gồm 2 bồn chứa chất lỏng thông nhau, tiết diện van nối
giữa hai bồn và tiết diện van xả của mỗi bồn có thể thay đổi được. Chất lỏng được
bơm vào hai bồn bằng hai máy bơm DC. Hệ bồn liên kết là một đối tượng điển hình
thường dùng để kiểm chứng các thuật toán điều khiển quá trình. Tùy theo tiết diện
mở các van, cách sử dụng các máy bơm và tầm làm việc mà ta có được các cấu hình
hệ thống khác nhau để kiểm chứng lý thuyết điều khiển như hệ quán tính bậc 1, hệ
quán tính bậc 2, hệ phi tuyến, hệ đa biến, hệ có nhiễu loạn, hệ có thông số biến đổi,…
PCL-818L
AO
DI
Khuếch đai
công suất
Động cơ
DC
Encoder Bộ đếm

Máy tính Target
A
B


Bài thí nghiệm: Nhận dạng hệ thống
3
Sử dụng cảm biến áp suất Model 68075 (hãng Cole-Parmer) để đo chiều cao
mực chất lỏng trong bồn chứa. Khi áp suất cột chất lỏng trong bồn thay đổi từ 0-
5psig thì dòng ra của cảm biến thay đổi trong khoảng 4-20mA, dùng điện trở 560Ω
để biến đổi dòng thành áp. Máy tính đọc điện áp này qua ngõ vào tương tự của
card PCL-818L. Chất lỏng bơm vào bồn bằng máy bơm DC 12V với công suất bơm
cực đại đònh mức 70 lit/phút. Lưu lượng bơm thay đổi bằng cách thay đổi điện áp
cấp cho máy bơm theo phương pháp điều rộng xung. Bộ điều rộng xung sử dụng vi
điều khiển P89C51RD2 của hãng Philip.





Hình 3: Hệ bồn chứa liên kết: hình dáng bên ngoài (trên), sơ đồ khối phần cứng (dưới)

III. PHẦN MỀM THÍ NGHIỆM
III.1 Chương trình Simulink thu thập số liệu
Bài thí nghiệm này sử dụng bộ công cụ Simulink kết hợp với Realtime
Workshop và xPC Target của Matlab để thực hiện các thí nghiệm thu thập số liệu.
Sơ đồ khối chương trình Simulink thu thập dữ liệu vào ra của động cơ DC và hệ
bồn chứa lần lượt được trình bày ở hình 4 và 5. Sử dụng bộ công cụ Realtime
Worrkshop có thể biên dòch chương trình Simulink thành chương trình có thể thực
thi độc lập trên các máy tính không cài Matlab. Bộ công cụ xPC Target hỗ trợ các

giao tiếp với các card thu thập dữ liệu chuyên dụng, trong đó có card PCL-818L.
Nhờ bộ công cụ này mà chương trình khả thi sau khi biên dòch được tải xuống máy
tính điều khiển thiết bò.


Bài thí nghiệm: Nhận dạng hệ thống
4
Thu thập dữ liệu vào ra động cơ:
Chương trình Simulink thu thập dữ liệu vào – ra của động cơ được lập trình
sẳn và lưu trữ trong file DC_Motor.mdl (xem hình 4).
Trong hình 4a tín hiệu vào lưu trong file DCMotor_Input.mat được tạo ra bằng
cách gọi thực thi chương trình DCMotor_Input.m. Khối DCMotor cho phép máy
tính giao tiếp với phần cứng qua card PCL-818L. Sơ đồ chi tiết khối DCMotor được
trình bày ở hình 4b.
Trong hình 4b khối Analog Output xuất tín hiệu điều khiển mạch khuếch đại
công suất cấp nguồn cho động cơ qua ngõ ra tương tự của card PCL-818L. Khối
Digital Input đọc tín hiệu từ bộ đếm qua ngõ vào số của card PCL-818L. Khối
MeasureVel tính vận tốc động cơ bằng cách so sánh giá trò bộ đếm hiện tại với giá trò
bộ đếm ở lần lấy mẫu trước để biết được dòch chuyển tương đối, sau đó lấy dòch
chuyển tương đối chia cho chu kỳ lấy mẫu sẽ được vận tốc. Khối MeasurePos tính vò
trí góc quay động cơ bằng cách cộng dòch chuyển tương đối với vò trí góc quay đã xác
đònh được ở lần lấy mẫu trước. Hãy đọc các file mã nguồn measurePos.c và
measureVel.c để hiểu rõ hơn về các thuật toán này.


(a)


(b)
Hình 4: Sơ đồ Simulink thu thập dữ liệu vào – ra động cơ DC




Bài thí nghiệm: Nhận dạng hệ thống
5
Thu thập dữ liệu vào ra hệ bồn chứa:
Chương trình Simulink thu thập dữ liệu vào – ra của hệ bồn chứa được lập
trình sẳn và lưu trữ trong file Coupled_Tank.mdl (xem hình 5).
Trong hình 5a tín hiệu vào để thực hiện các thí nghiệm thu thập số liệu đã
được tạo ra và lưu sẳn trong file Tank_Input.mat bằng cách thực thi chương trình
Tank_Input.m. Khối Coupled_Tank cho phép máy tính giao tiếp với phần cứng qua
card PCL-818L. Sơ đồ chi tiết khối Coupled_Tank được trình bày ở hình 5b.
Trong hình 5b khối PCL818do xuất tín hiệu điều khiển máy bơm (chu kỳ
nhiệm vụ của bộ PWM, xem sơ đồ phần cứng ở hình 3) qua ngõ ra số của card
PCL-818L, khối Offset dùng để loại bỏ đặc tính vùng chết của máy bơm. Khối
PCL-818L Advatech Analog Input đọc giá trò điện áp DC phản hồi từ các cảm biến
áp suất đo độ cao mực chất lỏng, tín hiệu này được lọc nhiễu bằng bộ lọc thông
thấp, khối V to H biến đổi điện áp phản hồi thành độ cao mực chất lỏng bằng cách
nhân điện áp với một hệ số tỉ lệ, hệ số này có được khi đònh chuẩn mạch đo.


(a)


(b)
Hình 5: Sơ đồ Simulink thu thập dữ liệu vào – ra hệ bồn chứa liên kết



Bài thí nghiệm: Nhận dạng hệ thống

6
III.2 Chương trình nhận dạng hệ thống
Nhận dạng mô hình tuyến tính dùng bộ công cụ nhận dạng hệ thống của
Matlab (Indentification Toolbox).
Nhận dạng hệ phi tuyến dùng các chương trình viết sẳn theo các thuật toán
ước lượng thông số đã trình bày trong môn học Mô hình hóa, nhận dạng và mô
phỏng. Học viên có thể tham khảo mã nguồn để phát triển các thuật toán phù hợp
với bài toán nhận dạng cần giải.

IV. CHUẨN BỊ THÍ NGHIỆM
Học viên cần đọc kỹ hướng dẫn này trước khi tiến hành thí nghiệm và trả lời
ngắn gọn các câu hỏi sau đây:
1. Nhận dạng hệ thống là gì?
2. Các bước nhận dạng hệ thống?
3. Trình tự thực hiện thí nghiệm thu thập dữ liệu?
4. Mô hình không tham số của hệ tuyến tính?
5. Dạng tín hiệu vào để thực hiện thí nghiệm thu thập dữ liệu nhận dạng mô hình
không tham số hệ tuyến tính?
6. Các loại mô hình có tham số của hệ tuyến tính?
7. Dạng tín hiệu vào để thực hiện thí nghiệm thu thập dữ liệu nhận dạng mô hình
có tham số hệ tuyến tính?
8. Mô hình hộp đen phi tuyến?
9. Biểu thức toán học của mô hình mờ? Mô hình mờ có thể xây dựng bằng cách
nào?
10. Biểu thức toán học của mô hình mạng thần kinh? Khả năng xấp xỉ của mô hình
mạng thần kinh phụ thuộc vào những yếu tố nào?
11. Dạng tín hiệu vào để thực hiện thí nghiệm thu thập dữ liệu nhận dạng mô hình
phi tuyến?
12. Thuật toán ước lượng thông số mô hình phi tuyến?
13. Làm thế nào để biết được mô hình nhận dạng được có tốt hay không?

14. Tại sao phải nhận dạng hệ thống kín?
15. Các phương pháp nhận dạng hệ thống kín? Ưu khuyết điểm của mỗi phương
pháp?

V. NỘI DUNG THÍ NGHIỆM
Trước khi thực hiện các thí nghiệm dưới đây, phải chắc rằng:
- Hệ thống đã được kết nối như sơ đồ khối ở hình 1.
- Đã kích hoạt Matlab, cửa sổ lệnh đã sẳn sàng
- Máy tính đích đã được khởi động dùng đóa Boot Loader (đóa này đã được tạo
sẳn dùng bộ công cụ xPC Target, cách tạo đóa khởi động này học viên có thể tham
khảo tài liệu hướng dẫn của Matlab).


Bài thí nghiệm: Nhận dạng hệ thống
7


Thí nghiệm 1
: Thí nghiệm thu thập dữ liệu vào – ra của động cơ DC
Dưới đây là hướng dẫn chi tiết cách thu thập dữ liệu vào ra của động cơ DC,
cách thu thập dữ liệu vào ra hệ bồn liên kết được thực hiện tương tự.
Bước 1.1: Tại cửa sổ lệnh, gõ vào dòng lệnh: >> Motor [ENTER]
Cửa sổ chương trình Simulink thu thập dữ liệu động cơ DC xuất hiện như hình 3.
Bước 1.2: Nếu Matlab báo lỗi, kiểm tra xem trong thư mục hiện hành có file dữ
liệu Motor_Input.mat hay không? Nếu chưa có hãy gọi hàm Motor_Input.m để tạo
file chứa tín hiệu vào.
Bước 1.3: Đặt thông số cho chương trình Simulink
- Nhấp chuột vào cửa sổ [Motor], sau đó chọn menu [Simulation] →
[Simulation Parameters …] (có thể bấm phím tắt là [Ctrl-E], cửa sổ [Simulation
Parameters: Motor] hiện lên.







Thu thập dữ liệu
Thời gian thu thập
dữ liêu là 30 giây
Chu kỳ lấy mẫu 0.01 giây
Lưu trữ dữ liệu vào biến yout
Lưu trữ tối đa 5000 mẫu dữ liệu
Lưu trữ thời gian vào biến tout


Bài thí nghiệm: Nhận dạng hệ thống
8



- Lần lượt chọn các trang [Solver], [Workspace IO], [Real-Time Workshop]
trong cửa sổ [Simulation Parameters: Motor] và kiểm tra xem nội dung các trang
có giống các hình trên đây hay không, nếu không thì đặt lại cho đúng.
- Sau khi kiểm tra nội dung các trang trong cửa sổ [Simulation Parameters:
Motor], nhấp chuột vào nút nhấn [OK].
Bước 1.4: Biên dòch chương trình và tải xuống máy tính đích
Trong cửa sổ [Motor] chọn [Tool] → [Realtime Workshop] → [Build Model]
(có thể bấm phím tắt là [Ctrl-B]).
Máy tính chủ bắt đầu biên dòch chương trình thu thập dữ liệu và sau đó tải
chương trình xuống máy tính đích. Nếu không có lỗi trên màn hình máy tính chủ và

máy tính đích có xuất hiện thông báo cho biết quá trình biên dòch và tải chương
trình xuống thành công. Ở bước này nếu có Matlab báo lỗi thì tùy theo thông báo
lỗi hãy kiểm tra lại xem:
- Chương trình Simulink có lỗi hay không (chú ý rằng các lỗi này có thể bao
gồm lỗi sử dụng các khối con không tương thích với xPC Target).
- Kết nối cổng COM giữa máy tính chủ và máy tính đích có lỗi không?
- Nếu không xác đònh được lỗi hãy liên hệ với người hướng dẫn thí nghiệm để
được giúp đỡ.
Bước 1.5: Thực thi chương trình thu thập dữ liệu
Tại dấu nhắc lệnh của Matlab, gõ vào dòng lệnh:
>> tg.start [ENTER]
Nếu động cơ không quay hãy kiểm tra xem mô hình động cơ đã được cấp
nguồn chưa?
Bước 1.6: Lưu trữ dữ liệu để sử dụng trong nhận dạng
Tại dấu nhắc lệnh của Matlab, gõ vào dòng lệnh:
>> Save_Motor_Data [ENTER]
Biên dòch chương trình thành
mã chạy trên máy tính Target


Bài thí nghiệm: Nhận dạng hệ thống
9
Chương trình sẽ tải dữ liệu từ máy tính đích về máy tính chủ, sau đó lưu trữ tín
hiệu điều khiển điện áp phần ứng vào biến u, tốc độ động cơ vào biến y1, vò trí
động cơ vào biến y2, sau đó vẽ đồ thò dữ liệu vào ra vừa thu thập được (mở file
Save_Motor_Data.m để xem chi tiết các lệnh). Dữ liệu thu thập được sẽ được sử
dụng để nhận dạng hệ thống có các thí nghiệm tiếp theo.

Thí nghiệm 2
: Thí nghiệm thu thập dữ liệu vào – ra của hệ bồn chứa

Thực hiện thí nghiệm thu thập dữ liệu vào – ra của hệ bồn chứa tương tự như
cách đã làm ở thí nghiệm 1, chú ý rằng:
- Chương trình Simulink thu thập dữ liệu hệ bồn chứa: Coupled_Tank.mdl
- File chứa tín hiệu vào hệ bồn chứa: Tank_Input.mat.
- Chương trình tạo ra tín hiệu vào: Tank_Input.m.
- Thời gian thu thập dữ liệu là 10 phút,
- Chu kỳ lấy mẫu là 0.5 giây
- File thực thi chương trình lưu trữ dữ liệu: Save_Tank_Data.m
- Tín hiệu vào (điện áp điều khiển máy bơm) được lưu vào các biến u1, u2
- Tín hiệu ra (độ cao mực chất lỏng trong bồn) được lưu vào các biến y1, y2


Thí nghiệm 3
: Nhận dạng đáp ứng xung của động cơ DC bằng PP phân tích quá độ
Bước 3.1: Thực hiện thí nghiệm thu thập dữ liệu (xem thí nghiệm 1) với tín hiệu
vào (điện áp phần ứng) có dạng hàm nấc
, tín hiệu ra là tốc độ động cơ DC.
Bước 3.2: Tính đáp ứng xung. Gọi hàm:
g = Transient_Response_Analysis(u,y)
để tính đáp ứng xung )(
tg .
Bước 3.3: Đánh giá mô hình
- Thực hiện thí nghiệm thu thập số liệu với tín hiệu vào bất kỳ. Lưu tín hiệu
vào vào biến uv, tín hiệu ra vào biến yv.
- Đánh giá mô hình bằng cách gọi hàm:
e = Transient_Response_Validate(g,uv,yv)
với g là đáp ứng xung ước lượng được ở bước 2.2, e là sai số.
Hãy cho biết mô hình nhận dạng được có “chính xác” hay không?
Thí nghiệm 4
: Nhận dạng đáp ứng tần số của động cơ DC bằng phương pháp

kiểm tra sóng sin (Sine-wave testing)
Bước 4.1: Thực hiện thí nghiệm thu thập dữ liệu với tín hiệu vào là hàm sin, tần số
ω = 0.2π rad/sec, tín hiệu ra là tốc độ động cơ
.
Các thí nghiệm nhận dạng mô hình tuyến tính


Bài thí nghiệm: Nhận dạng hệ thống
10
Bước 4.2: Quan sát đồ thò đáp ứng, hãy tính
)(
ω
M
là tỉ lệ về biên độ giữa tín hiệu
ra và tín hiệu vào,
)(
ωϕ
là độ lệch pha giữa tín hiệu ra và tín hiệu vào.
Bước 4.3: Lặp lại bước 4.1 và 4.2 với tần số tín hiệu hình sin tăng dần.
Bước 4.4: Vẽ đồ thò đáp ứng tần số (biểu đồ Bode) của động cơ DC dựa vào kết
quả các thí nghiệm
Hãy cho biết tần số cắt biên, tần số cắt pha, độ dự trữ biên, độ dự trữ pha của
động cơ DC có đáp ứng tần số vừa ước lượng được.
Thí nghiệm 5
: Nhận dạng đáp ứng tần số của động cơ bằng PP kiểm tra sóng sin
Lặp lại thí nghiệm 4 với tín hiệu vào là tín hiệu điều khiển điện áp phần ứng,
tín hiệu ra vò trí góc quay
của động cơ.
Vẽ biểu đồ Bode. Xác đònh tần số cắt biên, tần số cắt pha, độ dự trữ biên, độ
dự trữ pha. Hãy cho nhận xét so sánh biểu đồ Bode biên độ và pha ước lượng được

trong hai thí nghiệm 4 và 5.

Thí nghiệm 6
: Nhận dạng mô hình có tham số của động cơ DC sử dụng bộ công
cụ Ident Toolbox của Matlab
Bước 6.1: Thực hiện thí nghiệm thu thập dữ liệu với tín hiệu vào là tín hiệu nhò
phân ngẫu nhiên (u), tín hiệu ra là tốc độ động cơ
(y1).
Bước 6.2: Kích hoạt bộ công cụ
nhận dạng hệ thống của Matlab
bằng dòng lệnh:
>> Ident [ENTER]
Cửa sổ giao diện của bộ
công cụ Ident hiển thò trên màn
hình. Giao diện này cho phép
dễ dàng thực hiện các bước
nhận dạng hệ thống như xử lý
dữ liệu, ước lượng thông số,
đánh giá mô hình,… Cách sử
dụng giao diện có thể tham
khảo trong tài liệu hướng dẫn
của Matlab.
Bước 6.3: Lấy dữ liệu để nhận dạng.
- Chọn [Data] → [Import…], cửa sổ [Import Data] hiện lên.
- Hãy điền thông tin vào cửa sổ [Import Data] như hình ở trang sau.
- Nhấp chuột vào nút nhấn [Import] để nhập dữ liệu vào ra của hệ thống cần
nhận dạng vào cửa sổ [Ident].
- Nhấp chuột vào nút nhấn [Close] để đóng của sổ [Import Data].



Bài thí nghiệm: Nhận dạng hệ thống
11


Bước 6.4: Tiền xử lý dữ liệu.
Trong cửa sổ [Ident] chọn [Preprocess] → [Quick Start], bộ công cụ Ident lần
lượt thực hiện các tác vụ sau:
- Loại mức DC ra khỏi dữ liệu (Remove mean), đặt tên cho tập dữ liệu sau khi
loại mức DC là Motord
(thêm đuôi d vào tên ban đầu).
- Chia dữ liệu sau khi loại mức DC làm 2 đoạn (Select range), đoạn đầu dùng
để ước lượng thông số (Motorde), đoạn sau dùng để đánh giá mô hình (Motordv).
- Hiển thò dữ liệu lên cửa sổ [Time plot]






u (điện áp) và y1 (tốc độ) là hai
biến lưu dữ liệu vào ra của động
cơ đã thu thập được ở bước 6.1
tên dữ liệu có thể đặt tùy chọn
thời gian lấy mẫu dữ liệu
dữ liệu ban đầu
dữ liệu sau khi loại mức DC
dữ liệu dùng để ước lượng thông số
dữ liệu dùng để đánh giá mô hình

×