You are on page 1of 89

𝑡=1 𝑡=2 … 𝑡=𝑁

∆𝑘

𝑘=1 ∆𝑡 𝑘=2 𝑘=3 …

𝑢𝑛
Norminal control

𝑢𝑟
Real time control

BÀI GIẢNG ĐIỀU KHIỂN SỐ - DIGITAL CONTROL


Biên soạn: TS. Phạm Đức Đại

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ỉ.

Tài liệu tham khảo:

1. Digital Control of Dynamic Systems by Franklin et al. (1990)


2. Modern Control Systems
3. Feedback Control System
4. Điều khiển tuyến tính – Nguyễn Doãn Phước

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:

Ví dụ về bộ điều khiển sử dụng máy tính số

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.

Phương pháp Euler để xấp xỉ bộ điều khiển


Phương pháp này là phương pháp đơn giản nhất để xấp xỉ số nghiệm thực của phương trình
vi phân. Công thức xấp xỉ,

Trong đó,

𝑇 = 𝑡𝑘+1 − 𝑡𝑘 , 𝑡𝑘 = 𝑘𝑇 : là khoảng thời gian trích mẫu

𝑥(𝑘) là giá trị của 𝑥 tại thời điểm 𝑡𝑘

𝑥(𝑘 + 1) là giá trị của 𝑥 tại thời điểm 𝑡𝑘+1

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à

Sử dụng xấp xỉ Euler cho thành phần đạo hàm, ta được

Rút gọn được,

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ứ

Về lựa chọn tần số trích mẫu

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

Sử dụng tần số trích mẫu là 20Hz và 40Hz.

Bộ bù 𝐷(𝑠) được thiết kế có dạng 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.8 Digital Control T=20s


Output

Digital Control T=40s


Continuous Control
0.6

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.

Ví dụ sử dụng lệnh c2dm

9
Ta được

Với tham số

Ta được các hệ số của phương trình sai phân

Ta có thể biến đổi thành dạng sau

𝑢(𝑘 + 1) = −2.672𝑥𝑒 (𝑘 + 1) + 54.573𝑒(𝑘 + 1)

Và do đó

𝑢(𝑘 + 1) = −2.672 (0.5134𝑥𝑒 (𝑘) + 7.387𝑒(𝑘) ) + 54.573𝑒(𝑘 + 1)

𝑢(𝑘 + 1) = −1.3718𝑥𝑒 (𝑘) + 19.7381𝑒(𝑘) + 54.573𝑒(𝑘 + 1)

𝑢(𝑘 + 1) = −1.3718(−𝑢(𝑘) + 54.573𝑒(𝑘))/2.672 + 19.7381𝑒(𝑘) + 54.573𝑒(𝑘 + 1)

𝑢(𝑘 + 1) = 0.5134𝑢(𝑘) + 54.6( 𝑒(𝑘 + 1) − 0.875𝑒(𝑘))

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

𝑢(𝑘 + 1) = 0.333𝑢(𝑘) + 70( 𝑒(𝑘 + 1) − 0.867𝑒(𝑘))

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)

Chuyển đổi Z (Z- transform)

E(z) U(z)

Sử dung chuyển đổi Z để phân tích hệ thống điều khiển số

+ Đáp ứng hệ thống (control system response)

+ Tổng hợp bộ điều khiển số (Synthesis digital controller)

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

Sử dụng phương trình chuyển đổi ta được

Hàm truyền đạt như sau


G(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

Unit step: r(t)= 1(t)

Đảm bảo R(z) có giá trị


hữu hạn

16
nTz-n=nT/zn ; nếu
abs(z)<1

Nếu |𝑧| < 1 → 𝑅(𝑧) → ∞

r(t) r(nT) R(z)

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

 Phương pháp Euler (Euler’s method - xem phần trước)


 Phương pháp Tustin (Tustin’s method)
 Phương pháp tương đồng điểm cực không (Matched Pole Zero- MPZ)

Phương pháp Tustin

1
Giả sử 𝐷(𝑠) = đây là khâu tích phân và ta có
𝑠

𝑈 (𝑠 ) 1
=
𝐸 (𝑠 ) 𝑠

Tại thời điểm trích mẫu k, ta có

Từ hình vẽ, ta có thể thấy rằng,

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ó

Thực hiện chuyển đổi sang biểu diễn z, ta thu đượ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 MATLB: Cho hàm truyền đạt của bộ điều khiển

𝑛𝑢𝑚𝐷𝑠
𝐷 (𝑠 ) =
𝑑𝑒𝑛𝐷𝑠
𝑛𝑢𝑚𝐷𝑧
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à 𝐷(𝑧) = 𝐷𝑒𝑛𝐷𝑧

>>[numDz,denDz]= c2dm (numDs,denDs, T, ‘tustin’)

Ví dụ:

Các câu lệnh trong MATLAB

Kết quả thu được

28
Viết dưới dạng phương trình sai phân

Phương pháp MPZ

Phương pháp MPZ sử dụng quan hệ 𝑧 = 𝑒 𝑠𝑇 cho điểm không và điểm cực

Các bước thực hiện MPZ

a. Tìm các điểm cực và điểm không z sử dụng quan hệ 𝑧 = 𝑒 𝑠𝑇


b. Nếu bậc của tử số của D(s) mà thấp hơn bậc của mẫu số, nhân tử số với (1 + 𝑧) cho
đến khi bậc tử số và mẫu số là bằng nhau
c. Gán hệ số khuyếch đại DC của D(s) bằng hệ số khuyếch đại DC của D(z)

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

Bước 3: Hệ số khuyếch đại tĩnh của D(s) là

𝑎 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) ).

Phương trình sai phân rút ra từ D(z) với

Với

Và ta được

Lưu ý khi thực hiện bằng Vi xử lý


Khi thực hiện xuất tín hiệu điều khiển 𝑢(𝑘 + 1), các khâu liên quan là các bộ chuyển đổi
A/D, D/A, và ZOH. Về mặt kỹ thuật, không thể tính được chính xác 𝑢(𝑘 + 1) từ phương
trình sai phân

𝑢(𝑘 + 1) = 𝛽𝑢(𝑘) + 𝐾 [𝑒(𝑘 + 1) − 𝑒(𝑘 )]

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ì.

Phương pháp MPZ có hiệu chỉnh (Modified Matched Pole-Zero)- MMPZ

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

Bước 3, thu được

Nhân tử và mẫu với 𝑧 −2 được

Từ đó thu được phương trình sai phân

Nhược điểm của phương pháp này là:

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.

So sánh các phương pháp xấp xỉ


5
Cho hàm truyền đạt của 𝐷(𝑠) = 𝑠+5

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')

Phương pháp MMPZ


[numz,denz]=c2dm(nums,dens,1/15, 'matched')

Kết quả xem ở bảng sau

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

Ta có khâu bậc 2 chuẩn

𝜔𝑛2
𝐺𝑘 =
𝑠 2 + 2𝜉𝜔𝑛 𝑠 + 𝜔𝑛2
𝑠+𝑎
Giả sử dạng bộ điều khiển 𝐷 (𝑠) = 𝐾𝑐 𝑠+𝑏 , ta phải tìm các tham số 𝐾𝑐 , 𝑎, 𝑏

Hàm truyền đạt kín của hệ thống là

𝑠+𝑎 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

Hạn chế của phương pháp EMULATION

Phương pháp emulation chỉ đáp ứng tốt khi

 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)

 Đầu ra y(k) được sử dụng để tính toán u(k)


 Hàm truyền đạt của hệ thống tham gia vào quá trình tìm D(z)

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à

Chú ý khâu giữ chậm có hàm truyền đạt 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

Chuyển sang miền z ta được

2𝑧 𝑧
𝐺2 (𝑧) = −
𝑧 − 1 𝑧 − 𝑒 −𝑇
Hay

Và cuối cùng ta được,

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.

Tính G(z) =(1-z^-1)* Z{G2(s)/s} =(1-z^-1)* Z{1/(s^2(s+1))}

Bài 2

35
Tìm hàm truyền đạt G(z)

Sử dụng MATLAB:
s=tf('s');

G=2/(s+1)/(s+2); % transferfunction in Laplace

Ts=0.1; % sample time

Gz=c2d(G,Ts,'zoh') % c2d: convert to discrete with zoh

Mô phỏng hệ thống số sử dụng MATLAB- SIMULINK

Ví dụ: Mô phỏng hệ thống hở sau

Ta chuyển hàm truyền đạt sang miền z

T=1s;

Chuyển đổi z

36
T=0.1s

G=

Mô phỏng sử dụng SIMULINK

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

Hàm truyền đạt kín

39
Hàm truyền đạt kín

Ví dụ 2

40
D(z)
G(z)

Hàm truyền đạt kín


H(z)

Ví dụ mô phỏng

Hàm truyền đạt hở G(z) = (0.6321)z/[(z-1)*(z-0.3679)];

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

So sánh hệ liên tục và rời rạc

T=0.1;

Số

Go(z)=? -> hàm truyền đạt kín Gz= Go(z)/


(1+ Go(z))

Liên tục (hàm truyền miền Laplace)

Hàm truyền đạt hệ rời rạc (thời gian trích mẫu 1s)

Kết quả so sánh

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,

Tương ứng điểm cự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)

+ s= a+ jb; (Real)Re{s}=a; (Image)Im{s}=b

Im{s}
Không
ổn định

Ổn định

Re{s}

a<0 thì hệ ổn định;

a=0; hệ ở biên giới ổn định.

a>0; hệ không ổn định

Mô phỏng hệ thống có hàm truyền đạt như sau

G= 10/((s+0.5)(s-1)); hệ có ổn định không?

+ s1= - 0.5; s2=1 -> hệ thống không ổn định do có 1 nghiệm cực (s2=1) >0?

G= 10/((s+0.5)(s+1)); hệ có ổn định không?

+ 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

Hệ thống số: Vòng tròn đơn vị

s= a+ jb; nếu a=0 thì s= jb, biên độ của z =1

𝑧 = 𝑒 𝑠𝑇 = 𝑒 (𝑗𝑏)𝑇 = cos(𝑏𝑇) + 𝑗𝑠𝑖𝑛(𝑏𝑇)

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

- Biên độ các nghiệm cực z, nằm trong đường tròn đơn vị


- Bất kỳ một nghiệm nào nằm ngoài vòng tròn đơn vị-> không ổn định.

Bài tập mô phỏng:

Đầu vào là hàm bước nhảy đơn vị, T=0.1;

Mô phỏng và xem hệ sau có ổn định không?

a. G(z)= 100/[(z-0.5)*(z+0.2)]; nghiệm cực?

b. G(z)= 100/[(z-0.5)*(z+1.5)]; nghiệm cực?

c. G(z)= 100/[z^2+1]; nghiệm cực?

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ị

Ví dụ 2, tìm hệ số khuyếch đại tĩnh của hàm sau

Với 𝑢(𝑘) = 1, 𝑘 ≥ 0 ảnh z của 𝑢(𝑘) là

Suy ra

Áp dụng định lý trên ta có được

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

Chú ý: biên độ của z

Ta có quan hệ giữa z và s như sau

𝑧 = 𝑒 𝑠𝑇

Trên hệ tọa độ nghiệm cực, ta có thể đặt

𝑠 = 𝛼 + 𝑗𝜔

Thay vào trên ta được,

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ị

Do đó, với 1 hệ thống số,

 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

Ví dụ: Xác định K để hệ ổn định

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ới T=0.1 và a=27, ta có

Và hàm truyền đạt hệ kín sẽ là

Nghiệm cực |z|<1; nghiệm cực phụ thuộc vào K , tính ra K

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

c2d(Gs,Ts,'zoh'); % convert Gs to G(z) sử dụng khâu ZOH

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

Hàm truyền đạt kín sẽ là

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

Xét ổn định hệ thống số qua bảng Routh- Hurwitz

Hay

51
Với
𝑠 = 𝛼 + 𝑗𝜔

Ta có

Từ đây ta có

Ví dụ: Cho hệ thống với

Chuyển sang miền s ta được,

Lập bảng Routh để xác định hệ có ổn định hay không

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

Ta có hàm truyền đạt của đối tượng hệ rời rạc là

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

0.999 0.997 0.995 0.988 0.97 0.88


-0.4
-8 -7 -6 -5 -4 -3 -2 -1 0 1
Real Axis (seconds -1)

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

Frequency (rad/s): 47.1 Frequency (rad/s): 2


0
với K >15, do khâu ZOH,
System: gz trích mẫu
-0.2 Gain: 17.9
Pole: -1.36
-0.4 Damping: -0.0976
Overshoot (%): 136
Frequency (rad/s): 47.3
-0.6

-0.8

-1
-1.5 -1 -0.5 0 0.5 1
Real Axis

Vẽ quỹ đạo nghiệm cực của hàm rời rạc

H = tf([2 -3.4 1.5],[1 -1.6 0.8],-1)


rlocus(H)
zgrid
axis equal

54
Tìm các thông số của hàm truyền đạt bậc 2

numDz = 1;

denDz = [1 -0.3 0.5];

sys = tf(numDz,denDz,-1); % the -1 indicates that the sample time is undetermined

pzmap(sys)
axis([-1 1 -1 1])
zgrid

Ví dụ
%% xac dinh wn va theta

clear;

% num and den of ham truyen dat kin


num=[0.368 0.264];
den=[1 -1.0 0.632];

Ts=1;

% ham truyen dat kin


Gz=tf(num,den,Ts) % trich mau TS

55
% ve do thi xac dinh wn
pzmap(Gz)
axis([-1 1 -1 1])
zgrid

CÁC ĐẶC TÍNH CỦA HỆ THỐNG PHẢN HỒI

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ệ:

Khâu đạo hàm:

Suy ra

56
Tích phân:

Suy ra

Khâu lag

Ví dụ thiết kế hệ thống điều khiển số


1
Cho 𝐺 (𝑠) = 𝑠 2

Hàm truyền đạt hệ thống điều khiển

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

Overshoot (%): 98.4


Frequency (rad/s): 0.581
0

-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.8 0.7/T 0.1 0.3/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.8 0.7/T 0.3/T


0.6/T 0.5/T 0.4/T

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2


Real Axis

𝑧 − 0.85 𝑈 (𝑧 )
𝐷(𝑧) = 0.364 = 0.364 − 0.3094𝑧 −1 =
𝑧 𝐸 (𝑧 )

Hay

𝑢(𝑘) = 0.364𝑒(𝑘) − 0.3094𝑒(𝑘 − 1)

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
𝑧

%%% MATLAB code %%%%%%

59
T=1;
z=tf('z',T);
gz=0.5*(z+1)/(z-1)^2;
dz= (z-0.85)/z;
rlocus(gz*dz);
grid;

CÁC BƯỚC PHÂN TÍCH HỆ THỐNG RỜI RẠC

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

Với hệ liên tục

1 𝑠 + 0.2
𝐺 (𝑠 ) = ; 𝐷 ( 𝑠 ) = 0.81
𝑠2 𝑠+2

Với hệ rời rạc

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)

Bảng liệt kê giá trị hệ số tắt dần và tần số

Hệ liên tục 𝜉 = 0.705 𝜔 = 0.324


Emulation 𝜉 = 0.645 𝜔 = 0.441
Discrete 𝜉 = 0.733 𝜔 = 0.306

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

Thuật toán PID số

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

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

Một số phương pháp thiết kế bộ PID trên miền liên tục

Để 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.

Phương pháp Ziegler- Nichols frequency domain (ZNFD)

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 )

Áp dụng tiêu chuẩn tối ưu độ lớn, ta được

𝑇𝑖 𝑇𝑖
= 2𝑘𝑇1 → 𝑘𝑝 =
𝑘𝑝 2𝑇1 𝑘

Đối tượng là khâu bậc 3

k
Gp 
(T1s  1)(T2 s  1)(T3 s  1)

Ta chọn bộ điều khiển là PID như sau

1
𝐺𝑐 = 𝑘𝑝 (1 + + 𝑇𝐷 𝑠)
𝑇𝑖 𝑠

Lúc này, hàm truyền đạt hở sẽ là

1 𝑘
𝐺𝑐 𝐺𝑝 = 𝑘𝑝 (1 + + 𝑇𝐷 𝑠)
𝑇𝑖 𝑠 (𝑇1 𝑠 + 1)(𝑇2 𝑠 + 1)(𝑇3 𝑠 + 1)

𝑇1 < 𝑇2 < 𝑇3

Ta chọn các tham số bộ PID sao cho

(𝑇𝑖 𝑇𝐷 𝑠 2 + (𝑇𝐷 + 𝑇𝑖 )𝑠 + 1) = (𝑇2 𝑠 + 1)(𝑇3 𝑠 + 1)

66
Hay 𝑇𝐷 + 𝑇𝑖 = 𝑇2 + 𝑇3 và 𝑇𝑖 𝑇𝐷 = 𝑇2 𝑇3

Theo đó, hàm truyền đạt hở được rút gọn về

𝑘𝑘𝑝
𝐺𝑐 𝐺𝑝 =
(𝑇1 𝑠 + 1)𝑇𝑖 𝑠

Áp dụng tiêu chuẩn tối ưu mô đun ta được,


𝑇𝑖 𝑇𝑖
= 2𝑘𝑇1 → 𝑘𝑝 =
𝑘𝑝 2𝑇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

𝝎𝒔 ≥ 𝟐𝟎𝝎𝒏

Trong đó 𝜔𝑛 là độ rộng băng tần của hệ kín

Ví dụ: Thết kế bộ điều khiển số cho động cơ điện một chiều

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

Với u là tín hiệu điều khiển hệ thống

Đầu ra của hệ thống

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

Và hàm truyền đạt của hệ thống là (giả sử ᴊ = 0)

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

Để 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.

Với các hệ tuyến tính, luật điều khiển đơn giản là

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)

Thay công thức trên vào hệ thống ta được,

Thực hiện biến đổi z ta được

Phương trình đặc tính của hệ thống điều khiển là

Phương pháp đặt nghiệm cực


 Lựa chọn điểm cực mong muốn (desired pole)
 Luật điều khiển sẽ là đi xác định ma trận cột 𝑲 để hệ kín có điểm cực như đã chọn
 Phương pháp đặt nghiệm cực đảm bảo hệ kín có nghiệm cực chính xác như đã đặt
 Giả sử hệ thống bậc n có n nghiệm cực

Các nghiệm cực mong muốn là

Phương trình đặc tính là

Các hệ số của phương trình này và phương trình sau phải giống nhau (identical)

Sau khi đồng nhất n phương trình ta sẽ tính được ma trận 𝑲

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

Chuyển sang miền z, ta được

Phương trình đặc tính của hệ thống

Phương pháp đặt nghiệm cự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

Phương trình đặc tính là

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 𝑆 (𝑠 )
𝑆 (𝑧 ) = 𝐿{ }
𝑧 𝑠

Hàm truyền đạt 𝑆(𝑧) có dạng

𝑏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 + 𝑅 (𝑧 )𝑆 (𝑧 )

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 )
𝑊 (𝑧 )

= (𝑦1 𝑧 −1 + 𝑦2 𝑧 −2 + ⋯ + 𝑦𝑛−1 𝑧 −𝑛+1 + ∑ 𝑧 −𝑘 ) (1 − 𝑧 −1 )


𝑘=𝑛

Hay

𝐺 (𝑧) = 𝑦1 𝑧 −1 + (𝑦2 − 𝑦1 )𝑧 −2 + (𝑦3 − 𝑦2 )𝑧 −3 + ⋯ + (𝑦𝑛−1 − 𝑦𝑛−2 )𝑧 −𝑛+1


+ (1 − 𝑦𝑛−1 )𝑧 −𝑛

Hay

𝐺 (𝑧) = 𝑝1 𝑧 −1 + 𝑝2 𝑧 −2 + ⋯ + 𝑝𝑛 𝑧 −𝑛 = 𝑃(𝑧 −1 )

Ta có thể thấy rằng,


𝑛

∑ 𝑝𝑘 = 1
𝑘=1

Với dãy

{𝑦𝑘 } = {0, 𝑦1 , 𝑦2 , … , 𝑦𝑛−2 , 𝑦𝑛−1 , 1,1,1,1, … }

Tương ứng

{𝑢𝑘 } = 𝑢0 , 𝑢1 , 𝑢2 , … , 𝑢𝑛−2 , 𝑢𝑛−1 , 𝑢𝑛 , 𝑢𝑛, 𝑢𝑛 , …

Và ta có

𝑈(𝑧) = 𝑢0 + 𝑢1 𝑧 −1 + 𝑢𝑧 −2 + ⋯ + 𝑢𝑛−1 𝑧 −𝑛+1 + ∑ 𝑢𝑛 𝑧 −𝑘


𝑘=𝑛

𝑈 (𝑧 )
= 𝑈(𝑧)(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

Đồng nhất tử số, ta được


𝑛 𝑛
𝑝𝑘 1
∑ 𝑏𝑘 = ∑ =
𝑞0 𝑞0
𝑘=1 𝑘=1

Do đó,

1
𝑞0 =
∑𝑛𝑘=1 𝑏𝑘

Đồng nhất mẫu số, ta được


𝑞𝑘
= 𝑎𝑘 → 𝑞𝑘 = 𝑎𝑘 𝑞0 , 𝑘 = 1,2, … , 𝑛
𝑞0
𝑝𝑘
= 𝑏𝑘
𝑞0

Từ đó ta tìm được hàm truyền đạt bộ điều khiển deadbeat

1 𝐺 (𝑧 ) 𝑄 (𝑧 −1 )
𝑅 (𝑧 ) = =
𝑆 (𝑧) 1 − 𝐺 (𝑧) 1 − 𝑃(𝑧 −1 )

Đặc điểm của hệ kín khi sử dụng bộ điều khiển deadbeat.

 Đ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

𝑧−1 1 0.37𝑧 −1 + 0.26𝑧 −2


𝑆 (𝑧 ) = 𝐿{ 2 }=
𝑧 𝑠 (𝑠 + 1) 1 − 1.37𝑧 −1 + 0.37𝑧 −2

74
Dạng tổng quát

𝑏1 𝑧 −1 + 𝑏2 𝑧 −2 + ⋯ + 𝑏𝑛 𝑧 −𝑛
𝑆 (𝑧 ) =
1 + 𝑎1 𝑧 −1 + 𝑎2 𝑧 −2 + ⋯ + 𝑎𝑛 𝑧 −𝑛

Bậc của hệ thống là n=2, do đó ta có

𝑄(𝑧 −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 đó,

𝑞1 = 1,58 × (−1.37) = −2.16

𝑞2 = 1,58 × (0.37) = 0.58

𝑝1 = 1,58 × (0.37) = 0.58

𝑝2 = 1,58 × (0.26) = 0.42

Thay vào ta được,

𝑄(𝑧 −1 ) 1.58 − 2.16𝑧 −1 + 0.58𝑧 −2


𝑅 (𝑧 ) = =
1 − 𝑃(𝑧 −1 ) 1 − 0.58𝑧 −1 − 0.42𝑧 −2

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

Bài tập: Điều khiển tốc độ động cơ điện một chiều

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à

Thay số vào ta được

𝐾𝑇 𝐾𝑇 /𝐿𝐽
𝐺 (𝑠) = =
𝐿𝐽𝑠 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)

Ts = 0.1; % sampling time


dP_motor = c2d(P_motor,Ts,'zoh'); % convert to G(z)

Ta thu được hàm truyền đạt miền z (tính cả khâu ZOH) là:

0.1117𝑧 + 0.08827 0.1117𝑧 −1 + 0.08827𝑧 −2


𝐺𝑧 = =
𝑧 2 − 1.19𝑧 + 0.4972 1 − 1.19𝑧 −1 + 0.4972𝑧 −2
Sử dụng chương trình sau để tính tham số bộ điều khiển deadbeat

Chú ý, để kiểm tra xem hàm rời rạc

78
clc;
clear;

Ts=0.1;
z=tf('z');

G= (0.1117*z + 0.08827)/ (z^2 - 1.19*z + 0.4972); % (b1z^-1+ b2*z^-2+ ...+bnz^-n)/(1+


a1z^-1+....anz^-n)

% input
n=2;
a=[-1.19 0.4972];
b=[0.1117 0.08827];

%%%%%%%%%%%%%%%%%%% Do not change here %%%%%%%%%%%%%%%%%%%%%%%%%%55


p= zeros(1,n); % p1 z^-1+ p2z^-2+....pnz^-n
q=zeros(1,n+1);% q0+q1 z^-1+ q2z^-2+...+qnz^-n

%%% 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;

Và hàm truyền đạt khâu điều khiển deadbeat là

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

 Tốc độ đặt là 100


 Mô men tải thay đổi từ 0 - 5, tại thời điểm 𝑡 = 5(𝑠)

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.

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

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ù

Xác định thời gian trích mẫu

Thay vào

Được

82
83
84
85
86
87
88
89

You might also like