Tải bản đầy đủ (.doc) (81 trang)

nghiên cứu điều khiển tốc độ và vị trí moto điện một chiều

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 (8.77 MB, 81 trang )

MỤC LỤC
MỞ ĐẦU 1
1. Lý do chọn đề tài

1

2. Mục tiêu của đề tài 1
3. Phương hướng thực hiện đề tài
4. Bố cục khóa luận

1

2

CHƯƠNG 1. MÔ HÌNH HỆ THỐNG ĐỘNG CƠ MỘT CHIỀU
1.1.

Khái quát về động cơ điện một chiều

3

3

1.1.1. Nguyên lí, cấu tạo động cơ điện một chiều 3
1.1.2. Phân loại động cơ điện một chiều

4

1.1.3. Điều chỉnh tốc độ động cơ điện một chiều 5
1.2.


Mô hình hệ thống động cơ điện một chiều

5

1.2.1. Thiết lập vật lý 5
1.2.2. Phương trình hệ thống

6

CHƯƠNG 2. PHƯƠNG PHÁP ĐIỀU KHIỂN ĐỘNG CƠ MỘT CHIỀU BẰNG
THUẬT TOÁN PID VÀ KẾT QUẢ MÔ PHỎNG 8
2.1

Phương pháp điều khiển PID 8

2.2.1 Điều khiển vận tốc

10

2.2.2 Điều khiển vị trí15
CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG HỆ GIÁM SÁT VÀ ĐIỀU KHIỂN
ĐỘNG CƠ MỘT CHIỀU25
3.1

Giới thiệu linh kiện 25

3.1.1 Vi điều khiển 16F877A

25


3.1.2 Mạch cầu H ( H-Bridge Circuit )
3.1.3 Text LCD 33
1

30


3.1.4 Cổng com và IC max 232 36
3.1.5 IC cổng logic AND 74HC08

39

3.1.6 Bộ lập mã quang (Optical Encoder) 42
3.2

Thiết kế mạch 44

3.2.1 Mạch nguyên lí 44
3.2.1.2

Khối điều khiển 44

3.2.2 Sản phẩm thực tế
3.3

48

Sơ đồ thuật toán và lập trình 50

3.3.1 Sơ đồ thuật toán


50

3.2.3 Lập trình giao diện giám sát và điều khiển trên máy tính
3.4

Kết quả đo đạc trên mô hình thực tế.
KẾT LUẬN

55
58

1. Kết quả đạt được và hạn chế của đề tài 58
2. Hướng phát triển

58
TÀI LIỆU THAM KHẢO 79

2

54


MỞ ĐẦU
1. Lý do chọn đề tài
Trong giai đoạn hiện nay nền khoa học kĩ thuật đã có những bước phát
triển đột phá nhất là trong lĩnh vực tự động hóa. Trước đòi hỏi ngày càng cao
của nhu cầu cuộc sống hiện nay việc điều khiển không chỉ đơn thần chỉ là đáp
ứng được những yêu cầu con người đặt ra mà còn đòi hỏi hệ thống phải có khả
năng thích nghi và hiểu được con người.

Là một sinh viên trong ngành đo lường điều khiển, việc nắm bắt được các
kiến thức liên quan đến lĩnh vực điều khiển tự động là rất quan trọng, điều đó
đòi hỏi sinh viên không những phải nắm chắc kiến thức chuyên ngành mà còn
phải tiếp cận với thực tế, nghiên cứu áp dụng những kiến thức mình đã học
được để trau dồi kĩ năng và kiến thức của mình. Chính vì thế em đã chọn cho
mình đề tài điều khiển động cơ như là một cách để tìm hiểu và tiếp cận đến lĩnh
vực đo lường điều khiển. Mặc dù đây không phải là một đề tài mới song lượng
kiến thức bao hàm ở đây rất nhiều. việc nghiên cứu và tìm hiểu về động cơ DC
và cách điều khiển nó không những giúp em củng cố được kiến thức mà qua đó
có thể làm sáng tỏ hơn những vần đề liên quan đến việc điều khiển động cơ. Từ
đó sẽ có những cải tiến giúp cho các cơ cấu sử dụng động cơ DC sẽ trở nên
thông minh và linh hoạt hơn. Việc nghiên cứu đề tài này cũng góp phần đưa ra
những hướng đi mới trong việc điều khiển động cơ, và tăng thêm khả năng ứng
dụng của động cơ DC trong thực tế.
Qua đề tài này em muốn hệ thống lại các kiến thức liên quan đến động cơ
điện một chiều, đồng thời làm sáng tỏ vấn đề này qua việc mô phỏng trên
matlab, để mọi người có thể dễ dàng hơn trong việc tìm hiểu và tiếp cận vấn đề
này.
2. Mục tiêu của đề tài
Nghiên cứu và xây dựng mô hình điều khiển động cơ một chiều dựa trên
thuật toán PID qua máy tính và vi điều khiển.
3. Phương hướng thực hiện đề tài
Đề tài được xây dựng dựa trên các kiến thức về động cơ điện một chiều và
lí thuyết điều khiển kết hợp với mô phỏng và thực tế theo trình tự sau.
- Tìm hiều và nghiên cứu về cấu tạo , nguyên lí hoạt động của động cơ điện
một chiều, xây dựng các phương trình động học của động cơ điện một
chiều.
3



-

-

Tìm hiểu về thuật toán PID, cách thức điều khiển động cơ điện một chiều
bằng thuật toán PID.
Mô phỏng bằng matlab về phương pháp điều khiển động cơ điện một chiều
bằng thuật toán PID từ đó lựa chọn các thông số phù hợp cho mô hình thực
tế.
Triển khai xây dựng mô hình điều khiển động cơ bằng vi điều khiển PIC
16F877A.

4. Bố cục khóa luận
Nội dung bản khóa luận được phân thành các chương sau:
Chương 1. Mô hình hệ thống động cơ điện một chiều.
Chương 2. Phương pháp điều khiển động cơ điện một chiều bằng thuật toán
PID và kết quả mô phỏng.
Chương 3. Thiết kế và xây dựng hệ giám sát và điều khiển động cơ điện
một chiều.

4


CHƯƠNG 1. MÔ HÌNH HỆ THỐNG ĐỘNG CƠ MỘT CHIỀU
1.1.Khái quát về động cơ điện một chiều
Hiện nay động cơ điện một chiều được dùng rất phổ biến trong các hệ thống
truyền động điện chất lượng cao, dải công suất động cơ một chiều từ vài watt đến
hàng mê-ga watt. Đây là loại động cơ đa dạng và linh hoạt, có thể đáp ứng yêu
cầu mômen, tăng tốc, và hãm với tải trọng nặng. Động cơ điện một chiều cũng
dễ dàng đáp ứng với các truyền động trong khoảng điều khiển tốc độ rộng và đảo

chiều nhanh với nhiều đặc tuyến quan hệ mômen – tốc độ.
Trong động cơ điện một chiều, bộ biến đổi điện chính là các mạch chỉnh
lưu điều khiển. Chỉnh lưu được dùng làm nguồn điều chỉnh điện áp phần ứng
động cơ. Chỉnh lưu ở đây thường sử dụng chỉnh lưu cầu 3 pha.
1.1.1.

Nguyên lí, cấu tạo động cơ điện một chiều

Giống như các loại động cơ điện khác, động cơ điện một chiều cũng gồm
có stator và rotor...Động cơ điện một chiều gồm có stator, rotor, cổ góp và chổi
điện như trình bày trên hình 1.1. sau..

Hình 1. 1 Mặt cắt ngang trục động cơ điện một chiều
Stator: còn gọi là phần cảm, gồm dây quấn kích thích được quấn tập trung
trên các cực từ stator. Các cực từ stator được ghép cách điện từ các lá thép kỹ
thuật điện được dập định hình sẵn có bề dày 0,5-1mm, và được gắn trên gông từ
bằng thép đúc, cũng chính là vỏ máy.
Rotor: còn được gọi là phần ứng, gồm lõi thép phần ứng và dây quấn phần
ứng. lõi thép phần ứng có hình trụ, được ghép từ các lá thép kỹ thuật điện ghép
cách điện với nhau. Dây quấn phần ứng gồm nhiều phần tử, được đặt vào các
5


rãnh trên lõi thép rotor. Các phần tử dây quấn rotor được nối tiếp nhau thông qua
các lá góp trên cổ góp. Lõi thép phần ứng và cổ góp được cố định trên trục rotor.
Cổ góp và chổi điện: làm nhiệm vụ đảo chiều dòng điện trong dây quấn
phần ứng.
1.1.2.

Phân loại động cơ điện một chiều


Dựa vào hình thức kích từ, người ta chia động cơ điện một chiều thành các
loại sau:
Động cơ điện một chiều kích từ độc lập: Dòng điện kích từ được lấy từ nguồn
riêng biệt so với phần ứng. Trường hợp đặc biệt, khi từ thông kích từ được tạo ra
bằng nam châm vĩnh cữu, người ta gọi là động cơ điện một chiều kích thích vĩnh
cửu.
Động cơ điện một chiều kích từ song song: Dây quấn kích từ được nối song song
với mạch phần ứng.
Động cơ điện một chiều kích từ nối tiếp: Dây quấn kích từ được mắc nối tiếp với
mạch phần ứng.
Động cơ điện một chiều kích từ hỗn hợp: Dây quấn kích từ có hai cuộn, dây quấn
kích từ song song và dây quấn kích từ nối tiếp. Trong đó, cuộn kích từ song song
thường là cuộn chủ đạo. Hình 1.2 trình bày các loại động cơ điện một chiều.

Hình 1. 2 Các loại động cơ điện một chiều
a) Động cơ điện một chiều kích từ độc lập
b) Động cơ điện một chiều kích từ song song
c) Động cơ điện một chiều kích từ nối tiếp
d) Động cơ điện một chiều kích từ hỗn hợp
6


1.1.3.

Điều chỉnh tốc độ động cơ điện một chiều

Ưu điểm cơ bản của động cơ điện một chiều so với các loại động cơ điện
khác là khả năng điều chỉnh tốc độ dễ dàng, các bộ điều chỉnh tốc độ đơn giản,
dễ chế tạo. Do đó, trong điều kiện bình thường, đối với các cơ cấu có yêu cầu

chất lượng điều chỉnh tốc độ cao, phạm vi điều chỉnh tốc độ rộng, người ta
thường sử dụng động cơ điện một chiều.
Đối với các hệ thống truyền động điện một chiều có yêu cầu điều chỉnh tốc
độ cao thường sử dụng động cơ điện một chiều kích từ độc lập. Trong phạm vi
khóa luận này này, xét khả năng điều chỉnh tốc độ động cơ điện một chiều kích
từ độc lập.
1.2.Mô hình hệ thống động cơ điện một chiều
1.2.1.

Thiết lập vật lý

Động cơ điện một chiều là một thành phần quan trọng trong các cơ cấu
chấp hành. Nó có thể cung cấp trực tiếp chuyển động quay hoặc chuyển động
tinh tiến thông qua cơ cấu truyền động. Mạch điện tương đương của phần ứng và
phần thân tự do của rotor được thể hiện trong hình 1.2.1 dưới đây.

Hình 1. 3 Sơ đồ mạch điện động cơ một chiều
Trong ví dụ này, chúng ta giả sử đầu vào của hệ thống là nguồn điện áp (V)
áp dụng cho phần ứng của động cơ, đầu ra là tốc độ quay của trục d ( theta ) / dt.
Roto và trục coi như cố định với nhau. Giả thiết rằng đây là mô hình ma sát nhớt,
mô-men xoắn của lực ma sát ma sát tỉ lệ với vận tốc góc của trục.

7


Các thông số vật lý trong ví dụ này là:

1.2.2.

(J)


moment quán tính của rotor 0,01 kg.m ^ 2

(b)

hằng số ma sát nhớt của motor 0,1 NMS

(Ke)

hằng số suất điện động 0,01 V / rad / giây

(Kt)

hằng số mô-men xoắn của động cơ 0,01 Nm / Amp

(R)

điện trở 1 Ohm

(L)

điện cảm 0,5 H

Phương trình hệ thống

Nhìn chung, mô-men xoắn được tạo ra bởi một động cơ một chiều tỷ lệ
thuận với dòng điện phần ứng và độ lớn của từ trường. Trong ví dụ này, chúng ta
sẽ giả định rằng từ trường là không đổi, do đó, mô-men xoắn động cơ chỉ tỷ lệ
thuận với dòng điện phần ứng i bởi hằng số K t như trong phương trình dưới đây.
Đây được coi là một cách điều khiển phần ứng động cơ điện một chiều.

(1.1)
Suất điện động phản hồi e tỷ lệ thuận với vận tốc góc của trục động cơ bởi
hằng số Ke .
(1.2)
Trong đơn vị SI, mô-men xoắn động cơ và suất điện động phản hồi là như
nhau, có nghĩa là, Kt = Ke , do đó ta sẽ sử dụng K thay thế cho cả hai hằng số mômen xoắn động cơ và hằng số suất điện động phản hồi.
Từ hình trên, chúng ta có thể lấy đạo hàm các phương trình điều khiển sau
đây dựa trên định luật 2 Newton và định luật Kirchhoff về điện thế.

(1.3)

1.2.2.1.

Hàm truyền

Áp dụng các biến đổi Laplace, các phương trình mô hình trên có thể được
thể hiện bằng biến Laplace s.

8


(1.4)
(1.5)
Bằng cách loại bỏ

từ hai phương trình trên chúng ta có được hàm

truyền vòng hở sau, trong đó tốc độ quay được coi là đầu ra và điện áp phần ứng
được coi là đầu vào.
(1.6)


Trong trường hợp điều khiển vị trí thì vị trí trục động cơ được coi là đầu ra,
chúng ta có thể có được ví trí bằng cách tích phân tốc độ, vì thế chúng ta chỉ cần
chia hàm truyền trên cho s.
(1.7)
1.2.2.2.

Không gian trạng thái

Ở dạng không gian trạng thái, các phương trình điều khiển trên có thể được
thể hiện bằng cách chọn tốc độ quay và dòng điện như các biến trạng thái. Một
lần nữa, điện áp phần ứng được coi là đầu vào và tốc độ quay được chọn là đầu
ra.

(1.8)

Tương tự với trường hợp điều khiển vị trí, chọn vị trí động cơ, tốc độ quay
và dòng điện là các biến trạng thái ta có.

(1.9)

9


CHƯƠNG 2. PHƯƠNG PHÁP ĐIỀU KHIỂN ĐỘNG CƠ MỘT CHIỀU BẰNG
THUẬT TOÁN PID VÀ KẾT QUẢ MÔ PHỎNG
Mô hình tổng quát của một hệ điều khiển vòng kín có phản hồi như hình 2.1.

Hình 2. 1 Hệ thống điều khiển phản hồi kiểu vòng kín
Trong đó:

-

x

là tín hiệu vào mong muốn (điểm đặt)

-

y

là tín hiệu ra

-

u

tín hiệu điều khiển

-

e

là sai lệch giữa điểm đặt và tín hiệu ra

Với động cơ một chiều, có 2 loại điều khiển cần quan tâm:
-

Điều khiển tốc độ trục quay motor tới một giá trị đặt trước (setting
speed)


-

Điều khiển vị trí góc quay trục motor tới một giá trị đặt trước (setting
position/rotation angle)

Có nhiều phương pháp để điều khiển nhằm đảm bảo hệ thống đạt tới giá trị
đặt trước (điểm đặt) một cách tối ưu, ổn định: nghĩa là có thời gian đáp ứng
nhanh nhất và không quá lố… Bản khóa luận này chỉ quan tâm tới phương pháp
điều khiển PID là một phương pháp được sử dụng rất có hiệu quả hiện nay.
Dưới đây mô tả phương pháp điều khiển PID và kết quả mô phỏng trên
phần mềm matlab.
2.1

Phương pháp điều khiển PID
Xét một hệ điều khiển phản hồi như hình sau

10


Hình 2. 2 Mô hình điều khiển có phản hồi
Trong mô hình này:
r là giá trị tốc độ quay của motor cần đặt
là góc quay và vận tốc góc của motor
u là năng lượng (điện thế, dòng điện,…) đặt vào motor
Ở đây lối ra của bộ điều khiển C(s) là lối vào u của mô hình hệ thống P(s). trong
miền thời gian nếu tín hiệu điều khiển u(t) phụ thuộc vào sai lệch e(t) theo luật sau thì
bộ điều khiển được gọi là điều khiển PID:
(2.1)

Ở đây Kp, Ki, Kd lần lượt là các hệ số tỉ lệ, tích phân và vi phân.

Tín hiệu điều khiển u(t) được cấp tới mô hình hệ thống và một giá trị lối ra mới
nhận được. tín hiệu này sau đó được phản hồi trở lại và so sánh với giá trị đặt r để có
được một giá trị sai lệch mới. bộ điều khiển lại dung tín hiệu sai lệch mới này để tính
giá trị u một lần nữa và cứ như vậy.
Hàm truyền của bộ điều khiển PID được thiết lập bằng việc chuyển đổi Laplace
phương trình kể trên:
(2.2)

11


Trong Matlab có một hàm thực hiện luật điều khiển PID là :

pid(kp,ki,kd)

Giải thuật điều khiển PID được dùng cho hầu hết các vòng điều khiển động cơ
trong công nghiệp cũng như những ứng dụng khác. Để cho vòng điều khiển làm việc
một cách tối ưu, các hệ số Kp,Ki, Kd phải được điều chỉnh một cách thích hợp. Có
một vài cách chỉnh các hệ số này trong đó phương pháp Ziegler – Nichols là khá phổ
biến [6]. Các bước điều chỉnh được thực hiện như sau:
1. Chọn điểm đặt mong muốn, đặt Ki, Kd bằng không; sau đó tăng Kp đến cực đại
đến khi xảy ra dao động
2. Nếu hệ dao động, chia Kp cho 2
3. Tăng dần Kd và quan sát đáp ứng của hệ. Chọn Kd sao cho đáp ứng được làm
nhụt nhanh.
4. Tăng từ từ Ki cho đến khi xảy ra dao động. Chọn giá trị bằng

hoặc

giá trị


này.
2.2

Mô phỏng

2.2.1

Điều khiển vận tốc
Trong phần này chúng ta sẽ mô phỏng các nội dung sau:

- Điều khiển tỉ lệ
- Điều khiển PID
- Điều chỉnh vọt lố
Từ vấn đề chính ta có phương trình động lực học trong miền Laplace và
hàm truyền vòng hở của động cơ một chiều như sau.

(2.3)

Với một điểm đặt vận tốc 1 rad/sec, yêu cầu thiết kế đặt ra là:

- Thời gian đáp ứng ít hơn 2 giây
- Độ vọt lố ít hơn 5%

12


- Sai lệch tĩnh e(t) nhỏ hơn 1%
Chúng ta tạo m-file với các câu lệnh sau
J = 0.01;

b = 0.1;
K = 0.01;
R = 1;
L = 0.5;
s = tf('s');
P_motor = K/((J*s+b)*(L*s+R)+K^2);
Nhắc lại hàm truyền của một bộ điều khiển PID là
(2.4)
2.2.1.1

Điều khiển tỉ lệ

Đầu tiên chúng ta thử với bộ điều khiển tỉ lệ với hệ số khuếch đại là 100,
nghĩa là C(s)=100, để biết chức năng của hàm truyền vòng kín chúng ta sử dụng
câu lệnh ‘feedback’, chúng ta thêm đoạn mã sau vào cuối m-file.
Kp = 100;
C = pid(Kp);
sys_cl = feedback(C*P_motor,1);
Để kiểm tra giá trị trả về của điều khiển vòng kín ta thêm đoạn mã lệnh
dưới đây vào m-file và thực thi nó, ta sẽ có được đồ thị bên dưới, để xem một số
đặc tính của hệ thống, click chuột phải vào đồ thị chọn đặc tính từ menu trả về.
Hình dưới đã được thêm vào một số chú thích về thời gian đáp ứng, đỉnh đáp ứng
và trạng thái xác lập.
t = 0:0.01:5;
step(sys_cl,t)
grid
title('Step Response with Proportional Control')

13



Hình 2. 3 Kết quả mô phỏng với Kp=100
Từ đồ thị trên ta thấy sai lệch tĩnh và độ vọt lố quá lớn, chúng ta có thể
giảm sai lệch này bằng cách tăng hệ số khuếch đại Kp, tuy nhiên việc tăng giá trị
của Kp thường dẫn tới việc tăng độ vọt lố, vì thế có vẻ như không phải tất cả các
yêu cầu thiết kế có thể đáp ứng được đáp ứng với một bộ điều khiển tỉ lệ đơn
giản.
Thực tế này có thể được xác nhận bằng cách thử nghiệm với các giả trị khác
của Kp, tuy nhiên ta có thể sử dụng bộ công cụ thiết kế SISO bằng cách nhập
lệnh ‘sisotool(P_motor)’ sau đó theo dõi từng bước giá trị trả về qua đồ thị từ tab
‘Analysis Plots’ của cửa sổ ‘Control and Estimation Tools Manager’. Kết hợp với
việc kiểm tra hộp thoại ‘Real-Time Update’, ta có thể thay đổi được thông sô
điều khiển trong tab ‘Compensator Editor’ và xem kết quả ảnh hưởng qua giá trị
14


trả về của bộ điều khiển vòng kín. Qua đó thấy được điều khiển tỉ lệ không đủ để
đáp ứng yêu cẩu điều khiển, cần phải thêm các thành phần tích phân và vi phân
vào bộ điều khiển.

2.2.1.2

Điều khiển PID

Với bộ điều khiển PID thành phần tích phân sẽ giúp loại bỏ sai lệch tĩnh, và
thành phần vi phân sẽ làm giảm độ vọt lố. Chúng ta sẽ thử với bộ điều khiểm PID
có hệ số Ki và Kd nhỏ, chỉnh sửa m-file với các giá trị như sau, sau đó chạy và
đưa ra đồ thị bên dưới.
Kp = 75;
Ki = 1;

Kd = 1;
C = pid(Kp,Ki,Kd);
sys_cl = feedback(C*P_motor,1);
step(sys_cl,[0:1:200])
title('PID Control with Small Ki and Small Kd')

Hình 2. 4 Kết quả mô phỏng với kp=75, Ki=1, Kd=1
Từ đồ thị trên cho thấy sai lệch tĩnh đã thực sự dần về 0, tuy nhiên thời gian
để đạt được trạng thái ổn định là quá lớn so với yêu cẩu thiết kế là 2s.
2.2.1.3

Điều chỉnh độ vọt lố.

15


Trong trường hợp này phần đuôi dài trên đồ thị bước đáp ứng là kết quả của
việc chọn hệ số tích phân nhỏ dẫn tới việc tốn nhiều thời gian cho việc loại bỏ sai
lệch tĩnh. Quá trình này có thể được tăng tốc bằng cách tăng hệ số Ki. Quay lại
với m-file thay đổi giá trị Ki lên 200, chạy lại và ta có được đồ thị bên dưới.
Kp = 100;
Ki = 200;
Kd = 1;
C = pid(Kp,Ki,Kd);
sys_cl = feedback(C*P_motor,1);
step(sys_cl, 0:0.01:4)
grid
title('PID Control with Large Ki and Small Kd')

Hình 2. 5 Kết quả mô phỏng với Kp=100, Ki=200, Kd=1

Như mong muốn, sai lệch tĩnh đã được loại bỏ một cách nhanh chóng, tuy
nhiên Ki lớn đã làm cho độ vọt lố tăng lên rất nhiều. Hãy tăng Kd trong giới hạn
có thể để giảm độ vọt lố. Quay lại m-file thay đổi Kd lên 10, chạy và ta có được
đồ thị trả về như sau.
Kp = 100;
16


Ki = 200;
Kd = 10;
C = pid(Kp,Ki,Kd);
sys_cl = feedback(C*P_motor,1);
step(sys_cl, 0:0.01:4)
grid
title('PID Control with Large Ki and Large Kd')

Hình 2. 6 Kết quả mô phỏng với Kp=100, Ki=200, Kd=10
Như đã hi vọng việc tăng Kd đã làm giảm độ vọt lố, bây giờ chúng ta biết
nếu sử dụng bộ điều khiển PID với các thông số
Kp=100, Ki=200, và Kd=10 tất cả các yêu cầu thiết kế sẽ được đáp ứng.
2.2.2 Điều khiển vị trí
Các nội dung mô phỏng của phần này bao gồm:

- Điều khiển tỉ lệ.

17


- Điều khiển PI
- Điều khiển PID

Hàm truyền của hệ thống điều khiển vòng hở của động cơ một chiều trong trường
hợp này là:
(2.5)
Cấu trúc của hệ thống điều khiển vị trí được mô tả như hình dưới

Hình 2. 7 Mô hình điều khiển vị trí có phản hồi
Với điểm đặt góc quay là 1 radian, yêu cầu thiết kế của bộ điều khiển là:

- Thời gian xác lập nhỏ hơn 0,040 giây
- Độ vọt lố ít hơn 16%
- Không có sai lệch tĩnh, ngay cả tín hiệu đầu vào bị nhiễu.
Tạo bộ điều khiển PID thêm vào hệ thống, tạo m file với các câu lệnh bên dưới
J = 3.2284E-6;
b = 3.5077E-6;
K = 0.0274;
R = 4;
L = 2.75E-6;
s = tf('s');
P_motor = K/(s*((J*s+b)*(L*s+R)+K^2));
Nhắc lại rằng hàm truyền của bộ điều khiển PID có dạng
(2.6)
18


2.2.2.1Điều khiển tỉ lệ
Trước tiên ta thử với bộ điều khiển tỉ lệ có hệ số khuếch đại trong khoảng 1
đến 21. Một mảng của mô hình LTI, với mỗi tỉ lệ khuếch đại khác nhau có thể sử
dụng cho một vòng lặp. Hàm truyền vòng kín có thể được tạo ra bằng cách sử
dụng câu lệnh ‘feedback’. Thêm đoạn mã sau vào sau m-file và thực thi nó.
Kp = 1;

for i = 1:3
C(:,:,i) = pid(Kp);
Kp = Kp + 10;
end
sys_cl = feedback(C*P_motor,1);
Để có được các bước đáp ứng như bên dưới thêm các câu lệnh sau vào mfile và thực thi nó.
t = 0:0.001:0.2;
step(sys_cl(:,:,1), sys_cl(:,:,2), sys_cl(:,:,3), t)
ylabel('Position, \theta (radians)')
title('Response to a Step Reference with Different Values of K_p')
legend('K_p = 1', 'K_p = 11', 'K_p = 21')

19


Hình 2. 8 Kết quả mô phỏng với Kp trong khoảng 1 đến 21
Chúng ta sẽ xét đến đáp ứng của hệ thống cho mỗi bậc nhiễu, trong trường
hợp này giả sử mức tham chiếu bằng không và xem đáp ứng của hệ thống như
thế nào với nhiễu của chính nó. Hàm ‘feedback’ có thể vẫn được dùng để tạo ra
hàm truyền vòng lặp kín ở những nơi có phản hồi tiêu cực, tuy nhiên bây giờ chỉ
còn hàm truyền P(s) là có tín hiệu ra và bộ điều khiển C(s) được coi như là một
thành phần phản hồi. Quay lại sơ đồ khối trên để xem lại sơ đồ hệ thống. Thêm
các câu lệnh sau mào m-file và thực thi nó để có được kết quả bên dưới.
dist_cl = feedback(P_motor,C);
step(dist_cl(:,:,1), dist_cl(:,:,2), dist_cl(:,:,3), t)
ylabel('Position, \theta (radians)')
title('Response to a Step Disturbance with Different Values of K_p')
legend('K_p = 1', 'K_p = 11','K_p = 21')

20



Hình 2. 9 Kết quả mô phỏng với Kp trong khoảng 1 đến 21 có phản hồi
Từ đồ thị cho thấy hệ thống không có sai lệch tĩnh đối với bậc tham chiếu
của nó, với bất kì lựa chọn nào của giả trị Kp. Điều này là do hệ thống có thành
phần tích phân, đó là hệ thống loại 1. Tuy nhiên hệ thống có sai lệch tĩnh đáng kể
khi tăng thêm nhiễu. Cụ thể là đáp ứng của hệ thống do tham chiếu và nhiễu áp
dụng đồng thời là tổng của hai đồ thị trên.
2.2.2.2

Điều khiển PI

Lựa chọn bộ điều khiển PI để có thể loại bỏ sai lệch tĩnh. Ta đặt Kp = 21 và
hệ số tích phân Ki trong khoảng 100 đến 500. Thay đổi m-file như sau và thực thi
để có được kết quả bên dưới.
Kp = 21;

21


Ki = 100;
for i = 1:5
C(:,:,i) = pid(Kp,Ki);
Ki = Ki + 200;
end
sys_cl = feedback(C*P_motor,1);
t = 0:0.001:0.4;
step(sys_cl(:,:,1), sys_cl(:,:,2), sys_cl(:,:,3), t)
ylabel('Position, \theta (radians)')
title('Response to a Step Reference with K_p = 21 and Different Values of K_i')

legend('K_i = 100', 'K_i = 300', 'K_i = 500')

Hình 2. 10 Kết quả mô phỏng với Kp=21, Kp=100
Bây giờ hãy quan sát những gì xảy ra với các bước đáp ứng nhiễu. Thay đổi
các câu lệnh dưới đây trong m-file và thực thi lại ta có thể có được đồ thị như bên
dưới.
dist_cl = feedback(P_motor,C);
step(dist_cl(:,:,1), dist_cl(:,:,2), dist_cl(:,:,3), t)
22


ylabel('Position, \theta (radians)')
title('Response to a Step Disturbance with K_p = 21 and Different Values of
K_i')
legend('K_i = 100', 'K_i = 300', 'K_i = 500')

Hình 2. 11 Kết quả mô phỏng với các giá trị Ki= 100, 300, 500
Điều khiển tích phân đã làm giảm sai lệch tĩnh về 0, ngay cả khi xảy ra bậc
nhiễu, đó là mục tiêu của việc thêm thành phần tích phân. Đối với đáp ứng với
các mức tham chiếu, số lượng các dao động tăng nhẹ khi Ki lớn hơn. Tuy nhiên
đáp ứng do nhiễu thay đổi đáng kể khi Ki thay đổi. Cụ thể là với giá trị Ki lớn
hơn sai lệch giảm về không nhanh hơn. Ta chọn Ki = 500 vì sai lệch bởi nhiễu về
không nhanh mặc dù đáp ứng đến giá trị tham chiếu còn lâu hơn thời gian thiết
đặt và vọt lố khá cao. Chúng ta sẽ cố gắng để giảm thời gian đáp ứng và độ vọt lố
bằng cách thêm thành phần vi phân vào bộ điều khiển.
2.2.2.3

Điều khiển PID

Thêm thành phần vi phân vào cho bộ điều khiển nghĩa là chúng ta có tất cả

3 thành phần của bộ điều khiên PID. Chúng ta sẽ khảo sát với giá trị Kd trong

23


khoảng từ 0,05 đến 0,025. Quay lại với m-file và thêm vào các câu lệnh sau, sau
đó thực thi ta sẽ có kết quả như hình dưới.
Kp = 21;
Ki = 500;
Kd = 0.05;
for i = 1:3
C(:,:,i) = pid(Kp,Ki,Kd);
Kd = Kd + 0.1;
end
sys_cl = feedback(C*P_motor,1);
t = 0:0.001:0.1;
step(sys_cl(:,:,1), sys_cl(:,:,2), sys_cl(:,:,3), t)
ylabel('Position, \theta (radians)')
title('Response to a Step Reference with K_p = 21, K_i = 500 and Different
Values of K_d')
legend('K_d = 0.05', 'K_d = 0.15', 'K_d = 0.25')

24


Hình 2. 12 Kết quả mô phỏng với các giá trị Kd= 0.05, 0.15, 0.25
Hãy quan sát những gì xảy ra ở các bước đáp ứng nhiễu, thay đổi dòng lệnh
dưới đây ở m-file và chạy ở chế độ dòng lệnh.
dist_cl = feedback(P_motor,C);
t = 0:0.001:0.2;

step(dist_cl(:,:,1), dist_cl(:,:,2), dist_cl(:,:,3), t)
ylabel('Position, \theta (radians)')
title('Response to a Step Disturbance with K_p = 21, K_i = 500 and Different
values of K_d')
legend('K_d = 0.05', 'K_d = 0.15', 'K_d = 0.25')

25


×