Được sự gợi ý của các thầy cô trong bộ môn nhằm nâng cao chuyên môn và mong muốn tự động hóa được ứng dụng nhiều hơn trong các lĩnh vực như kĩ thuật,y khoa,sinh học,địa lý… Nhóm đã quyết
Trang 1THÀNH PHỐ HỒ CHÍ MINH
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP SINH VIÊN
Tp Hồ Chí Minh, 2011
S 0 9
THIẾT KẾ BỘ ĐIỀU KHIỂN HỆ THỐNG
CÂN BẰNG BALL AND BEAM TRÊN MATLAB
S 0 1
MÃ SỐ: SV2010-112
S KC 0 0 3 2 2 5
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
ĐỀ TÀI NCKH CẤP SINH VIÊN
THIẾT KẾ BỘ ĐIỀU KHIỂN HỆ THỐNG CÂN BẰNG
BALL AND BEAM TRÊN MATLAB
Mã số : SV2010-112
THUỘC NHÓM NGÀNH : KHOA HỌC KỸ THUẬT
NGƯỜI CHỦ TRÌ : ĐỖ THANH LIÊM
NGƯỜI THAM DỰ : PHAN THANH NGUYÊN
ĐƠN VỊ : ĐIỆN – ĐIỆN TỬ
TP.HỒ CHÍ MINH – 05/2011
Trang 3CHƯƠNG 1:
ĐẶT VẤN ĐỀ 1
1.1 Lý do chọn đề tài 1
1.2 Đối tượng nghiên cứu 1
1.3 Tình hình nghiên cứu trong và ngoài nước 1
1.4 Những vần đề tồn tại 2
CHƯƠNG 2: MỤC ĐÍCH ĐỀ TÀI 3
2.1 Mục đích đề tài 3
2.2 Phương pháp nghiên cứu 3
2.3 Nội dung thực hiện 3
2.3.1 Thiết lập mô hình toán học Ball & Beam 3
2.3.2 Phương trình hệ thống 4
2.4 Điều khiển vị trí Ball 4
2.5 Điều khiển vị trí góc alpha 5
2.6 Ứng dụng trên command của matlab 6
Hàm truyền 6
CHƯƠNG 3: THIẾT KẾ GIAO DIỆN ĐIỀU KHIỂN HỆ THỐNG 7
3.1 Sơ lược công cụ GUIDE trong matlab 7
3.1.1 Cửa sổ GUIDE 8
3.1.2 Kéo thả các điều khiển 9
3.1.3 Thay đổi các thuộc tính của điều khiển 9
3.1.4 Viết lệnh cho chương trình 10
3.2 Thiết kế giao diện bộ điều khiển 11
3.3 Lập trình cho giao diện 11
Trang 43.5.1 Analog Input 14
3.5.2 Analog Output 15
3.5.3 Digital Input/Output 16
3.5.4 Programable Counter/Timer 16
CHƯƠNG 4: THIẾT KẾ BỘ ĐIỀU KHIỂN CÂN BẰNG BALL &BEAM 18
Tổng quan về PID 18
4.1 Thành phần tỉ lệ (P) 19
4.2 Thành phần tích phân (I) 19
4.3 Thành phần vi phân (D) 20
4.4 Phương pháp ZIEGLER-NICHOLS 20
4.5 Sơ đồ bộ điều khiển 21
4.5.1 Sơ đồ điều khiển PID 21
4.5.2 Thiế kế bộ điều khiển PID cho vị trí và góc alpha 21
4.5.3 Thiết kế bộ điều khiển PID cho vị trí Ball 22
4.6 Vấn đề tunning bộ điều khiển PID 24
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 26
5.1 Kết luận 26
5.2 Hướng phát triển 26
Tài liệu tham khảo 27
Trang 5Bảng 3.5 : các ký hiệu và ý nghĩa trên sơ đồ chân card PCI 1711
Nichol
Trang 6CHƯƠNG 1
ĐẶT VẤN ĐỀ
1.1 Lý do chọn đề tài:
Trong thời đại hiện nay, đất nước ta đang phát triển theo con đường công nghiệp hóa
và hiện đại hóa Lĩnh vực khoa học kỹ thuật ngày càng phát triển, đặc biệt là ngành
tự động hóa ngày càng đóng vai trò hết sức quan trọng trong đời sống con người và ngày càng phát triển theo xu hướng của thời đại Bên cạnh đó qua một thời gian được tiếp xúc với những môn học mới nhóm thực hiện càng hiểu rõ hơn tính cấp thiết của
tự động hóa Được sự gợi ý của các thầy cô trong bộ môn nhằm nâng cao chuyên môn và mong muốn tự động hóa được ứng dụng nhiều hơn trong các lĩnh vực như kĩ thuật,y khoa,sinh học,địa lý… Nhóm đã quyết định tìm hiểu một vấn đề nhỏ bé liên
quan đến tự động hóa đó là “thiết kế bộ điều khiển hệ thống cân bằng ball and beam trên matlab” nhằm khai thác tính ứng dụng của môn học này vào thực tế
1.2 Đối tượng nghiên cứu:
Phần mềm Matlab
Thiết kế giao diện dùng GUIDE
Card PCI 1711
Phương pháp điều khiển PID
1.3 Tình hình nghiên cứu trong và ngoài nước:
Điều khiển dùng phương pháp PID đã được nghiên cứu và ứng dụng nhiều, sau đây
là một một số đề tài sử dụng phương pháp PID:
- THIẾT KẾ VÀ ĐIỀU KHIỂN MÔ HÌNH CON LẮC NGƯỢC
(Huỳnh Trung Nguyên,Đặng Khắc Long,Lớp 061180-ĐHSPKT tp Hồ Chí Minh)
- ĐIỀU KHIỂN LÒ NHIỆT DÙNG PID
(Trần Vũ hoàng ,Lớp 071180 ĐHSPKT tp Hồ Chí Minh)…
Trang 71.4 Những vấn đề còn tồn tại:
Thời gian xác lập vẫn còn lớn vì thế tuy phương pháp này vẫn đáp ứng yêu cầu
nhưng vẫn chưa là tối ưu
Trang 8CHƯƠNG 2
MỤC ĐÍCH ĐỀ TÀI
2.1 Mục đích đề tài:
Sử dụng phương pháp PID trong Matlab sao cho giá trị đã tính toán đạt tối ưu
Sử dụng card PCI giao tiếp để điều khiển các mô hình thật (nếu có)
Thiết kế giao diện trong điều khiển
2.2 Phương pháp nghiên cứu:
Phương pháp quan sát khoa học
Phương pháp phân loại hệ thống lý thuyết
Phương pháp phân tích
2.3 Nội dung thực hiện:
Hình 2.3.1.Mô hình đơn giản ball and beam
Hệ thống ball and beam bao gồm một quả bóng tròn,thanh ngang chiều dài L, góc
được dùng để di chuyển thanh nằm ngang theo cả hai hướng lên và xuống
Trang 9-Tuyến tính của phương trình về góc của cánh tay đòn, alpha = 0, cho chúng ta gần đúng
theo tuyến tính của hệ thống :
- Phương trình liên quan tới góc của cánh tay đòn với góc của bánh (phần trợ động) có thể
xấp xỉ là tuyến tính bằng phương trình dưới đây:
m R
2.4 Điều khiển vị trí ball:
- Hàm truyền của đối tượng là:
2 2
2
21.01
S S m R
J L
mgd S
S R S
J L
mgd r
r r
r
2
0
00
10
(2.4.1)
Trang 10 Kết luận:
Hệ ball and beam là hệ phi tuyến, do đó có thể tuyến tính hóa quanh điểm làm việc tĩnh
Hệ ball and beam có 2 biến trạng thái (hoặc 4 biến trạng thái và 1 biến điều khiển trong
phần mở rộng thêm phía dưới)
Tuy nhiên, đối với những mô hình có kinh phí lớn, được đầu tư kỹ càng thì cũng
có thể sử dụng
Theo phương trình 4 biến trạng thái và 1 biến điều khiển như sau:
r u
r m
R J
mg r
00
00
00
00
00
0
00
10
2.5 Điều khiển vị trí và góc alpha:
Phương trình vi phân mô tả hệ thống là:
sin
1
u u m u
mg m R
Trang 112.6 Ứng dụng trên command của matlab:
Hàm truyền:
Chức năng chuyển hàng từ các biến đổi Laplace có thể được thực hiện trong
M ATLAB bằng cách nhập vào tử số và mẫu số là vectơ Để làm điều này chúng ta phải
Trang 12CHƯƠNG 3
THIẾT KẾ GIAO DIỆN ĐIỀU KHIỂN CHO HỆ THỐNG
3.1 Sơ lược về công cụ lập trình GUIDE trong matlab:
GUIDE là công cụ lập trình giao diện rất hữu ích trong matlab,giúp cho người xem
các chương trình lập trình giao diện như Visual Basic, Visual C++
Để có thể sử dụng được nó ta có thể sơ lược qua vài ứng dụng cơ bản như sau
Mở phần mềm Matlab, gõ lệnh sau vào cửa sổ Command
>> guide
Trong cửa sổ GUIDE Quick Start có nhiều lựa chọn theo một trong các khuân mẫu
sau:Create New GUI: Tạo một hộp thoại GUI mới theo một trong các loại sau
cả
trình có thể chạy ngay
Trang 13 GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và button, các
menu để hiển thị đồ thị
Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No
Open Existing GUI: mở một project có sẵn.
Trong phần này, ta sẽ tạo một project mới nên sẽ chọn Blank GUI
Push Button: giống như nút Command Button trong VB Là các nút bấm như nút
OK, Cancel mà ta vẫn bấm
Slider : Thanh trượt có một con trượt chạy trên đó
Radio Button : Nút nhỏ hình tròn để chọn lựa
Trang 143.1.2 Kéo thả các điều khiển:
Chương trình có chức năng khi nhấn vào nút bấm thì kết quả của phép tính cộng giữa 2 số được gõ vào 2 ô sẽ hiện lên trong Static Text
Click đúp vào Edit Text bên trái để xuất hiện cửa sổ các thuộc tính của điều khiển Có thể sắp xếp theo chức năng hoặc theo thứ tự A-Z của tên thuộc tính bằng nút hiện ở gõ bên trái
Trang 153.1.4 Viết lệnh cho chương trình:
Chương trình có tác dụng khi nhấn vào nút Push Button sẽ hiện lên kết quả ở Static Box
Vì thế nên sẽ phải viết vào hàm nào mà khi nhấn vào Push Button sẽ gọi Chính là hàm Callback Điều khiển nào cũng có hàm callback, như hàm ngắt trong vi điều khiển vậy Click chuột phải vào nút Calculate chọn Callback
Trang 163.2 Thiết kế giao diện cho bộ điều khiển :
3.2 Giao diện bộ điều khiển ball and beam
3.3 Lập trình cho giao diện:
Trang 173.4 Thao tác trên giao diện-kết quả:
3.4 Giao diện bộ điều khiển ball and beam sau khi chạy chương trình
3.5 Card thu thập dữ liệu PCI-1711:
Chức năng của card PCI trong ứng dụng này là cho phép máy tính có thể giao tiếp với các thiết bị ngoại vi ,và từ đó giúp cho bộ điều khiển trung tâm-máy tính, có thể thu thập dữ liệu ,xử lý và xuất tín hiệu điều khiển đạt được độ chính xác và ổn định cao.Với những tính năng của nó như cho phép truy xuất dữ liệu qua bus PCI, có 2 bộ D/A 12 bit, 16 ngõ ra số,16 ngõ vào số và một timer/counter có thể lập trình được ( ở mode counter có khả năng đếm xung lên tới 10Mhz thì card PCI 1711 được cho là sự lựa chọn tối ưu cho việc giao tiếp giữa máy tính với các thiết bị ngoại vi được sử dụng trong mô hình.Sơ đồ và chức năng của các ngõ vào ra của card được mô tả như bên dưới
Trang 18
AIGND: Analog Input Ground.( 3 chân AIGND, AOGND, và DGND được nối chung với nhau) AO0_REF AO1_REF: Ngõ vào điện áp tham chiếu bên ngoài của kênh ngõ ra tương tự 0/1 AO0_OUT AO1_OUT: Chân ngõ ra tương tự 0/1
EXT_TRG: A/D External Trigger: Chân này nhận tín hiệu trigger từ bên ngoài cho chuyển đổi A/D Chuyển đổi A/D bắt đầu khi tín hiệu chuyển từ mức
+5V: Nguồn 5VDC
Hình 3.5: Sơ đồ chân các ngõ vào/ ra và ý nghĩa các ký hiệu card PCI 171
Tên tín hiệu Tham chiếu Chiều Mô tả
AI<0 15> AIGND Ngõ vào Analog Input Channels: từ kênh 0 đến kênh 15
AIGND Analog Input Ground.: 3 chân AIGND, AOGND, và DGND
được nối chung với nhau AO0_REF AOGND Ngõ vào Analog Output Channel0/1 External Reference Ngõ vào điện
Trang 19AO1_REF áp tham chiếu bên ngoài của kênh ngõ ra tương tự 0/1 AO0_OUT
AO1_OUT
AOGND Ngõ ra Analog Output Channels 0/1.Chân ngõ ra tương tự 0/1
DI<0 15> DGND Ngõ vào Digital Input channels: Kênh ngõ vào số
DO<0 15> DGND Ngõ ra Digital Output channels: Kênh ngõ ra số
CNT0_CLK DGND Ngõ vào Counter 0 Clock Input: Ngõ vaò xung clock Counter 0 Ngõ
vào này có thể là tín hiệu bên ngoài hoặc bên trong Và được
cài đặt bằng phần mềm CNT0_OUT DGND Ngõ ra Counter 0 Output: Ngõ ra Counter 0
CNT0_GATE DGND Ngõ vào Counter 0 Gate Control.: Cổng điều khiển Counter 0
PACER_OUT DGND Ngõ ra Pacer Clock Ouput: Nếu chuyển đổi A/D ở chế độ Pacer
Trigger, người sử dụng có thể dùng tín hiệu từ chân này như là
một tín hiệu đồng bộ các ứng dụng khác
EXT_TRG DGND Ngõ vào A/D External Trigger: Chân này nhận tín hiệu trigger từ bên
ngoài cho chuyển đổi A/D Chuyển đổi A/D bắt đầu khi tín
hiệu chuyển từ mức thấp lên mức cao +12V DGND Ngõ ra Nguồn 12VDC
+5V DGND Ngõ ra Nguồn 5VDC
Bảng 3.5.a: Các ký hiệu và ý nghĩa trên sơ đồ chân card PCI 1711
Trang 203.5.1 Analog Input( Ngõ vào Analog ) :
Max Sample Rate 100KS/s max
ENOB: 11 bits
Bảng 3.5.1: Đặc điểm của các ngõ vào Analog
3.5.2 Analog Output ( Ngõ ra Analog):
Differential Non-linearity ±1/2 LSB Gain Error Adjustable to zero
Driving Capability 3 mA
Throughput 38 kHz (min.)
Output Impedance 0.81 Ω
Settling Time 26 µs (to ±1/2 LSB of FSR)
Reference Voltage Internal -5 V or -10 V
External -10 V ~ +10 V
Bảng 3.5.2: Đặc điểm của các ngõ ra Analog
Trang 213.5.3 Digital Input/Output(Ngõ vào/ra số):
Input Load Low 0.4 V max @ -0.2mA
High 2.7 V min @ 20µA
Output Voltage Low 0.4 V max.@ +8.0mA (sink)
High 2.4 V min.@-0.4mA (source
Bảng 3.5.3: Đặc điểm của các ngõ vào/ ra số
Channels 3 channels, 2 channels are permanently configured as
programmable pacers; 1 channel is free for user application
Conpatibility TTL level
Base Clock Channel 2: Takes input from output of channel 1
Channel 1: 10 MHz Channel 0: Internal 1MHz or external clock (10 MHz) max
Selected by software Max Input Frequency 1 MHz
Trang 22Lời khuyên : Như vậy, sau khi xem xét kỹ tất cả các tính năng của card PCI 1711,
người thực hiện đề tài nhận ra rằng: có thể sử dụng counter ở mode đếm để đếm xung của encorder 5000ppr, cùng với đó là có thể sử dụng ngõ ra Analog Out để điều khiển tốc độ động cơ cho hệ thống
Trang 23CHƯƠNG 4
THIẾT KẾ BỘ ĐIỀU KHIỂN CÂN BẰNG BALL & BEAM
4 Tổng quan về PID:
ứng dụng hiện nay bởi tính hiệu quả của nó
Hình 4 : Sơ đồ khối của bộ điều khiển PID
Bộ điều khiển PID có thể biểu diễn theo phương trình sau:
u t P out t I out t D out t
dt
t de K dt t e K t e K t u
0
Trong đó:
Setpoint : là giá trị mong muốn đạt được tại ngõ ra của đối tượng điều khiển
Process variable : tín hiệu hồi tiếp mà bộ điều khiên nhận được từ đối tượng điều khiển Control variable : giá trị ngõ ra của bộ điều khiển
Error: giá trị sai lệch giữa giá trị đặt và giá trị hiện tại ở ngõ ra của đối tượng điều khiển Output : đại lượng vật lý cần điều khiển
Bộ điều khiển PID là sự kết hợp của 3 thành phần :Thành phần tỉ lệ (P) đưa ra giá trị Pout dựa trên giá trị sai lệch tại thời điểm hiện tại; thành phần tích phân (I) đưa ra giá trị Iout
Control Variable
Process Variable
Trang 24dựa trên tích lũy các giá trị sai lệch từ quá khứ đến thời điểm hiện tại ;thành phần vi phân (D) tính toán giá trị Dout dựa trên tốc độ thay đổi của sai lệch.Tác dụng của từng khâu lên ngõ ra của bộ PID như sau:
4.1 Thành phần tỉ lệ (P):
Pout t K pe t (4.1) với Kp : hằng số tỉ lệ Muốn thực thi thành phần P với các bộ điều khiển số như vi điều khiển,máy tính, thì phải chuyển phương trình (1) sang biểu diễn trong miền rời rạc:
Như vậy, muốn tính giá trị ngõ ra của khâu P thì tại mỗi chu kỳ lấy mẫu, tính toán giá trị của
PV, sau đó tính toán giá trị của sai lệch error, sau đó nhân giá trị sai lệch này với hằng số Kp
*Giá trị ngõ ra của khâu P cũng phụ thuộc rất nhiều vào hệ số Kp.Nếu Kp quá lớn có thể làm giá trị của đại lượng vật lý dao động, gây ra độ vọt lố cao Kp quá nhỏ làm cho bộ điều khiển kém “nhạy” với các hệ thống có nhiễu
4.2 Thành phần tích phân (I):
it
out t K e t I
0
(4.2) với Ki: hằng số vi phân
Chuyển qua miền rời rạc ta được :
dt t e K dt kT e K kT I
kT
T k i
t k i
Để thực thi khâu I với các bộ điều khiển số ,tiến hành thực hiện các bước như sau:
mẫu.Tiếp tục nhân kết quả với
2
.T
ki
Trang 25 Cộng dồn giá trị I out này với giá trị I out trước đó 1 chu kỳ lấy mẫu
4.3 Thành phần vi phân ( D ):
dt
t de Kd t
Rời rạc phương trình trên theo phương pháp sai phân lùi ta được :
D out kT Kde kT ek1T (4.3.1)
Để thực thi khâu D, đơn giản thực hiện theo các bước sau:
chu kỳ lấy mẫu.Nhân giá trị sai lệch này với Kd
4.4 Phương pháp ZIEGLER-NICHOLS:
Phương pháp này được Ziegler–Nichols đề xuất như sau:
Ban đầu, ảnh hưởng của các khâu D và I được loại bỏ bằng cách thiết lập Kd=0, Ki=0.Tăng dần hệ số Kp đến giá trị Ku mà tại đó ngõ ra bắt đầu dao động, Giá trị Ku và chu kỳ dao động
Tu được sử dụng để tính các hệ số Kp,Ki,Kd như bảng 4.2:
Bảng 4.4: Lựa chọn các thông số của bộ điều khiển PID theo phương pháp Ziegler–Nichols
Qua một thời gian thực nghiệm và và lấy mẫu thông số của Kp,Ki,Kd nhóm đã chọn được các thông số phù hợp với đối tượng.Phần thiết kế hệ thống bên dưới như sau:
Trang 264.5 Sơ đồ thiết kế bộ điều khiển:
4.5.1 Sơ đồ điều khiển PID:
4.5.2 Thiết kế bộ điều khiển PID cho vị trí và góc alpha:
Bộ điều khiển PID sẽ tính toán giá trị ngõ ra dựa trên giá trị sai lệch của vị trí ball này
và từ đó quyết định giá trị điện áp đặt lên động cơ sao cho thích hợp để có thể điều chỉnh một cách chính xác Bằng cách thực hiện mô phỏng nhiều lần với các bộ thông
số Kp,Ki,Kd khác nhau, người thực hiện mô phỏng đã chọn được giá trị Kp=20 ,Ki=0,Kd=20