ĐẠ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
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
Máy tính Target
A
BBà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
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
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
7Thí 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.
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
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
Bài thí nghiệm: Nhận dạng hệ thống
11Bướ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