Professional Documents
Culture Documents
BÀI GIẢNG ĐIỀU KHIỂN SỐV12
BÀI GIẢNG ĐIỀU KHIỂN SỐV12
∆𝑘
𝑢𝑛
Norminal control
𝑢𝑟
Real time control
Version 3-2021
1
VỀ ĐIỀU KHIỂN SỐ
Hầu hết các hệ thống điều khiển ngày nay sử dụng máy tính số (ví dụ vi xử lý) để thực hiện
bộ điều khiển. Không giống như các thiết bị điện tử tương tự, máy tính không thể thực hiện
được phép tính tích phân (integration), do đó các phương trình vi phân mô tả bù phải được
xấp xỉ bằng cách đơn giản nó bằng các phương trình đại số bao gồm các phép tính cộng, trừ,
nhân, chia. Trong điều khiển số, có một số cách để thực hiện việc xấp xỉ.
2
Chương 1: Xấp xỉ hàm liên tục thành rời rạc
Trong chương này, ta sẽ mô tả cách thực hiện việc xấp xỉ bộ bù liên tục 𝐷(𝑠) bởi các phương
trình vi sai (difference equation), phương pháp này còn được đề cập đến như là phương pháp
“emulation”- bộ bù sẽ được số hóa. Phương pháp này là đủ cho việc thực hiện các luật điều
khiển phản hồi trong hệ thống điều khiển số tuy nhiên không dùng để phân tích xem sự phù
hợp giữa hệ số và hệ tương tự. Để phân tích sự phù hợp, biến đổi 𝑧 sẽ được sử dụng trong các
chương tiếp theo.
Trước hết ta xem xét các khái niệm cơ bản về điều khiển số. Bộ điều khiển (bộ bù 𝐷(𝑠)) có
thể được thực hiện trong máy tính số như trên hình sau.
Sơ đồ thực hiện việc điều khiển trong máy tính số có thể thực hiện theo sơ đồ sau:
3
Bộ điều khiển liên tục được ký hiệu ở trong khung liên tục (hình a), trong khi bộ điều khiển
số được biểu diễn trong khung với đường nét chấm (hình b).
Sự khác biệt cơ bản giữa hai cách thực hiện là 1) hệ thống số hoạt động dựa trên tín hiệu
được trích mẫu ở đầu ra của hệ thống thay vì tín hiệu đầu ra liên tục 2) phương trình mô tả
đặc tính động của 𝐷(𝑠) (phương trình vi- tích phân) được xấp xỉ thay bằng phương trình đại
số (cộng trừ, nhân chia) recursive.
Chung ta xem xét trước hêt nhiệm vụ của bộ chuyển đổi tín hiệu tương tự sang số A/D. Thiết
bị này làm việc với tín hiệu vật lý, thường là điện áp, và chuyển đổi sang số biểu diễn dạng
nhị phân (binary number) với số bít là 10 hoặc 12. Chuyển đổi tín hiệu từ tương tự 𝑦(𝑡) sang
số được thực hiện lặp đi lặp lại tại sau các khoảng thời gian 𝑇 giây. 𝑇 được gọi là khoảng thời
1
gian trích mẫu và là tần số trích mẫu theo đơn vị Hertz (sample rate). Tín hiệu được trích
𝑇
mẫu là 𝑦(𝑘𝑇), với 𝑘 là số nguyên, thường được viết là 𝑦(𝑘). Ta gọi tín hiệu này là tín hiệu
rời rạc (discrete signal) để phân biệt với tín hiệu liên tục 𝑦(𝑡) (tín hiệu 𝑦(𝑡) thay đổi liên tục
theo thời gian ). Một hệ thống có cả tín hiệu rời rạc và liên tục được goi là hệ thống với dữ
liệu được trích mẫu.
Ta giả sử rằng thời gian trích mẫu là cố định. Tuy nhiên, trong thực tế các hệ thống điều
khiển số thường có tần số trích mẫu thay đổi trong các vòng phản hồi khác nhau. Thông
thường, một hệ thống kích xung (clock) kích hoạt sau mỗi khoảng thời gian T, bộ chuyển đổi
A/D gửi dữ liệu đến máy tính mỗi khi có xung kích hoạt.
Ở đầu vào điều khiển 𝑟(𝑡) có thể có một bộ trích mẫu và một bộ chuyển đổi A/D, để tại ra tín
hiệu rời rạc 𝑟(𝑘𝑇).Từ đó ta tính được sai số rời rạc 𝑒(𝑘𝑇) = 𝑟(𝑘𝑇) − 𝑦(𝑘𝑇). Như ta đã thấy
trên hình (b), bộ bù liên tục 𝐷(𝑠) được xấp xỉ bởi phương trình sai phân. Kêt quả đầu ra của
phương trình sai phân là tín hiệu rời rạc 𝑢(𝑘𝑇) tại mỗi thời điểm trích mẫu. 𝑢(𝑘𝑇) được
chuyển đổi thành 𝑢(𝑡) bởi bộ chuyển đổi số sang tương tự D/A và một bộ giữ chậm (ZOH).
D/A chuyển đổi các số nhị phân sang điện áp tương tự, và bộ ZOH có nhiệm vụ duy trì điện
áp đó trong khoảng thời gian trích mẫu. Kết quả 𝑢(𝑡) được áp vào hệ thống (đối tượng điều
khiển). Có 2 phương pháp cơ bản để tìm phương trình sai phân cho bộ điều khiển số
Thiết kế 𝐷(𝑠) trên miền liên tục sau đó xấp xỉ 𝐷 (𝑠) bằng phương trình sai phân (ví dụ
phương pháp Euler bậc 1, phương pháp Tustin, …) (emulation method).
4
Thiết kế phương trình sai phân trên miền số mà không cần thiết kế 𝐷(𝑠) trước (
discrete design ).
Điều đáng chú ý quan trọng nhất khi thực hiện một hệ thống điều khiển số là trễ (hay chậm
delay) gắn liền với bộ giữ chậm ZOH. Bởi vì mỗi giá trị 𝑢(𝑘𝑇) được giữ không đổi cho đến
thời điểm trích mẫu tiếp theo (𝑘 + 1)𝑇. Như vậy tín hiệu liên tục 𝑢(𝑡) áp vào hệ thống bao
gồm các bước như trên hình vẽ. Tính trung bình, tín hiệu áp vào hệ thống từ bộ điều khiển số
𝑢(𝑡) chậm một khoảng thời gian 𝑇/2 so với tín hiệu thực.
Trong đó,
Xấp xỉ trên được thay cho tất cả các thành phần đạo hàm xuất hiện ở bộ điều khiển. Kết quả
là ta có một tập các phương trình đại số, nghiệm của nó có thể giải bằng máy tính số. Phương
trình vi sai trên được giải lặp đi lặp lại (repetitively) với thời gian của bước là 𝑇. Với các hệ
thống có độ rộng tần cỡ vài Hertz, tần số trích mẫu thường cỡ 1kHz, do đó khoảng thời gian
trích mẫu sẽ là cỡ 1msec và các sai số từ việc xấp xỉ sẽ tương đối nhỏ.
Ví dụ 1,
5
Gi , j , k Ai , j Qi , j , k Bi , j si , j , k Qi , j , k Ci , j si , j , k
2 2
Sử dụng phương pháp Euler để tìm phương trình sai phân, phương trình này được lập trình
trong máy tính điều khiển.
Bài giải
Để tìm phương trình sai phân, trước hết ta tìm phương trình vi phân của bộ điều khiển 𝐷(𝑠)
bằng cách
Với điều kiện đầu bằng 0, ta có phương trình vi phân tương ứng là
Phương trình này tính giá trị mới 𝑢(𝑘 + 1) khi biết được giá trị trong quá khứ 𝑢(𝑘) và giá trị
mới 𝑒(𝑘 + 1) và cũ 𝑒(𝑘)
6
Nhận xét:
Về nguyên lý, để tìm giá trị biến điều khiển tại một thời điểm, ta phải xuất phát từ 𝑘 =
0,1,2, …. Tuy nhiên, điều này là không cần thiết, và ta chỉ cần quan tâm đến giá trị hiện tại
và quá khứ
Tần số trích mẫu yêu cầu tùy thuộc vào độ rộng băng tần vòng kín của hệ thống. Tổng quát
nhất, tần số trích mẫu nên lớn hơn 20 lần độ rộng băng tần để đảm bảo rằng bộ điều khiển
số sẽ thực hiện giống (similar to continuous controller) như bộ điều khiển liên tục.
Ví dụ 2: Thực hiện bộ bù chậm sử dụng máy tính số với đối tượng điều khiển sau
Bài giải
1
a. Với tần số trích mẫu là 20Hz, ta có 𝑇 = 20 = 0.05 𝑠 và từ phương trình 𝐷(𝑠) ta thu
được phương trình sai phân tính giá trị rời rạc của tín hiệu điều khiển như sau
1
b. Với số trích mẫu là 40Hz, ta có 𝑇 = 40 = 0.025 𝑠 và phương trình sai phân
7
Kết quả mô phỏng với MATLAB-SIMULINK
1.4
1.2
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Thoi gian
1 U(1)
z
simout
Unit Delay1 e(k)
To Workspace
e(k+1) 1
f(u)
s2 +s
Step Zero-Order Euler Zero-Order Transfer Fcn Su dung Bo dieu khien so
Hold Unit Delay Hold1
1
Scope1
z
So sanh
U(2)
70s+140 1
s+10 s2 +s
Step1 Transfer Fcn2 Transfer Fcn1 Su dung bo dieu khien lien tuc simout2
To Workspace2
U(3)
simout1
Clock
To Workspace1
1
z
simout3
Unit Delay3 e(k)
To Workspace3
e(k+1) 1
f(u)
s2 +s
Step2 Zero-Order Euler1 Zero-Order Transfer Fcn3 Su dung Bo dieu khien so1
Hold2 Unit Delay2 Hold3
1
Scope2
z
8
Từ kết quả mô phỏng, ta có thể thấy rằng đáp ứng đầu ra với bộ điều khiển số bám sát với
đáp ứng đầu ra khi thực hiện với bộ điều khiển tương tự.
Xác định độ rộng băng tần của hệ kín (bandwidth of closed loop system)
Bode Diagram
0
-20
Magnitude (dB)
-40
-60
-80
-150
Phase (deg)
-160
-170
-180
-1 0 1 2 3
10 10 10 10 10
Frequency (rad/s)
Chú ý: Phương pháp khác để số hóa bộ điều khiển liên tục là sử dụng phần mềm
CACSD, trong MATLAB sử dụng lệnh c2dm để xấp xỉ từ dạng không gian trạng thái
(state-space form) sang tập các phương trình sai phân.
9
Ta được
Với tham số
Và do đó
Chú ý: Từ phương trình không gian trạng thái, ta cũng có thể sử dụng Euler để được tập các
phươn g trình sai phân
Kết Luận:
Phương pháp số hóa (digitization methods) cho phép người thiết kế chuyển bộ điều khiển
(𝐷(𝑠)) thànhm một tập các phương trình sai phân. Các phương trình sai phân này có thể được
lập trình trực tiếp trong tính điều khiển (control computer). Khi mà tần số trích mẫu lớn hơn
10
cỡ 20 lần băng tần hoặc hơn, bộ điều khiển được số hóa sẽ có đáp ứng tương tự so với bộ
điều khiển liên tục. Để hiểu sâu hơn về độ chính xác khi sử dụng bộ điều khiển số, ta sẽ
nghiên cứu phép chuyển đổi z trong phần tiếp theo.
11
12
Bộ điều khiển số (rời rạc)
1/z (khâu
delay T)
u(k-1)… u(k)
Phương trình sai phân
u(k)=u(k-1)+ 2*e(k)
e(k)
E(z) U(z)
Lưu ý
Miền liên tục: chuyển đổi Laplace (ví dụ: hàm truyền đạt G(s) )
Miền rời rạc (số): chuyển đổi Z (Ví dụ: hàm truyền đạt G(z) )
13
Chương 2: Phân tích đặc tính động hệ thống rời rạc
Chuyển đổi z là một công cụ toán học được sử dụng cho việc phân tích các hệ thống tuyến
tính rời rạc. Nó đóng một vai trò quan trọng trong hệ thống rời rạc giống như vai trò của
chuyển đổi Laplace trong hệ liên tục.
1. Chuyển đổi z
Trong phân tích hệ liên tục, ta sử dụng chuyển đổi Laplace được định nghĩa như sau
Và chuyển đổi Laplace của hàm với điều kiện đầu triệt tiêu
Với hàm rời rạc, phương pháp tương tự, đó là chuyển đổi z được định nghĩa như sau
Chuyển đổi z của hàm hàm rời rạc f(k); f(k) thu được bằng việc trích mẫu f(t)
ở đó 𝑓 (𝑘) là đại lượng được trích mẫu từ hàm liên tục 𝑓 (𝑡). 𝑘 = 1,2,3, … tương ứng với các
thời điểm trích mẫu rời rạc 𝑡1 , 𝑡2 , 𝑡3 , …. Và ta cũng có
Quan hệ này, cho phép ta dễ dàng tìm được hàm truyền đạt của hệ thống rời rạc khi mà biết
được các phương trình sai phân của hệ thống rời rạc đó. Ví dụ, khâu bậc 2 có phương trình
sai phân tổng quát như sau
14
Hệ bậc 2
Chuyển đổi Z
U(z) Y(z)
Bảng chuyển đổi Laplace và chuyển đổi z của hàm rời rạc theo thời gian
Z
Laplace
15
Ví dụ
r(t)=1
16
nTz-n=nT/zn ; nếu
abs(z)<1
17
18
19
20
21
G(s) G(z)
22
23
24
25
26
Thiết kế bộ điều khiển số sử dụng phương pháp Emulation
Các bước thực hiện:
a. Thiết kế bộ điều khiển liên tục trên miền liên tục (ví dụ 𝐷(𝑠))
b. Số hóa bộ điều khiển liên tục ( 𝐷(𝑠) → 𝐷(𝑧) )
c. Thực hiện mô phỏng, đo đạc thực tế để kiểm tra tính đúng đắn của bộ điều khiển số
𝐷 (𝑧 )
Vấn đề đặt ra là tìm hiểu các phương pháp để thực hiện số hóa
Một điều quan trọng cần ghi nhớ là những phương pháp số hóa là chỉ xấp xỉ; không có
nghiệm chính xác cho tất cả các đầu vào ( e(t)) bởi vì 𝐷(𝑠) đáp ứng (để tính u(t)) với toàn bộ
sự biến thiên trong quá khứ của e(t), tuy nhiên 𝐷(𝑧) thì chỉ đáp ứng ( để tính u(z)) với giá trị
trích mẫu 𝑒(𝑘𝑇). Sự biến thiên của sai lệch giữa các thời điểm trích mẫu không được xét đến
1
Giả sử 𝐷(𝑠) = đây là khâu tích phân và ta có
𝑠
𝑈 (𝑠 ) 1
=
𝐸 (𝑠 ) 𝑠
27
𝑢(𝑘𝑇) = 𝑢(𝑘𝑇 − 𝑇) + 𝑑𝑖ệ𝑛 𝑡í𝑐ℎ 𝑝ℎí𝑎 𝑑ướ𝑖 𝑒(𝑡) 𝑡ừ 𝑘𝑇 − 𝑇 đế𝑛 𝑇
Và điện tích đó được tính xấp xỉ là hình thang, đây chính là phương pháp tính tích phân
Trapezoidal, ta có
Tổng quát: Bộ điều khiển D(s) trong miến s, nếu ta muốn chuyển sang D(z) bằng phương
pháp Tustin, ta thay
2 1 − 𝑧 −1
𝑠= ( )
𝑇 1 + 𝑧 −1
Ví dụ
𝑎 𝑎
𝐷 (𝑠 ) = → 𝐷 (𝑧 ) =
𝑠+𝑎 2 1 − 𝑧 −1
𝑎 +𝑇( )
1 + 𝑧 −1
𝑛𝑢𝑚𝐷𝑠
𝐷 (𝑠 ) =
𝑑𝑒𝑛𝐷𝑠
𝑛𝑢𝑚𝐷𝑧
Sử dụng lệnh sau để tính tử số và mẫu số của bộ điều khiển được số hóa là 𝐷(𝑧) = 𝐷𝑒𝑛𝐷𝑧
Ví dụ:
28
Viết dưới dạng phương trình sai phân
Phương pháp MPZ sử dụng quan hệ 𝑧 = 𝑒 𝑠𝑇 cho điểm không và điểm cực
Ví dụ:
Bước 1: Với điểm cực là 𝑠 = −𝑏 và điểm không là 𝑠 = −𝑎. Sử dụng quan hệ 𝑧 = 𝑒 𝑠𝑇 ta thu
được hàm truyền đạt D(z) là
Bước 2: Do D(s) có bậc của tử số và mẫu số bằng nhau, nên ta bỏ qua bước 2
𝑎 1 − 𝑒 −𝑎𝑇
𝐾𝑐 = 𝐾𝑑
𝑏 1 − 𝑒 −𝑏𝑇
Từ đó ta tính được
𝑎 1 − 𝑒 −𝑏𝑇
𝐾𝑑 = 𝐾𝑐 ( )
𝑏 1 − 𝑒 −𝑎𝑇
Ví dụ
Bước 1và Bước 2: chú ý bậc của mẫu lớn hơn bậc của tử,nên ta nhân (1+z) vào tử
Bước 3
29
Chú ý rằng, bậc z của đa thức mẫu số và tử số là bằng nhau, nên ta thu được phương trình sai
phân mà tín hiệu điều khiển đầu ra (u(k)) tại thời điểm trích mẫu k chỉ yêu cầu trích mẫu giá
trị sai lệch tại thời điểm trích mẫu k (e(k) ).
Là
Với
Và ta được
Bởi vì có trễ tính từ khi trích mẫu 𝑒(𝑘 + 1), tính toán và xuất ra 𝑢(𝑘 + 1). Tuy nhiên nếu
phương trình sai phân đơn giản, máy tính đủ nhanh thì thời gian trễ có thể được bỏ qua. Thực
tế, thời gian trễ có thể bỏ qua khi mà nó bằng cỡ 1/10 thời gian trích mẫu. Việc lập trình phải
đảm bảo thời gian đọc A/D và ghi D/A là nhỏ nhất và 𝑢(𝑘 + 1) được gửi đến khâu ZOH
ngay tức thì.
Mục đích của phương pháp hiệu chỉnh này nhằm thu được phương trình sai phân mà đầu ra
𝑢(𝑘) chỉ phụ thuộc vào 𝑒(𝑘 − 1). Bước 2 của phương pháp MPZ được thay đổi sao cho tử số
có bậc nhỏ hơn mẫu số là 1.
30
Bỏ qua bước 2 vì bậc của tử số nhỏ hơn bậc của mẫu số là 1
Do tín hiệu điều khiển dựa trên các tín hiệu ở thời điểm trích mẫu chậm hơn 1 chu kỳ, nên
phương pháp này khi thực hiện sẽ không tốt bằng phương pháp MPZ khi hệ thống có nhiễu.
Sử dụng lệnh trong MATLAB như sau để số hóa D(s) thành D(z)
Phương pháp Tustin
[numz,denz]=c2dm(nums,dens,1/15, 'tustin')
31
Luyện tập và lập trình trên MATLAB
Thiết kế bộ điều khiển số cho đối tượng được mô tả bởi hàm truyền đạt sau
1
𝐺 (𝑠 ) =
𝑠2
Sao cho hệ thống kín có đáp ứng xấp xỉ dạng khâu bậc 2 với 𝑛 = 0.3 rad/s và = 0.7
𝜔𝑛2
𝐺𝑘 =
𝑠 2 + 2𝜉𝜔𝑛 𝑠 + 𝜔𝑛2
𝑠+𝑎
Giả sử dạng bộ điều khiển 𝐷 (𝑠) = 𝐾𝑐 𝑠+𝑏 , ta phải tìm các tham số 𝐾𝑐 , 𝑎, 𝑏
𝑠+𝑎 1
𝐾𝑐
𝑠 + 𝑏 𝑠2
𝐺 (𝑠 ) =
𝑠+𝑎 1
𝐾𝑐 𝑠 + 𝑏 2 + 1
𝑠
Xấp xỉ hàm truyền đạt trên bằng cách chọn b để loại bỏ thành phần bậc 3 của s ở mẫu, ta
được
𝐾𝑐 𝑎𝐾𝑐
= 2𝜔𝑛 ; = 𝜔𝑛2
𝑏 𝑏
Ta chọn 𝑏 = 2, suy ra 𝑎 = 0.2143; 𝐾𝑐 = 0.84
𝑠+0.2143
Như vậy bộ điều khiển 𝐷(𝑠) = 0.84
𝑠+2.0
rad
Thực hiện số hóa 𝐷(𝑠), ta chọn tần số trích mẫu là 𝜔𝑠 = 20 × 𝜔𝑛 = 6 →T=
s
1/(6/2π) ≅ 1Hz
32
Yêu cầu sử dụng phương pháp Tustin và MPZ để thực hiện số hóa D(s)
Sơ đồ thực hiện
Tần số trích mẫu (sample rate, 𝑠 ) phải ít nhất là bằng 20 lần độ rộng băng tần
(bandwidth hay 𝑛 )
Khâu giữ chậm ZOH gây ra trễ tín hiệu ra (Lag)
Cần phải có 1 phương pháp thiết kế chính xác, đó là phương pháp thiết kế số
(discrete design)
33
CHƯƠNG 3: PHƯƠNG PHÁP THIẾT KẾ SỐ (DISCRETE DESIGN)
Không giống như với trường hợp mà bộ điều khiển D(s) tổng hợp từ G(s), với bộ điều khiển
số, ta cần có khâu giữ chậm (ZOH), khâu này mô tả những gì diễn ra giữa các thời điểm trích
mẫu và rõ ràng tín hiệu ra y(kT) phụ thuộc vào đầu vào tại các thời điểm trich mẫu u(kT).
Với hệ thống được mô tả bởi hàm truyền đạt G(s) và trước đó là hàm giữ chậm ZOH, hàm
truyền đạt rời rạc chung của hệ thống (bao gồm cả G(s) và ZOH) là
Do đó, hàm truyền đạt tương đương (gồm khâu zoh và G(s) ) như sau
𝐺 (𝑠 )
𝐺 (𝑧) = (1 − 𝑧 −1 )𝐿 { }
𝑠
34
là chuyển đổi z của hàm biểu diễn dưới dạng Laplace.
𝑠+2
Ví dụ: Cho 𝐺1(𝑠) = 𝑠+1, tìm hàm truyền đạt dưới G(z)
Trước hết
2𝑧 𝑧
𝐺2 (𝑧) = −
𝑧 − 1 𝑧 − 𝑒 −𝑇
Hay
Ví dụ 2: Tìm hàm truyền đạt G(z) của hệ sau; thời gian trích mẫu T=0.5s.
Bài 2
35
Tìm hàm truyền đạt G(z)
Sử dụng MATLAB:
s=tf('s');
T=1s;
Chuyển đổi z
36
T=0.1s
G=
Ví dụ 2
37
38
Để lấy dữ liệu ra, trong cửa sổ MATLAB, ta gõ lệnh y1.Data; kết quả như sau
>> y1.data
ans =
0.6300
0.8631
0.9493
0.9813
0.9931
0.9974
0.9991
0.9996
0.9999
1.0000
39
Hàm truyền đạt kín
Ví dụ 2
40
D(z)
G(z)
Ví dụ mô phỏng
41
Tìm ảnh ngược z, trong MATLAB
syms z a
F = 1/(a*z);
iztrans(F)
Ví dụ
syms z
F = z/(z-1);
42
iztrans(F)
Kết quả: 1
T=0.1;
Số
Hàm truyền đạt hệ rời rạc (thời gian trích mẫu 1s)
43
1. Quan hệ giữa s và z
Xét tín hiệu liên tục sau đây
Laplace
Chuyển sang dạng Laplace ta được,
Tìm điểm cực, cho mẫu của hàm truyền đạt=0; nghiệm là điểm cực (pole); cho tử=0 thì
nghiệm là điểm không (zero)
Tương ứng với điểm cực là s = -a, chuyển đổi z như sau
Ta được,
44
Từ đó ta có được quan hệ giữa s và z như sau
𝑧 = 𝑒 𝑠𝑇
Ở miền Laplace, để hệ thống ổn định thì cần điều kiện gì; hàm truyền đạt G(s)
Im{s}
Không
ổn định
Ổn định
Re{s}
+ s1= - 0.5; s2=1 -> hệ thống không ổn định do có 1 nghiệm cực (s2=1) >0?
+ s1= - 0.5; s2=-1 -> hệ thống ổn định do các nghiệm cực nằm bên trái trục ảo
Biên giới ổn định của hệ thống là vòng tròn đơn vị. Tùy theo vị trí điểm cực z mà hệ có
các đáp ứng khác nhau. Như hình vẽ sau đây
45
Không
ổn định
46
Định lý giá trị cuối (Final Value Theorem)
Với hệ liên tục, định lý trên cho phép ta tính được giá trị xác lập, hoặc sai số xác lập, và hệ số
khuyếch đại tĩnh (DC gain) như sau
Việc áp dụng định lý trên đòi hỏi các điểm cực của 𝑠𝑋 (𝑠) (hàm truyền đạt) là nằm bên trái
(Left hand side Plane-LHS) của hệ trục tọa độ.
Với hệ liên tục, ảnh Laplace của hằng số (ví dụ là tín hiệu bước nhẩy) A là
𝐴
𝑋 (𝑠 ) =
𝑠
Tương tự với hàm rời rạc, ảnh z của hằng số là
𝐴
𝑋 (𝑧 ) =
1 − 𝑧 −1
Cuối cùng, định lý giá trị cuối cho tín hiệu rời rạc là
Nếu tất cả các điểm cực của hàm truyền đạt (1 − 𝑧 −1 )𝑋(𝑧) là nằm bên trong đường tròn đơn
vị
Suy ra
47
Như vậy để tìm hệ số khuyếch đại tĩnh, ta chỉ cần thay z=1 vào hàm truyền đạt zX(z), với
điều kiện là hàm truyền đạt zX(z) phải ổn định (nghiệm cực z nằm trong vòng tròn đơn vị)
Ổn định của hệ thống thông qua hệ tọa độ z; dạng tổng quát của nghiệm cực là z=a+jb
𝑧 = 𝑒 𝑠𝑇
𝑠 = 𝛼 + 𝑗𝜔
48
𝑧 = 𝑒 𝛼𝑇 𝑒 𝑗𝜔𝑇 = 𝑒 𝛼𝑇 (𝑐𝑜𝑠(𝜔𝑇) + 𝑗𝑠𝑖𝑛(𝜔𝑇)) = 𝑒 𝛼𝑇 1∠𝜔𝑇
Nhận thấy: với 𝛼 > 0, trên miền s là ở phía miến C, thì ở miền z, miền C tương ứng là vòng
ngoài vòng tròn đơn vị vì 𝑒 𝛼𝑇 > 1. Các điểm tương ứng với 𝛼 < 0 chuyển sang miền z là
nằm trong đường tròn đơn vị. Các điểm 𝛼 = 0 là nằm trên đường tròn đơn vị
Hệ thống kín là ổn định nếu tất cả các điểm cực của hàm truyền đạt kín nằm
trong vòng tròn đơn vị
Không ổn định nếu có bất kỳ điểm cực nằm ngoài vòng tròn đơn vị và/hoặc các
điểm cực kép nằm ngoài vòng tròn đơn vị
Hệ ở biên giới ổn định nếu một số điểm cực nằm trên vòng tròn đơn vị, còn các
điểm cực khác nằm trong đường tròn đơn vị
Ví dụ: Xét ổn định của hệ thống sau với giá trị của hệ số khuyếch đại K
Bài tập xác định giá trị K để hệ ổn định, T=0.1; G(s)= 100/(s*(s+10))
49
Trước hết ta tính hàm truyền đạt kín của hệ thống
Và
Với K=20, nghiệm cực là 𝑧1,2 = 0.12 ± 𝑗0.78 và do đó hệ ổn định bởi vì các điểm cực nằm
trong vòn tròn đơn vị
Với K=100, nghiệm cực là 𝑧1 = −0.58, 𝑧2 = −4.9 do đó hệ không ổn định vì 1 điểm cực
nằm ngoài vòng tròn đơn vị
50
Chú ý: có thể sử dụng MATLAB để chuyển từ hàm truyền đạt miền laplace sang miền z như
sau
Ví dụ 2. Xét ảnh hưởng của thời gian trích mẫu lên ổn định của hệ thống
abs(11e^-T-10)<1
Nghiệm cực của hàm truyển đạt kín sẽ nằm trong vòng tròn đơn vị khi 0 < 𝑇 < 0.2 và do đó
tần số trích mẫu phải 𝑓 > 5 Hz
Hay
51
Với
𝑠 = 𝛼 + 𝑗𝜔
Ta có
Từ đây ta có
1 -45
-19 -17
Phân tích hệ thống rời rạc tương tự như hệ thống liên tục, thực tế là, tất cả các luật được áp
dụng. Hàm truyền đạt kín được tính như sau
Để tìm đặc tính của hàm truyền đạt, ta giải phương trình sau
52
Phương pháp quỹ đạo nghiệm cực với các hệ liên tục có thể áp dụng giống như với hệ thống
rời rạc. Tuy nhiên, về giới hạn ổn định với hệ rời rạc lại khác so với giới hạn ổn định của hệ
liên tục. Với hệ rời rạc, giới hạn ổn định là vòng tròn đơn vị thay vì là trục ảo như với hệ liên
tục.
𝑎
Ví dụ 8.6: Với 𝐺 (𝑠) = 𝑠+𝑎; 𝐷(𝑧) = 𝐾. Hãy vẽ quỹ đạo nghiệm cực và so sánh với quỹ đạo
nghiệm cực của hệ liên tục
Với
Nhìn vào đồ thị, ta có thể thấy rằng, hệ liên tục ổn định với mọi giá trị của K, tuy nhiên với hệ
rời rạc hệ có thể trở lên mất ổn định. Ở các đồ thị sau, ta lấy giá trị 𝑎 = 2. Với hệ điều khiển
số nếu giá trị của 𝐾 > 15 hệ sẽ mất ổn định.
53
Root Locus
0.4
0.999 0.997 0.995 0.988 0.97 0.88
0.3
1
0.2
Imaginary Axis (seconds-1)
0.1 1
8 7 6 5 4 3 2 1
0 1
Hệ liên tục, luôn ổn định
-0.1 1
-0.2
1
-0.3
Root Locus
1
0.8
0.6
System: gz System: gz
Gain: 15 Gain: 0
0.4
Pole: -0.999 Pole: 0.875
Damping: 0.000189 Damping: 1
0.2 Overshoot (%): 99.9 Overshoot (%): 0 Hệ rời rạc mất ổn định
Imaginary Axis
-0.8
-1
-1.5 -1 -0.5 0 0.5 1
Real Axis
54
Tìm các thông số của hàm truyền đạt bậc 2
numDz = 1;
pzmap(sys)
axis([-1 1 -1 1])
zgrid
Ví dụ
%% xac dinh wn va theta
clear;
Ts=1;
55
% ve do thi xac dinh wn
pzmap(Gz)
axis([-1 1 -1 1])
zgrid
Trong các hệ liên tục, chúng ta thường bắt đầu hệ thống thiết kế với các phần tử cơ bản: tỷ lệ,
tích phân, đạo hàm, hoặc kết hợp giữa chúng. Ý tưởng đó có thể áp dụng với các hệ điều
khiển số.
Khâu tỷ lệ:
Suy ra
56
Tích phân:
Suy ra
Khâu lag
57
Root Locus
2.5
1.5
System: gz
Gain: 0.0015
1
Pole: 0.999 - 0.0387i
Damping: 0.00504
0.5
Imaginary Axis
-0.5
-1
-1.5
-2
-2.5
-7 -6 -5 -4 -3 -2 -1 0 1 2
Real Axis
Từ sơ đồ quỹ đạo nghiệm cực: Ta có thể thấy hệ thống dao động khi hệ số khuếch đại rất nhỏ.
Với giá trị lớn của hệ số K, hệ thống trở nên mất ổn định do khâu ZOH và trích mẫu.
Khâu PD
Do vậy, ta phải tính toán hệ số K và 𝛼 để có đặc tính phù hợp với các yêu cầu thiết kế đưa ra.
Để làm được, trước hết ta chọn hay gán trước giá trị của 𝛼 sau đó tính giá trị K. Ví dụ, ta
chọn 𝐾 = 0.552 với hệ số 𝜉 = 0.717 và 𝜔 = 0.297 (rad/s).
58
Root Locus
1
0.5/T
0.6/T 0.4/T
0.2
0.3
0.6
0.8/T 0.4 0.2/T
0.5
0.4 0.6
0.7
0.9/T 0.1/T
0.8
Imaginary Axis
0.2
0.9
1/T
0
1/T
-0.2
System: untitled1
0.9/T 0.1/T0.364
Gain:
Pole: 0.791 - 0.166i
-0.4 Damping: 0.717
Overshoot (%): 3.94
Frequency (rad/s): 0.297
0.8/T 0.2/T
-0.6
𝑧 − 0.85 𝑈 (𝑧 )
𝐷(𝑧) = 0.364 = 0.364 − 0.3094𝑧 −1 =
𝑧 𝐸 (𝑧 )
Hay
Hoặc chọn K=0.374 (như trong sách tham khảo tiếng anh) với 𝜉 = 0.733 và 𝜔 = 0.305
(rad/s)
Lúc này
𝑧 − 0.85
𝐷(𝑧) = 0.374
𝑧
59
T=1;
z=tf('z',T);
gz=0.5*(z+1)/(z-1)^2;
dz= (z-0.85)/z;
rlocus(gz*dz);
grid;
Bất kỳ bộ điều khiển số nào, dù được thiết kế trực tiếp hoặc theo phương pháp emulation, thì
việc phân tích hệ thống rời rạc được thực hiện theo các bước sau
1. Tìm hàm truyền đạt rời rạc từ hàm truyền đạt dạng Laplace có tính đến hàm ZOH
2. Thiết lập hệ thống phản hồi bao gồm cả D(z)
3. Phân tích hệ thống rời rạc nhận được
Các câu lệnh trong MATLAB thực hiện việc phân tích hệ thống rời rạc
1 𝑠 + 0.2
𝐺 (𝑠 ) = ; 𝐷 ( 𝑠 ) = 0.81
𝑠2 𝑠+2
Từ D(s), chuyển sang D(z) sử dụng phương pháp Tustin hoặc MMPZ
60
% %%%%%%%%%%%% TUSTIN or MPZ %%%%%%%%%%%%%%%%
clear;
s=tf('s');
% Bo dieu khien
numDs=0.81*[1 0.2];
denDs= [1 2];
% Ham truyen dat
nums=1;
dens=[1 0 0];
% discrete T
T=1;
% discretize the D(s) for emulation
[numGz, denGz]=c2dm(nums,dens, T,'zoh');
[numz1,denz1]=c2dm(numDs,denDs,T, 'tustin');
%[numz1,denz1]=c2dm(numDs,denDs,1, 'matched');
% or
numz1=[0.389 -0.319];
denz1=[1 -0.135];
NumG=conv(numGz,numz1);
DenG=conv(denGz,denz1);
[numZ,denZ]=feedback(NumG,DenG,1,1);
%%%% emulation
[numS,denS]=feedback(conv(nums,numDs),conv(dens,denDs),1,1);
dstep(numZ,denZ,'b'); %figure;
ddamp(denZ,T);
% continuous
hold;
step(numS,denS,'r');
%% discrete design
num1dz=0.364*[1 -0.85];
den1dz=[1 0];
[NUMZ,DENZ]=feedback(conv(num1dz,numGz),conv(den1dz,denGz),1,1);
dstep(NUMZ,DENZ,'k'); %figure;
ddamp(DENZ,T);
legend( 'emulation','Continuous','Discrete design');
grid;
61
Step Response
1.5
emulation
Continuous
Discrete design
1
Amplitude
0.5
0
0 5 10 15 20 25
Time (seconds)
Nhận xét so sánh giữa các phương pháp: emulation và phương pháp thiết kế rời rạc
(discrete design)
Với tần số trích mẫu 𝜔𝑠 ≅ 20𝜔𝑛 thì sự khác biệt giữa hai phương pháp (emulation và
discrete design) trên là nhỏ
Với tần số trích mẫu 𝜔𝑠 < 10𝜔𝑛 nên sử dụng phương pháp thiết kế hệ rời rạc
(discrete design)
62
Thiết kế bộ điều khiển PID
The motor speed depends on the amplitude of the applied voltage. The amplitude of the
applied voltage is adjusted using the PWM technique. The required speed is controlled by a
speed controller, which is implemented as a conventional proportional-integral (PI)
controller. The difference between the actual and required speeds is input to the PI controller
which then, based on this difference, controllers the required DC-bus current. The required
DC-bus current is controlled by a current controller, which is also implemented as a
conventional proportional-integral (PI) controller. The difference between the actual and
required DC-bus current is input to the PI controller which then, based on this difference,
controls the duty cycle of the PWM pulses, which correspond to the voltage amplitude
required to maintain the desired speed. The current controller, which is the inner-loop
controller, is updated more frequently, for example every PWM period, compared to the
speed controller, which is the outer-loop controller. The speed controller, as well as the
current controller, calculates the PI algorithm given in the equation below:
1. After transforming the equation into a discrete time domain using an integral
approximation with the Backward Euler method, we get the following equations for
the numerical PI
controller calculation
Chú ý
2. Sử dụng phương pháp xấp xỉ hình thang để xấp xỉ khâu tích phân
63
T KT
u k Kc e k Kc e0 e1 e1 e2 .... ek 1 ek c d ek ek 1
2Ti T
Và
T KT
u k 1 K c e k 1 K c e0 e1 e1 e2 .... ek 2 ek 1 c d ek 1 ek 2
2Ti T
Do đó ta có
e k 1 e k c d e k 2e k 1 e k 2
T KT
u k u k 1 K c e k e k 1 K c
2Ti T
Biến đổi tiếp ta được
T KT T 2 K cTd K cTd
u k u k 1 K c K c c d e k Kc Kc e k 1 e k 2
2Ti T 2Ti T T
Đây là dạng phương trình sai phân
Để thiết kế bộ điều khiển PID số, ta thiết kế bộ PID trong miền liên tục, sau đó dùng các
phương pháp xấp xỉ để số hóa bộ điều khiển PID. Có nhiều phương pháp để tìm bộ điều
khiển PID liên tục như phương pháp Ziegler- Nichols frequency domain (ZNFD), phương
pháp tối ưu độ lớn, tối ưu đối xứng, phương pháp thiết kế bộ bù dạng PID.
1. Loại bỏ thành phần tích phân (I) và đạo hàm (D) ra khỏi bộ điều khiển, lúc đó bộ
điều khiển chính là bộ điều khiển P
2. Tăng K đến giá trị mà hệ kín bắt đầu dao động, giá trị đó là 𝐾𝑐
3. Tính các hệ số 𝐾𝑝 , 𝑇𝑖 , 𝑇𝐷 theo bảng sau
64
Phương pháp tối ưu mô đun
k
Khâu bậc 1: G p , ta chọn khâu điều chỉnh là khâu I
(Ts 1)
65
Khâu bậc 2:
k
Gp
(T1s 1)(T2 s 1)
1 k (1 Ti s)
Gc k p (1 ) p
Ta chọn bộ điều khiển PI: Ti s Ti s
Chọn Ti để bù khâu có hằng số thời gian lớn: Ví dụ, nếu T2 > T1 => chọn Ti = T2
Khi đó :
k p .k
Gc .G p
Ti s (1 T1s )
𝑇𝑖 𝑇𝑖
= 2𝑘𝑇1 → 𝑘𝑝 =
𝑘𝑝 2𝑇1 𝑘
k
Gp
(T1s 1)(T2 s 1)(T3 s 1)
1
𝐺𝑐 = 𝑘𝑝 (1 + + 𝑇𝐷 𝑠)
𝑇𝑖 𝑠
1 𝑘
𝐺𝑐 𝐺𝑝 = 𝑘𝑝 (1 + + 𝑇𝐷 𝑠)
𝑇𝑖 𝑠 (𝑇1 𝑠 + 1)(𝑇2 𝑠 + 1)(𝑇3 𝑠 + 1)
𝑇1 < 𝑇2 < 𝑇3
66
Hay 𝑇𝐷 + 𝑇𝑖 = 𝑇2 + 𝑇3 và 𝑇𝑖 𝑇𝐷 = 𝑇2 𝑇3
𝑘𝑘𝑝
𝐺𝑐 𝐺𝑝 =
(𝑇1 𝑠 + 1)𝑇𝑖 𝑠
Thay giá trị 𝑇𝑖 tìm được ở trên ta tìm được giá trị 𝑘𝑝
Để số hóa bộ điều khiển liên tục, thời gian trích mẫu phải thỏa mãn
𝝎𝒔 ≥ 𝟐𝟎𝝎𝒏
67
CÁC PHƯƠNG PHÁP THIẾT KẾ TRÊN KHÔNG GIAN TRẠNG
THÁI
Một hệ thống tuyến tính liên tục với hệ số là hằng có thể biểu diễn bằng một tập các phương
trình vi phân bậc 1, như sau
Nhiệm vụ trớc hết là phải chuyển hệ phương trình không gian trạng thái sang hệ phương trình
dạng vi sai như sau
Các ma trận Ф, г, н, ᴊ sẽ được tính sử dụng các hàm trong MATLAB c2d hoặc c2dm. Từ hệ
phương trình sai phân, ta chuyển sang biểu diễu dưới miền z được như sau
1
Ví dụ: Biểu diễn hệ thống có hàm truyền đạt 𝐺 (𝑠) = 𝑠 2 dưới dạng không gian trạng thái
0 1 0
Từ hàm truyền đạt, ta xác định ma trận 𝐹 = [ ] ; 𝐺 = [ ] ; 𝐻 = [1 0]; để xác định được
0 0 1
các ma trận này ta sử dụng các lệnh trong MATLAB như sau
68
Áp dụng lệnh trong matlab ta thu được các ma trận Ф, г
clc;
clear;
A=[0 1; 0 0];B=[0;1];C=[1 0]; D=0; Ts=1;
% Calculate discrete matrix
[Ad,Bd,Cd,Dd]=c2dm(A,B,C,D,Ts);
% to find transfer fucntion
z=tf('z',Ts);
I=[1 0;0 1]; % unit matrix
Gz=C*inv(z*I-Ad)*Bd;
Để thiết kế luật điều khiển, trước tiên ta giả sử rằng trạng thái của các biến là đo được, phục
vụ cho việc thiết kế điều khiển phản hồi. Bước tiếp theo là thiết kế các bộ quan sát trạng thái
của các biến khi có các tín hiệu đo. Thuật toán điều khiển sẽ là kết hợp bộ quan sát và luật
điều khiển. Luật điều khiển sẽ được tính dựa trên các biến ước lượng thay vì giá trị thực của
chúng.
69
Chú ý rằng, cấu trúc này không cho phép tín hiệu đặt áp vào hệ thống (𝑟 = 0). Do đó, bộ
điều khiển này là bộ điều khiển tự chỉnh (regulator)
Các hệ số của phương trình này và phương trình sau phải giống nhau (identical)
70
Luật điều khiển này giả sử rằng tín hiệu đầu vào đặt là 𝑟 = 0, thay vào ta được
Nhiệm vụ là tìm được ma trận phản hồi K, để hệ thống có điểm cực như mong muốn. Cho
các nghiệm cực mong muốn sau
71
Tổng hợp bộ điều khiển số deadbead
Đặc điểm của bộ điều khiển deadbeat
- Khi tín hiệu đầu vào thay đổi từ hằng số này sang hằng số khác thì sau đúng n bước
điều khiển tín hiệu ra cũng đạt được tới hằng số bằng tín hiệu đầu vào (không có sai
lệch tĩnh), trong đó n là bậc của mô hình hệ thống. Nói cách khác, hệ có quá trình quá
độ là n bước.
- Ở chế độ xác lập đầu ra không thay đổi ngay cả trong khoảng thời gian giữa các lần
trích mẫu
Cho đối tượng với hàm truyền đạt là 𝑆(𝑠), ta tìm được hàm truyền đạt số với khâu ZOH như
sau
𝑧 − 1 𝑆 (𝑠 )
𝑆 (𝑧 ) = 𝐿{ }
𝑧 𝑠
𝑏1 𝑧 −1 + 𝑏2 𝑧 −2 + ⋯ + 𝑏𝑛 𝑧 −𝑛
𝑆 (𝑧 ) =
1 + 𝑎1 𝑧 −1 + 𝑎2 𝑧 −2 + ⋯ + 𝑎𝑛 𝑧 −𝑛
𝑧
Ta có với 𝑢(𝑡) = 1(𝑡) thì 𝑈 (𝑧) = 𝑧−1 và lim 𝑈(𝑧)𝑆(𝑧) = 0 = 𝑦0
𝑧→∞
Nhiệm vụ đặt ra là tìm bộ điều khiển 𝑅 (𝑧) sao cho hệ kín đạt được yêu cầu của một hệ
deadbeat.
𝑅 (𝑧 )𝑆 (𝑧 )
𝐺 (𝑧 ) =
1 + 𝑅 (𝑧 )𝑆 (𝑧 )
Và
1 𝐺 (𝑧 )
𝑅 (𝑧 ) =
𝑆 (𝑧 ) 1 − 𝐺 (𝑧 )
Với tín hiệu đặt là 1(𝑡), bộ điều khiển deadbeat được thiết kế để hàm truyền đạt kín có đặc
tính sao cho 𝑦𝑘 = 1 , 𝑘 ≥ 𝑛; 𝑦0 = 0, nên dãy {𝑦𝑘 } = {0, 𝑦1 , 𝑦2 , … , 𝑦𝑛−2 , 𝑦𝑛−1 , 1,1,1,1, … }
Tức là
∞ ∞
−𝑘 −1 −2 −𝑛+1
𝑌(𝑧) = ∑ 𝑦𝑖 𝑧 = 𝑦1 𝑧 + 𝑦2 𝑧 + ⋯ + 𝑦𝑛−1 𝑧 + ∑ 𝑧 −𝑘
𝑘=0 𝑘=𝑛
72
Với tín hiệu vào là hàm bước nhảy đơn vị, ta có
𝑌 (𝑧 )
𝐺 (𝑧 ) = = 𝑌(𝑧)(1 − 𝑧 −1 )
𝑊 (𝑧 )
∞
Hay
Hay
𝐺 (𝑧) = 𝑝1 𝑧 −1 + 𝑝2 𝑧 −2 + ⋯ + 𝑝𝑛 𝑧 −𝑛 = 𝑃(𝑧 −1 )
∑ 𝑝𝑘 = 1
𝑘=1
Với dãy
Tương ứng
Và ta có
∞
𝑈 (𝑧 )
= 𝑈(𝑧)(1 − 𝑧 −1 )
𝑊 (𝑧 )
Hay
𝑈 (𝑧 )
= 𝑢0 + (𝑢1 − 𝑢0 )𝑧 −1 + ⋯ + (𝑢𝑛−1 − 𝑢𝑛−2 )𝑧 −𝑛+1 + (𝑢𝑛 − 𝑢𝑛−1 )𝑧 −𝑛
𝑊 (𝑧 )
Đặt,
𝑈 (𝑧 )
= 𝑞0 + 𝑞1 𝑧 −1 + 𝑞2 𝑧 −2 + ⋯ + 𝑞𝑛 𝑧 −𝑛 = 𝑄(𝑧 −1 )
𝑊 (𝑧 )
Từ đó ta có đồng nhất
73
𝑌 (𝑧 ) 𝑌 ( 𝑧 ) 𝑊 (𝑧 ) 𝑝1 𝑧 −1 + 𝑝2 𝑧 −2 + ⋯ + 𝑝𝑛 𝑧 −𝑛
= =
𝑈(𝑧) 𝑊(𝑧) 𝑈 (𝑧) 𝑞0 + 𝑞1 𝑧 −1 + 𝑞2 𝑧 −2 + ⋯ + 𝑞𝑛 𝑧 −𝑛
𝑏1 𝑧 −1 + 𝑏2 𝑧 −2 + ⋯ + 𝑏𝑛 𝑧 −𝑛
=
1 + 𝑎1 𝑧 −1 + 𝑎2 𝑧 −2 + ⋯ + 𝑎𝑛 𝑧 −𝑛
Hay,
𝑝1 −1 𝑝2 −2 𝑝𝑛 −𝑛
𝑞0 𝑧 + 𝑞0 𝑧 + ⋯ + 𝑞0 𝑧 𝑏1 𝑧 −1 + 𝑏2 𝑧 −2 + ⋯ + 𝑏𝑛 𝑧 −𝑛
𝑞 𝑞 𝑞 = −1 −2 −𝑛
1 + 𝑞1 𝑧 −1 + 𝑞2 𝑧 −2 + ⋯ + 𝑞𝑛 𝑧 −𝑛 1 + 𝑎1 𝑧 + 𝑎2 𝑧 + ⋯ + 𝑎𝑛 𝑧
0 0 0
Do đó,
1
𝑞0 =
∑𝑛𝑘=1 𝑏𝑘
1 𝐺 (𝑧 ) 𝑄 (𝑧 −1 )
𝑅 (𝑧 ) = =
𝑆 (𝑧) 1 − 𝐺 (𝑧) 1 − 𝑃(𝑧 −1 )
Điểm cực của hệ thống là bội n tại z=0, do đó, hệ rất nhạy cảm với sự thay đổi nhỏ
trong S(z), nhạy cảm với tham số
Ví dụ. Thiết kế bộ điều khiển dead-beat cho hệ có hàm truyền đạt như sau
1
𝑆 (𝑠 ) =
𝑠 (𝑠 + 1 )
Chuyển sang miền z với ZOH với thời gian trích mẫu là T=1s, ta được
74
Dạng tổng quát
𝑏1 𝑧 −1 + 𝑏2 𝑧 −2 + ⋯ + 𝑏𝑛 𝑧 −𝑛
𝑆 (𝑧 ) =
1 + 𝑎1 𝑧 −1 + 𝑎2 𝑧 −2 + ⋯ + 𝑎𝑛 𝑧 −𝑛
𝑄(𝑧 −1 ) = 𝑞0 + 𝑞1 𝑧 −1 + 𝑞2 𝑧 −2 và 𝑃(𝑧 −1 ) = 𝑝1 𝑧 −1 + 𝑝2 𝑧 −2
Ta tính được
1
𝑞0 = = 1,58
0.37 + 0.26
Theo đó,
Vẽ trên Matlab
%%%%%%%%%% Deadbeat control %%%%%%%%%%%%%%%%%%%%
clc;
clear;
z=tf('z');
R= (1.58-2.16 *z^-1+ 0.58*z^-2)/(1-0.58*z^-1-0.42*z^-2);
S= (0.37*z^-1+0.26*z^-2)/(1- 1.37*z^-1+0.37*z^-2);
G= R*S/(1+R*S);
y=dstep(G,1);
ns=size(y,1);
tt=0:ns-1;
plot(tt,y)
grid;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
75
1.4
1.2
0.8
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Ta thấy rằng sau đúng 2 bước tín hiệu ra bằng tín hiệu vào
76
Thiết kế bộ điều khiển số điều khiển tốc độ động cơ điện một chiều
Sơ đồ khối mô tả động cơ
Khi tổng hợp bộ điều khiển, ta coi mô men cản là nhiễu. Ta có hàm truyền đạt hệ thống với
đầu vào là điện áp, đầu ra là tốc độ là
𝐾𝑇 𝐾𝑇 /𝐿𝐽
𝐺 (𝑠) = =
𝐿𝐽𝑠 2 + (𝐿𝐵 + 𝑅𝐽)𝑠 + 𝑅𝐵 + 𝐾𝑏 𝐾𝑇 (𝐿𝐵 + 𝑅𝐽) (𝑅𝐵 + 𝐾𝑏 𝐾𝑇 )
𝑠2 + +
𝐿𝐽 𝐿𝐽
Có thể thấy rằng hàm truyền đạt là khâu bậc 2. Để tìm hàm truyền đạt deadbead, trước hết ta
chuyển 𝐺 (𝑠) sang miền 𝑧. Sử dụng các câu lệnh sau trong MATLAB để thực hiện việc
chuyển đổi.
77
%%%%%%%%%% Dead beat for motor %%%%%%%%%%%%%%%%%%%
%= = = = = = Parameter of DC motor = = = = = = = = = = = = = = = = = = =
La=0.72;
Ra=4;
J=0.0607;
b=0.0869;
K=1.26;
% = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
s = tf('s');
P_motor = K/((J*s+b)*(La*s+Ra)+K^2); % transferfunction G(s)
Ta thu được hàm truyền đạt miền z (tính cả khâu ZOH) là:
78
clc;
clear;
Ts=0.1;
z=tf('z');
% input
n=2;
a=[-1.19 0.4972];
b=[0.1117 0.08827];
%%% q0
q0= 1/sum(b);
for i=1:n
q(i+1)=q0*a(i);
p(i)=q0*b(i);
end
% q0
q(1)=q0;
% Polynomial P, Q
Q=0; P=0;
% Q
for i=1: n+1
Q=Q+ q(i)*z^(1-i);
end
% P
for i=1: n
P=P+ p(i)*z^(-i);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
R= Q/(1-P) % deadbeat controller
Gk= R*G/(R*G+1); % closed loop transfer function
y=dstep(Gk,Ts); % simulate, 0.5 is
ns=size(y,1);
tt=0:ns-1;
plot(tt*Ts,y);
grid;
79
5.001 − 5.951𝑧 −1 + 2.486𝑧 −2
𝐺𝑑𝑏 =
1 − 0.5586𝑧 −1 − 0.4414𝑧 −2
Mô phỏng trên simulink như sau:
simout2
To Workspace1
simout
To Workspace
Scope1
5.001z2 -5.951z+2.486 1 1
K
z2 -0.5586z-0.4414 La.s+Ra J.s+b
Step Zero-Order Zero-Order Phan ung K Transfer Fcn1 Scope
Hold1 Discrete Hold
Transfer Fcn
Step1
Eb
simout1
Clock1
To Workspace2
Mô phỏng
120
Deadbeat Control T=0.1s
100
80
Output
60
40
20
0
0 1 2 3 4 5 6 7 8 9 10
Thoi gian
Ta có thể thấy rằng, khi tải thay đổi, tốc độ cũng thay đổi theo sau đó bộ điều khiển sẽ
đưa ra tín hiệu điều khiển kéo tốc độ bằng tốc độ đặt.
80
Chú ý rằng, tín hiệu điều khiển có thể vượt quá giới hạn cho phép, nên trong một số
trường hợp ta cần phải có bộ giới hạn để đảm bảo tín hiệu đầu ra của bộ điều khiển nằm
trong phạm vi cho phép.
simout2
simout3
To Workspace4
To Workspace1
simout
To Workspace
Scope1
5.001z2 -5.951z+2.486 1 1
K
z2 -0.5586z-0.4414 La.s+Ra J.s+b
Step Zero-Order Saturation Phan ung K Transfer Fcn1 Scope
Hold1 Discrete
Transfer Fcn
Step1
Eb
simout1
Clock1 To Workspace2
Bài tập 2. Thiết kế bộ điều khiển PI điều khiển tốc độ động cơ điện một chiều
a. Sử dụng các tiêu chuẩn tối ưu để thiết kế bộ điều khiển PI cho vòng tốc độ, PI cho
vòng dòng điện
b. Số hóa bộ điều khiển
81
Bộ điều khiển bù
Thay vào
Được
82
83
84
85
86
87
88
89