Mục lục 1 Giới thiệu về MATLAB và SIMULINK 5 1 1 Hiểu về môi trường làm việc của MATLAB 5 1 1 1 Cú pháp cơ bản 6 1 1 2 Biến (variable) 8 1 1 3 Vector 9 1 1 4 Vẽ đồ thị (plotting) 11 1 1 5 Đa thức (pol.
Trang 1Mục lục
1.1 Hiểu về môi trường làm việc của MATLAB 5
1.1.1 Cú pháp cơ bản 6
1.1.2 Biến (variable) 8
1.1.3 Vector 9
1.1.4 Vẽ đồ thị (plotting) 11
1.1.5 Đa thức (polynomial) 11
1.1.6 Sử dụng m-file 13
1.1.7 Khai báo hàm truyền trong MATLAB 16
1.1.8 Biến đổi Laplace với MATLAB 17
1.1.9 Biến đổi Laplace ngược 18
1.1.10 Khai triển phân thức với MATLAB 18
1.1.11 Tìm zero và cực của đa thức với MATLAB 20
1.2 Giới thiệu về SIMULINK 20
1.2.1 Khởi động Simulink 21
1.2.2 Một ví dụ cơ bản 23
1
Trang 22 MỤC LỤC
2.1 Các hệ động học (Dynamic systems) 27
2.2 Hàm truyền 29
2.3 Một số ví dụ về mô hình hóa 30
2.3.1 Hệ cơ học 30
2.3.2 Hệ thống điện (electrical systems): 33
3 PHÂN TÍCH HỆ THỐNG (SYSTEM ANALYSIS) 39 3.1 Tổng quát về đáp ứng thời gian (Time response overview) 39
3.2 Tổng quát về đáp ứng tần số (Frequency response overview) 40
3.3 Sự ổn định 40
3.4 Bậc của hệ (System Order) 42
3.4.1 Các hệ bậc nhất (First-order systems) 42
3.4.2 Các hệ bậc hai (Second-order systems) 45
3.5 Tìm hiểu về các dạng đáp ứng với MATLAB 49
4 THIẾT KẾ BỘ ĐIỀU KHIỂN PID (PID CONTROLLER DESIGN) 55 4.1 Tổng quát về PID 55
4.2 Những tính chất của hạng tử (term) P, I, D 57
4.3 Bài toán ví dụ (example problem) 58
4.3.1 Đáp ứng step vòng hở (Open-loop step response) 59
4.3.2 Điều khiển vòng kín với bộ điều khiển tỉ lệ (Proportional control) 60
4.3.3 Điều khiển vòng kín với bộ điều khiển Vi phân -Tỉ lệ (Proportional-Derivative control) 61
Trang 3MỤC LỤC 3
4.3.4 Điều khiển vòng kín với bộ điều khiển Tích phân-Tỉ lệ
(Proportional-Integral control) 61
4.3.5 Điều khiển vòng kín với bộ điều khiển Tỉ lệ-Tích phân-Vi phân (Proportional-Integral-Derivative control) 62
4.3.6 Hướng dẫn chung để thiết kế một bộ điều khiển PID 62
5 THIẾT KẾ BỘ ĐIỀU KHIỂN DÙNG QUỸ ĐẠO NGHIỆM SỐ (ROOT LOCUS CONTROLLER DESIGN) 65 5.1 Các cực vòng kín (closed-loop poles) 66
5.2 Biểu diễn quỹ đạo nghiệm số của một hàm truyền (Plotting the root locus of a tranfer function) 67
5.2.1 Chọn một giá trị của K từ quỹ đạo nghiệm số (Choosing a value of K from the Root Locus) 67
5.3 Đáp ứng vòng kín (Closed-loop response) 70
5.4 Sử dụng Bộ thiết kế hệ điều khiển cho thiết kế quỹ đạo nghiệm số (Using Control System Designer for Root Locus Design) 70
6 HOẠT ĐỘNG DỰA TRÊN PHẦN CỨNG: MẠCH RC 75 6.1 Sử dụng gói hỗ trợ Arduino Hardware Support Package 75
6.2 Gói Simulink ArduinoIO 77
6.3 Bắt đầu 77
6.4 Một ví dụ đơn giản 79
6.5 Hoạt động 1 Phần (a): XÁC ĐỊNH ĐÁP ỨNG BƯỚC CỦA MỘT MẠCH TỤ ĐIỆN-ĐIỆN TRỞ (RC CIRCUIT) 83
6.5.1 Mục đích 84
Trang 44 MỤC LỤC
6.5.2 Mô hình hóa từ các nguyên lý thứ nhất/đầu tiên (modelling from first
principles) 856.5.3 Thí nghiệm nhận dạng hệ thống 866.6 Phần b: NHẬN DẠNG ĐÁP ỨNG TẦN SỐ CỦA MỘT MẠCH ĐIỆN TRỞ-TỤĐIỆN (RC) 946.7 ĐIỀU KHIỂN ĐIỆN ÁP CHO MỘT MẠCH ĐIỆN TRỞ-TỤ ĐIỆN (RC) 104
Trang 5Chương 1 Giới thiệu về MATLAB và SIMULINK
MATLAB (matrix laboratory) là một ngôn ngữ lập trình cấp cao thế hệ thứ tư và là một môitrường tương tác để tính toán, hiển thị và lập trình MATLAB được phát triển bởi MathWorks
Nó cho phép kiểm soát ma trận; biểu diễn hàm số và số liệu; thực thi thuật toán; tạo giao diệnngười dùng; tương tác với những chương trình được viết bằng những ngôn ngữ khác như C,C++, Java, và FORTRAN; phân tích số liệu; phát triển thuật toán; và tạo ra các mô hình vàcác ứng dụng
MATLAB có nhiều lệnh và hàm toán học được xây dựng sẵn mà giúp ta trong việc tính toán,tạo ra đồ thị, và thực hiện các phương pháp tính bằng số
1.1 Hiểu về môi trường làm việc của MATLAB
Môi trường làm việc của MATLAB có thể được khởi tạo từ biểu tượng trên màn hình desktop.Cửa sổ làm việc chính trong MATLAB được gọi là desktop Khi MATLAB bắt đầu, desktopxuất hiện ở bố cục mặc định
Current Folder: Ô này cho phép xem các thư mục và tập tin của dự án
Command Window: Đây là khu vực chính mà các lệnh có thể được nhập vào ở dòng lệnh Nóđược chỉ thị bởi dấu nhắc lệnh (»)
Workspace: hiển thị tất cả các biến được tạo bởi và/hoặc được nhập vào từ các tập tin
5
Trang 66 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINK
Command History: Ô này hiển thị hoặc trả về các lệnh mà được nhập ở dòng lệnh
Sử dụng dấu chấm phẩy (;) trong MATLAB
Dấu chấm phẩy (;) chỉ thị kết thúc câu lệnh Tuy nhiên, nếu ta không muốn hiển thị kết quảcủa một biểu thức trong MATLAB, ta phải thêm vào dấu (;) sau biểu thức đó
x = 3;
Trang 71.1 HIỂU VỀ MÔI TRƯỜNG LÀM VIỆC CỦA MATLAB 7
y = x + 5
y =
8
Khi ta bấm Enter, MATLAB thực thi nó ngay lập tức và kết quả trả về là y = 8
Thêm vào bình luận (comment)
Biểu tượng phần trăm (%) được sử dụng để chỉ thị dòng bình luận
Hằng số và biến đặc biệt
MATLAB hỗ trợ các biến và hằng số đặc biệt sau:
Tên Ý Nghĩaans Kết quả gần nhấti,j Đơn vị ảo
Trang 88 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINK
1.1.2 Biến (variable)
Trong môi trường MATLAB, mỗi biến là một mảng (array) hoặc ma trận (matrix) Ta có thểgán các biến theo một cách đơn giản Ví dụ:
x = 3 % định nghĩa biến x và gán cho nó một giá trị
MATLAB sẽ thực thi câu lệnh trên và trả về
x = 3
Nó tạo ra một ma trận 1x1 tên là x và lưu giá trị 3 trong phần tử của nó
Chú ý rằng: Một khi một biến nào đó được nhập vào hệ, ta có thể liên hệ nó sau đó
Các biến phải có giá trị trước khi nó được sử dụng
Khi một biểu thức trả về một kết quả mà chưa được gán cho bất kỳ biến nào, hệ thống sẽ gáncho nó biến tên ans Ví dụ:
sqrt(9)
ans = 3
Nếu ta quên tên biến
Lệnh who liệt kê tất cả tên các biến mà ta đã sử dụng
Ví dụ:
who
Your variables are:
Lệnh whos liệt kê chi tiết hơn về các biến: Các biến hiện thời trong bộ nhớ; Loại của mỗi biến;
Bộ nhớ được phân cho mỗi biến; Biến là biến phức hay không
whos
Trang 91.1 HIỂU VỀ MÔI TRƯỜNG LÀM VIỆC CỦA MATLAB 9
Total is 73 elements using 781 bytes
Lệnh clear xóa tất cả các biến từ bộ nhớ
clear x % nó sẽ xóa biến x
clear % nó sẽ xóa tất cả các biến trong workspace
1.1.3 Vector
Một vector là một mảng một chiều MATLAB cho phép tạo ra hai loại vector: vector hàng vàvector cột
Vector hàng được tạo ra bằng cách bao quanh một tập hợp các phần tử bằng dấu ngoặc vuông,
sử dụng khoảng trắng hoặc dấu phẩy để phân định các phần tử
Ví dụ: Hãy tạo một vector a bằng cách nhập vào cửa sổ lệnh MATLAB (MATLAB commandwindow) như sau:
Trang 1010 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINKCộng/trừ hai vector nếu chúng có độ dài như nhau:
c = a + b;
d = a – b;
Vector cột được tạo ra bằng cách bao quanh một tập hợp các phần tử trong dấu ngoặc vuông,
sử dụng dấu chấm phẩy (;) để phân định giữa các phần tử Ví dụ:
Trang 111.1 HIỂU VỀ MÔI TRƯỜNG LÀM VIỆC CỦA MATLAB 11Tìm nghịch đảo của một ma trận bằng lệnh inv
X = inv(E)
Tìm giá trị riêng của ma trận bằng lệnh eig
eig(E)
1.1.4 Vẽ đồ thị (plotting)
Việc vẽ một đồ thị cũng dễ dàng với MATLAB Ví dụ, để vẽ đồ thị sóng sin theo thời gian:
• Tạo một vector thời gian (time vector) (dấu “;“ cho MATLAB biết ta không muốn thấytất cả các giá trị)
• Tính giá trị sin theo thời gian
• Các lệnh sau hàm plot (title, xlabel, ylabel) sẽ thêm các chú thích vào đồ thị
x4+ 3x3− 15x2− 2x + 9trong MATLAB, nhập vào vector sau
Trang 1212 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINK
Trang 131.1 HIỂU VỀ MÔI TRƯỜNG LÀM VIỆC CỦA MATLAB 13Bài tập: Hãy nhập các đa thức sau vào MATLAB:
1)8k3− 6k2− 2k + 182)k6+ 6k4+ 11k2− 2k
• Tìm nghiệm của các đa thức trên
• Tìm giá trị của từng đa thức với k = 3
• Nhân hai đa thức với nhau
1.1.6 Sử dụng m-file
MATLAB cho phép ta viết hai loại tập tin chương trình
Scripts - các tập tin script (tập tin kịch bản) là các tập tin chương trình với đuôi mở rộng m.Trong các tập tin này, ta viết các chuỗi lệnh mà ta muốn thực thi cùng nhau Script khôngchấp nhận đầu vào và không trả về bất kỳ đầu ra nào Chúng làm việc sử dụng số liệu trongworkspace
Functions (Hàm số) các tập tin hàm số cũng là tập tin chương trình với đuôi mở rộng m.Hàm số chấp nhận đầu vào và trả về đầu ra
Tạo và chạy script file
Để tạo script file, ta cần sử dụng trình soạn thảo văn bản (text editor) Ta có thể mở trìnhsoạn thảo MATLAB theo 2 cách Sử dụng dòng nhắc lệnh và sử dụng IDE
Nếu ta đang sử dụng dòng nhắc lệnh, nhập vào edit ở dấu nhắc lệnh Việc này sẽ mở trìnhsoạn thảo Ta có thể nhập trực tiếp tên tập tin (với mở rộng m) Ví dụ:
edit
hoặc để mở một M file đã có sẵn
edit <filename>
Trang 1414 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINKLệnh trên sẽ tạo ra một tập tin trong thư mục MATLAB mặc định Nếu ta muốn lưu tất cảcác file chương trình trong một thư mục cụ thể, thì ta sẽ phải cung cấp toàn bộ đường dẫn.Một cách khác là sử dụng IDE, chọn NEW -> Script
Ví dụ: Nhập vào Script:
a = 5; b = 7;
c = a + b
Sau khi tạo và lưu tập tin, ta có thể chạy tập tin đó theo hai cách:
1 Bấm vào nút Run trên cửa sổ hoặc,
2 Nhập vào tên tập tin ở dòng nhắc lệnh
Hãy tạo một m-file trong đó thực hiện phép so sánh:
Một hàm số (function) là một nhóm các câu lệnh mà cùng với nhau chúng thực hiện một nhiệm
vụ Trong MATLAB, các hàm số được định nghĩa trong các tập tin riêng biệt Tên của tập tin
và tên hàm số nên giống nhau
Hàm số làm việc dựa trên các biến (variables) trong không gian làm việc của nó (không gianlàm việc địa phương) Nó khác với không gian làm việc ở dấu nhắc lệnh của MATLAB (khônggian làm việc cơ sở)
Trang 151.1 HIỂU VỀ MÔI TRƯỜNG LÀM VIỆC CỦA MATLAB 15Hàm số có thể chấp nhận nhiều hơn một đối số đầu vào và có thể trả về nhiều hơn một đối sốđầu ra.
Cú pháp: f unction[out1, out2, , outN ] = myf un(in1, in2, in3, , inN )
Ví dụ: Hàm số sau được đặt tên mymax và nên được viết trong một tập tin có tên mymax.m
Nó lấy 5 số làm đối số và trả về số lớn nhất Tạo file mymax.m và nhập vào code sau:
function max = mymax(n1, n2, n3, n4, n5)
Ta có thể gọi hàm này ví dụ như:
Trang 1616 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINK
1.1.7 Khai báo hàm truyền trong MATLAB
a Sử dụng khai báo kiểu vector và hàm TF
Nhập vào MATLAB hàm truyền
Continuous-time transfer function.
Bài tập: Hãy thực hiện việc nhập vào các hàm truyền sau:
G1(s) = 3s
2+ 2s + 15s4+ 2s3+ 1G2(s) = 5s
2+ 15s3+ 4s2+ 2s + 1
Trang 171.1 HIỂU VỀ MÔI TRƯỜNG LÀM VIỆC CỦA MATLAB 17
2+ 15s3+ 4s2+ 2s + 1
1.1.8 Biến đổi Laplace với MATLAB
Hàm laplace(f ) trả về biến đổi Laplace của f Mặc định, biến độc lập là t (miền thời gian) vàbiến biến đổi là s (miền Laplace)
Trang 1818 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINK
1
2
s
1.1.9 Biến đổi Laplace ngược
Hàm ilaplace(F ) trả về biến đổi Laplace ngược của F Mặc định, biến độc lập là s và biến biếnđổi là t
Ví dụ Tính toán biến đổi Laplace ngược của s12 Mặc định, biến đổi ngược trả về dạng của t
numden =
b0sn+ b1sn−1+ + bn
sn+ a1sn−1+ + anTrong MATLAB, vector hàng num và den biểu thị các hệ số của tử số (numerator) và mẫu số(denominator) của hàm truyền
num = [b0 b1 bn]den = [1 a1 an]Lệnh [r, p, k] = residue(num, den) tìm phần dư (residue - r), cực (pole - p), phần tử trực tiếp(k) của hàm:
B(s)A(s) =
Trang 191.1 HIỂU VỀ MÔI TRƯỜNG LÀM VIỆC CỦA MATLAB 19Lệnh residue cũng có thể được dùng để tìm các hệ số của đa thức từ phân thức được khaitriển:
[r, p, k] = residue(num, den)
với r, p, k có ý nghĩa như trên
Để tạo thành đa thức dạng B(s)A(s), dùng lệnh printsys(num, den, ‘s0)
Ví dụ
B(s)A(s) =
2s3+ 5s2 + 3s + 6
s3+ 6s2+ 11s + 6Các lệnh trên MATLAB
Trang 2020 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINK
1.1.11 Tìm zero và cực của đa thức với MATLAB
Ta có thể tìm trực tiếp zero và cực của hàm truyền sử dụng các lệnh zero và pole tương ứng,hoặc
Lệnh [z, p, K] = tf 2zp(num, den): Dùng để tìm zero, cực và độ lợi (gain) của đa thức B(s)A(s)
Ví dụ
B(s)A(s) =
4s2+ 16s + 12
s4 + 12s3+ 44s2+ 48sCách 1:
1.2 Giới thiệu về SIMULINK
Simulink là một mở rộng đồ họa (graphical extension) cho MATLAB để mô hình hóa và môphỏng các hệ Một trong những thuận lợi chính của Simulink là khả năng mô hình hóa một hệ
Trang 211.2 GIỚI THIỆU VỀ SIMULINK 21không tuyến tính, việc mà một hàm truyền không thể làm Một thuận lợi khác của Simulink làkhả năng tiếp nhận các điều kiện ban đầu Khi một hàm truyền được xây dựng, các điều kiệnban đầu được giả định là 0.
Trong Simulink, các hệ thống được vẽ trên màn hình như các sơ đồ khối (block diagram) Nhiềuphần tử của sơ đồ khối có sẵn, như là hàm truyền (transfer function), điểm tổng (summingjunctions) cũng như các thiết bị đầu vào và đầu ra ảo (virtual input/output devices) như
là bộ phát (generator) và máy hiện sóng (oscilloscope) Simulink được tích hợp với MATLAB
và dữ liệu có thể được truyền dễ dàng giữa hai chương trình Trong phần hướng dẫn này vàcác phần tiếp theo, ta sẽ áp dụng Simulink đối với các ví dụ từ MATLAB để mô hình các hệ,xây dựng bộ điều khiển, và mô phỏng hệ
1.2.1 Khởi động Simulink
Khởi động Simulink bằng cách nhập lệnh simulink vào cửa sổ lệnh hay nút Simulink trênstandard toolbar
Tạo một cửa sổ mới
Trong Simulink, một mô hình là một tập hợp các khối để biểu diễn một hệ Ngoài việc tạo một
mô hình từ đầu (from scratch), những file mô hình được lưu trước đó có thể được mở từ Filemenu hay nhập tên file vào cửa sổ lệnh của MATLAB
Ta sẽ phân tích các phần tử cơ bản của Simulink dựa trên sơ đồ khối hình 1.2.1
Có hai lớp lớn các phần tử trong Simulink: khối (blocks) và đường (lines) Các khối được sửdụng để tạo ra (generate), điều chỉnh (modify), kết hợp (combine), cung cấp (output) và hiệntín hiệu Các đường được sử dụng để truyền tín hiệu (signal) từ môt khối đến khối khác.Khối
Trang 2222 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINK
Khối có nhiều lớp tổng thể trong thư viện Simulink:
Nguồn (source): được sử dụng để tạo ra nhiều kiểu tín hiệu
Bộ nhận (sink): được sử dụng để cung cấp và hiển thị tín hiệu
Khối liên tục (continuous): các phần tử hệ thống liên tục theo thời gian (hàm truyền, mô hìnhkhông gian trạng thái, bộ điều khiển PID, v.v)
Khối rời rạc (discrete): các phần tử hệ thống thời gian rời rạc, tuyến tính (hàm truyền rời rạc(discrete transfer function), mô hình không gian trạng thái rời rạc (discrete state-space model),v.v)
Phép tính toán học (math operations): chứa nhiều phép toán thông dụng (độ lợi (gain), tổng(sum), tích (product), giá trị tuyệt đối (absolute value), v.v)
Cổng và hệ con (ports & Subsystems): chứa các khối rất hữu ích để xây dựng một hệ thốngKhối có 0 đến nhiều điểm đầu vào và 0 đến nhiều điểm đầu ra Các điểm đầu vào không sử
Trang 231.2 GIỚI THIỆU VỀ SIMULINK 23dụng được chỉ thị bởi một hình tam giác mở nhỏ (open triangle) Các điểm đầu ra không sửdụng được chỉ thị bởi một tam giác nhỏ.
số Đường được sử dụng để truyền tín hiệu đại số và vector là giống nhau Loại tín hiệu đượcmang bởi đường được quyết định bởi các khối ở mỗi đầu ra của đường
1.2.2 Một ví dụ cơ bản
Hãy tạo một mô hình đơn giản gồm 3 khối: step, transfer function, scope Step là một khốisource mà từ đó một tín hiệu đầu vào dạng bước (step input signal) bắt nguồn Tín hiệu nàyđược truyền thông qua đường theo hướng mũi tên đến hàm truyền (thuộc khối Continuous).Khối hàm truyền điều chỉnh tín hiệu đầu vào của nó và cấp ra một tín hiệu mới truyền tớiScope (thuộc khối Sink) Scope là khối nhận được sử dụng để hiển thị một tín hiệu giống nhưmột máy hiện sóng (oscilloscope)
Khối phức tạp nhất trong 3 khối này là Scope Hãy click đôi lên nó để thấy một cửa sổ mới.Khi mô phỏng được thực hiện, tín hiệu cấp vào scope sẽ được hiển thị lên cửa sổ này
Click vào Run, Play hay nhập Ctrl-T vào cửa sổ lệnh để tiến hành chạy mô phỏng
Nhìn vào cửa sổ Scope, ta thấy đáp ứng step không bắt đầu cho đến khi t=1s
Thay đổi khối
Một khối có thể được thay đổi bằng cách click đôi nó Click đôi vào hàm truyền và thay đổicác hệ số của tử số và mẫu số của nó để có được hàm truyền như hình:
Trang 2424 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINK
Click đôi vào khối step Các tham số mặc định trong khối này là tín hiệu step xảy ra ở thờiđiểm 1s, từ giá trị ban đầu là 0 đến giá trị 1 Hãy thay đổi các giá trị này, chạy mô phỏng lại
và quan sát kết quả
Vì hàm truyền mới có đáp ứng rất nhanh, nó nén lại thành một phần rất hẹp của cửa sổ scope.Đây không thật sự là vấn đề đối với scope, nhưng với bản thân sự mô phỏng Simulink môphỏng hệ trong 10 giây ngay cả khi hệ đã đạt đến trạng thái ổn định (steady state) ngay sau
1 giây
Để điều chỉnh, ta cần thay đổi các tham số mô phỏng Trong cửa sổ mô hình, chọn Modelconfiguration parameters (thông số cấu hình cho mô hình) từ menu Simulation (mô phỏng) haybấm Ctrl+E Hộp hội thoại (dialog box) sau sẽ xuất hiện:
Có nhiều tùy chọn để điều chỉnh thông số mô phỏng; ta chỉ quan tâm tới thời gian bắt đầu vàthời gian dừng (start time và stop time), cái mà cho Simulink biết khoảng thời gian thực hiệnviệc mô phỏng Điều chỉnh thông số mô phỏng: start time từ 0 → 0.8s; stop time từ 10 → 2s.Chạy mô phỏng lại và quan sát cửa sổ Scope
Trang 251.2 GIỚI THIỆU VỀ SIMULINK 25
Trang 2626 CHƯƠNG 1 GIỚI THIỆU VỀ MATLAB VÀ SIMULINK
Trang 27Chương 2
GIỚI THIỆU: MÔ HÌNH HÓA HỆ
THỐNG
Bước đầu tiên trong quá trình thiết kế điều khiển là phát triển mô hình toán học thích hợp của
hệ thống được điều khiển Các mô hình này có thể được rút ra từ các định luật vật lý (physicallaws) hoặc dữ liệu thực nghiệm (experimental data) Trong phần này, cách biểu diễn bằng hàmtruyền (transfer function) và không gian trạng thái (state-space) của các hệ động học được giớithiệu
2.1 Các hệ động học (Dynamic systems)
Các hệ động học là các hệ mà thay đổi hoặc tiến triển theo thời gian theo một quy luật cốđịnh Đối với nhiều hệ vật lý, quy luật này có thể được phát biểu như một tập hợp các phươngtrình vi phân bậc nhất (first-order differential equations):
˙x = dx
Trong phương trình trên, x(t) là vector trạng thái (state vector), là một tập hợp các biến(variables) biểu diễn trạng thái của hệ ở thời điểm t Ví dụ, trong một hệ lò xo đơn giản (mass-spring damper system), hai biến trạng thái có thể là vị trí (position) và vận tốc (velocity) củakhối lượng (mass) u(t) là vector đầu vào bên ngoài (external input vector) đối với hệ ở thờiđiểm t, và f là một hàm số (có thể không tuyến tính) mà tạo ra đạo hàm theo thời gian (timederivative) hay tốc độ thay đổi (rate of change) của vector trạng thái, dx/dt, ở một thời điểm
cụ thể
27
Trang 2828 CHƯƠNG 2 GIỚI THIỆU: MÔ HÌNH HÓA HỆ THỐNGTrạng thái ở bất kỳ thời điểm tương lai, x(t1), có thể được xác định chính xác khi đã biết trạngthái ban đầu, x(t0), và giá trị của đầu vào (time history of inputs) u(t) giữa t0 và t1 bằng cáchlấy tích phân (integrating) phương trình 2.1 Mặc dù bản thân các biến trạng thái là khôngduy nhất (unique), cần phải có số lượng biến trạng thái tối thiểu, n, để nắm bắt trạng thái củamột hệ được cho và để có thể dự đoán hành vi của hệ (system’s future behaviour) ở tương lai.
n được xem như bậc của hệ (system order) và quyết định kích thước/chiều (dimensionality)của không gian trạng thái Bậc của hệ thường tương ứng với số phần tử chứa năng lượng độclập trong hệ thống
Mối quan hệ trong phương trình 2.1 rất tổng quát và có thể được sử dụng để mô tả nhiều hệthống đa dạng khác nhau; tuy nhiên, nó rất khó cho việc phân tích hệ thống Có hai dạngđơn giản hóa thường gặp để làm cho vấn đề dễ kiểm soát hơn Đầu tiên, nếu hàm f khôngphụ thuộc rõ ràng vào thời gian, vd, ˙x = f(x,u), thì hệ được xem là bất biến theo thời gian(time invariant) Giả định này là hợp lý bởi vì bản thân các định luật vật lý không phụ thuộcvào thời gian Đối với các hệ bất biến theo thời gian, các tham số hoặc hệ số (parameters orcoefficients) của hàm f là hằng số (constant) Các biến trạng thái, x(t), và đầu vào điều khiển,u(t), vẫn có thể phụ thuộc vào thời gian
Giả định phổ biến thứ hai liên quan đến sự tuyến tính (linearity) của hệ thống Trong thực tế,gần như mọi hệ vật lý đều không tuyến tính (nonlinear) Nói cách khác, f là một hàm phức tạpcủa trạng thái và đầu vào Sự không tuyến tính xuất hiện theo nhiều con đường khác nhau,một đường phổ biến trong các hệ điều khiển là “sự bão hòa” (saturation) trong đó một phần
tử của hệ thống đạt tới giới hạn hoạt động vật lý của nó Tuy nhiên, xét trên một khoảng hoạtđộng đủ nhỏ (đường tiếp tuyến gần 1 đường cong) thì động học của hầu hết các hệ là gần nhưtuyến tính (approximately linear) Trong trường hợp này, hệ của các phương trình vi phân bậcnhất có thể được biểu diễn như một phương trình ma trận, ˙x = Ax + Bu
Trước khi có các máy tính số (digital computers), người ta chỉ có thể phân tích các hệ tuyếntính bất biến theo thời gian (linear time-invariant systems or LTI) Do vậy, hầu hết các kết quảcủa lý thuyết điều khiển đều được dựa trên các nhận định này Mai mắn là, như ta sẽ thấy, cáckết quả có được từ các giả định này là hữu ích và nhiều vấn đề kỹ thuật quan trọng đã đượcgiải quyết bằng cách sử dụng các kỹ thuật LTI Thật vậy, sức mạnh của các hệ điều khiển hồitiếp (feedback control systems) là chúng làm việc bền vững (robust) ngay cả khi có sự bất địnhcủa mô hình (modeling uncertainty)
Trang 292.2 HÀM TRUYỀN 29
2.2 Hàm truyền
Các hệ LTI có tính chất cực kỳ quan trọng là nếu đầu vào của hệ là dạng sin, thì đầu ra cũng
sẽ dạng sin với cùng tần số (frequency) như đầu vào, nhưng có thể khác về độ lớn (magnitude)
và pha (phase) Sự khác biệt ở độ lớn và pha là một hàm theo tần số và mô tả đáp ứng tần số
(frequency response) của hệ
Sử dụng biến đổi Laplace (Laplace transform), ta có thể chuyển đổi việc biểu diễn theo miền
thời gian của hệ thống (system’s time-domain representation) sang biểu diễn mối quan hệ đầu
vào/đầu ra ở miền tần số (frequency-domain input/output representation) Đây được gọi là
hàm truyền (transfer function) Việc biến đổi này cũng chuyển phương trình vi phân thành
một phương trình đại số (algebraic equation), mà việc phân tích nó thường dễ dàng hơn
Trong lý thuyết điều khiển, những hàm gọi là hàm truyền thường được sử dụng để mô tả mối
liên hệ đầu vào-đầu ra của những thành phần hoặc hệ thống mà có thể được mô tả bằng các
công thức vi phân, tuyến tính và bất biến theo thời gian (LTI)
Biến đổi Laplace của môt hàm số miền thời gian, f (t), được định nghĩa như bên dưới:
F (s) = L {f (t)} =
Z ∞
0
e−stf (t)dtTrong đó, thông số s = σ + jω là một biến tần số phức (complex frequency variable) Trong
thực tế, rất hiếm khi bạn phải thực hiện một biến đổi Laplace một cách trực tiếp Thông thường
thì tra bảng chuyển đổi có sẵn: Biến đổi Laplace của đạo hàm cấp n của một hàm là rất quan
vào/một đầu ra (single-input/single-output (SISO)), ví dụ, các hệ có phương trình vi phân với
hệ số không đổi, như:
any(n)(t)+an−1y(n−1)(t)+ +a1y(t)+a0y(t) = bmu˙ (m)(t)+bm−1u(m−1)(t)+ +b1˙u(t)+b0u(t) (n ≥ m)trong đó, y(t) là tín hiệu đầu ra, u(t) là tín hiệu đầu vào của hệ thống Biến đổi Laplace của
phương trình này được cho bên dưới:
ansnY (s) + an−1sn−1Y (s) + a1sY (s) + a0Y (s) = bmsmU (s) + bm−1sm−1U (s) + + b1sU (s) + b0U (s)
Trang 3030 CHƯƠNG 2 GIỚI THIỆU: MÔ HÌNH HÓA HỆ THỐNGtrong đó Y(s) và U(s) là biến đổi Laplace của y(t) và u(t) Chú ý rằng, khi tìm hàm truyền, taluôn luôn giả sử rằng các điều kiện ban đầu (initial conditions), y(0), ˙y(0), u(0) v.v là 0 Hàmtruyền từ đầu vào U(s) tới đầu ra Y(s), do đó
Ta có thể xác định hàm truyền một cách trực tiếp từ phương trình không gian trạng thái nhưsau:
Sau khi đã tìm hiểu các công cụ về toán học và vật lý, ta sẽ tìm hiểu một số ví dụ về biểu diễn
hệ vật lý bằng các phương trình toán học Mục đích của việc này là giúp ta thấy được một hệthống vật lý được biểu diễn bởi mô hình toán học là như thế nào
2.3.1 Hệ cơ học
Các định luật về chuyển động của Newton là nền tảng để phân tích các hệ cơ học Định luật
2 của Newton, phương trình bên dưới, phát biểu rằng, tổng của các lực tác động lên một vậtbằng tích khối lượng và gia tốc của nó Định luật 3 Newton phát biểu, nếu hai vật tiếp xúc,chúng chịu lực tác động có độ lớn như nhau, chỉ tác động theo hướng ngược nhau
X
F = ma = md
2z
Khi áp dụng phương trình này, cách tốt nhất là xây dựng một giản đồ vật thể tự do hay giản
đồ lực (free-body diagram (FBD)) của hệ mà chỉ ra tất cả các lực tác động vào vật ấy
Trang 312.3 MỘT SỐ VÍ DỤ VỀ MÔ HÌNH HÓA 31
Hình 2.1: Hệ Giảm chấn-khối lượng-lò xo
Hình 2.2: Giản đồ lực của hệ Giảm chấn-khối lượng-lò xo
Ví dụ: Hệ Giảm chấn-khối lượng-lò xo (Mass-Spring-Damper System)
Giản đồ lực (free-body diagram) của hệ này được cho bên dưới Lực lò xo tỉ lệ với độ chuyển vị(displacement) z của khối lượng, m, và lực cản nhớt (viscous damping force) tỉ lệ với vận tốccủa khối lượng, v = ˙z Hai lực này ngược với chiều chuyển động của khối lượng và do đó đượcbiểu diễn theo chiều âm (negative) của trục z Chú ý rằng z = 0 tương ứng với vị trí của khốilượng khi lò xo không bị nén, kéo Ta tiếp tục bằng cách tổng hợp các lực và áp dụng định luật
II Newton, phương trình (2.2), theo mỗi hướng Trong trường hợp này, không có lực tác độngtheo hướng y; lực theo hướng z là:
X
Fz = F (t) − b ˙z − kz = m¨z (2.3)Phương trình này, được xem như là phương trình chủ đạo (governing equation), mô tả hoàntoàn trạng thái động học của hệ Sau này, ta sẽ thấy làm như thế nào để tính toán đáp ứngcủa hệ đối với bất kỳ tác động bên ngoài nào (external input), F(t), cũng như phân tích tínhchất của hệ (như là sự ổn định (stability) và hiệu năng (performance))
Để mô tả không gian trạng thái của hệ lò xo-khối lượng ở trên, ta phải hạ bậc phương trình chủđạo bậc hai (second-order governing equation) thành một tập hợp hai phương trình vi phânbậc nhất (first-order differential equations) Ta chọn vị trí và vận tốc là các biến trạng thái
Trang 3232 CHƯƠNG 2 GIỚI THIỆU: MÔ HÌNH HÓA HỆ THỐNG
˙x =
"
˙z
¨z
# "
z
˙z
#+
"
01 m
Biểu diễn hệ ở dạng không gian biến trạng thái
Hãy nhập các ma trận A, B, C, D của hệ vào MATLAB với giá trị của các biến như sau:
m khối lượng (mass) 1.0 kg
k hằng số lò xo (spring constant) 1.0 N/m
b hằng số tắt dần (damping constant) 0.2 Ns/m
F lực đầu vào (input force)
Sử dụng lệnh ss(A, B, C, D) để mô tả hệ bằng không gian trạng thái?
Sử dụng lệnh step để thấy đáp ứng của hệ?
Biểu diễn hệ ở dạng hàm truyền
Hãy biến đổi Laplace phương trình 2.3, giả sử các điều kiện ban đầu là 0 ?
Hãy nhập mô hình hàm truyền này vào MATLAB theo 2 cách đã học ở chương 1?
Sử dụng lệnh step để thấy đáp ứng của hệ?
Trang 332.3 MỘT SỐ VÍ DỤ VỀ MÔ HÌNH HÓA 33
Sử dụng simulink Hãy dùng simulink để biểu diễn và mô phỏng hệ trên dựa trên hàm truyềncủa nó?
Thay đổi thời gian mô phỏng thành 100s?
2.3.2 Hệ thống điện (electrical systems):
Giống như định luật Newton đối với các hệ cơ học, định luật mạch điện của Kirchoff (Kirchoff’scircuit laws) là công cụ phân tích cơ sở để mô hình hóa các hệ thống điện Định luật dòngđiện của Kirchoff (Kirchoff’s current law – KCL) phát biểu rằng tổng của các dòng điện đi vàomột nút (node) trong một mạch điện phải bằng với tổng các dòng điện đi ra khỏi nút đó Địnhluật điện thế của Kirchoff (Kirchoff’s voltage law – KVL) phát biểu rằng hiệu điện thế (voltagedifference) quanh bất kỳ vòng kín nào trong một mạch điện là 0 Khi áp dụng KVL, điện thếnguồn thường lấy giá trị dương và điện thế của tải là giá trị âm
Trang 3434 CHƯƠNG 2 GIỚI THIỆU: MÔ HÌNH HÓA HỆ THỐNGnhau trong mạch điện ở mọi thời điểm Bây giờ, áp dụng KVL quanh vòng và sử dụng quy tắc
về dấu được chỉ trong sơ đồ, ta có phương trình chủ đạo (governing equation) sau:
V (t) − Ri − Ldi
dt − 1C
Z
Chú ý rằng, phương trình chủ đạo cho mạch RLC có dạng tương tự như hệ lò xo – khối lượng
ở trên Cụ thể, chúng đều là hệ bậc hai, mà ở đó điện tích (charge – là tích phân của dòngđiện) tương ứng với độ chuyển vị, cảm kháng (inductance) tương ứng với khối lượng, trở kháng(resistance) tương ứng với độ cản nhớt (viscous damping), và nghịch đảo dung kháng (inversecapacitance) tương ứng với độ cứng lò xo (spring stiffness) Những điều tương tự này và nhữngthứ giống nhau khác tỏ ra hữu ích trong việc hiểu về hành vi của các hệ động lực học
Biểu diễn không gian trạng thái được tìm bằng cách chọn điện tích của tụ điện và dòng điệnqua mạch (cuộn cảm) là các biến trạng thái
x =
"
qi
#
trong đó,
q =
ZidtPhương trình trạng thái do đó là:
˙x =
"
idi dt
#+
"
01 L
#
Một lần nữa ta thấy một hệ thống thực được đơn giản hóa thành sơ đồ và được mô tả bởiphương trình toán học mà có thể được chia sẽ và phân tích dễ dàng
Cho R = 1 L = 1H C = 1F
Sử dụng lệnh ss(A, B, C, D) để mô tả hệ bằng không gian trạng thái?
Sử dụng lệnh step để thấy đáp ứng của hệ?
Biểu diễn hệ ở dạng hàm truyền
Trang 352.3 MỘT SỐ VÍ DỤ VỀ MÔ HÌNH HÓA 35Hãy biến đổi Laplace phương trình (2.4), giả sử các điều kiện ban đầu là 0?
Hãy nhập mô hình hàm truyền này vào MATLAB theo 2 cách đã học ở chương 1?
Sử dụng lệnh step để thấy đáp ứng của hệ?
Sử dụng simulink Hãy dùng simulink để biểu diễn và mô phỏng hệ trên dựa trên hàm truyềncủa nó?
Một Số Lệnh Trong MATLAB Để Mô Tả Hệ Thống Tự Động
Lệnh tf : Tạo ra hệ thống mô tả bởi hàm truyền
Cú pháp: G = tf (T S, M S), với TS, MS lần lượt là tử số và mẫu số của hàm truyền G
Trang 3636 CHƯƠNG 2 GIỚI THIỆU: MÔ HÌNH HÓA HỆ THỐNG
Lệnh feedback: Tính hàm truyền của hệ thống hồi tiếp
a) Hàm truyền của hệ thống hồi tiếp âm:
Trang 3838 CHƯƠNG 2 GIỚI THIỆU: MÔ HÌNH HÓA HỆ THỐNG
Trang 39Chương 3
PHÂN TÍCH HỆ THỐNG (SYSTEM
ANALYSIS)
Một khi các mô hình toán học (mathematical models) của hệ thống đã có được, ở dạng không
gian trạng thái (state-space form) hay hàm truyền (transfer function form), ta có thể phân
tích những mô hình này để dự đoán xem hệ sẽ đáp ứng (response) như thế nào ở cả miền thời
gian và miền tần số (time and frequency domains) Việc phân tích này nhằm phục vụ cho việc
thiết kế bộ điều khiển Các hệ thống điều khiển thường được thiết kế để cải thiện sự ổn định
(stability), vận tốc đáp ứng (speed of response), sai lệch ở trạng thái ổn định (steady-state
error), hay ngăn chặn sự dao động (prevent oscillation) Trong phần này, ta sẽ tìm hiểu làm
thế nào để xác định những đặc tính động học (dynamic properties) này từ các mô hình hệ
3.1 Tổng quát về đáp ứng thời gian (Time response overview)
Đáp ứng thời gian mô tả trạng thái của một hệ động học thay đổi như thế nào theo thời gian
khi chịu sự tác động bởi một đầu vào cụ thể nào đó Vì các mô hình mà ta rút ra bao gồm các
phương trình vi phân, một vài phép tích phân phải được thực hiện nhằm xác định đáp ứng theo
thời gian của hệ thống Đối với một số hệ đơn giản, nghiệm giải tích hoàn toàn (closed-form
analytical solution) có thể tìm được Tuy nhiên, đối với hầu hết các hệ, đặc biệt là các hệ không
tuyến tính hoặc các hệ chịu đầu vào phức tạp, việc tích phân này phải được tiến hành một
cách số học (numerically) May mắn là MATLAB cung cấp nhiều nguồn hữu ích để tính toán
đáp ứng theo thời gian cho nhiều loại đầu vào, như ta sẽ thấy trong các phần sau
39
Trang 4040 CHƯƠNG 3 PHÂN TÍCH HỆ THỐNG (SYSTEM ANALYSIS)Đáp ứng thời gian của một hệ động học tuyến tính gồm tổng của đáp ứng quá độ (transientresponse), mà phụ thuộc vào các điều kiện ban đầu, và đáp ứng trạng thái ổn định (steady-state response), mà phụ thuộc vào đầu vào của hệ Chúng tương ứng với nghiệm đồng nhất(homogenous solution) và nghiệm riêng biệt (particular solution) của phương trình vi phân chủđạo (governing differential equations).
3.2 Tổng quát về đáp ứng tần số (Frequency response
Sự khác biệt về độ lớn và pha này là một hàm của tần số và bao gồm đáp ứng tần số (frequencyresponse) của hệ
Đáp ứng tần số của một hệ có thể được tìm từ hàm truyền của nó theo cách sau: tạo một vectortần số (dao động giữa tần số zero hoặc “DC” đến vô cùng (infinity) và tính giá trị của hàmtruyền của hệ ở các tần số này Nếu G(s) là hàm truyền vòng hở (open-loop transfer function)của hệ và ω là vector tần số, thì ta vẽ đồ thị G(jω) theo ω Vì G(jω) là một số phức (complexnumber), ta có thể vẽ đồ thị của cả độ lớn và pha của nó (biểu đồ Bode); hoặc vị trí của nótrong mặt phẳng phức (complex plane) (sơ đồ Nyquist – Nyquist diagram) Cả hai phươngpháp này hiển thị cùng thông tin, nhưng theo cách khác nhau
3.3 Sự ổn định
Cho mục đích của ta, định nghĩa về ổn định của đầu vào bị chặn/đầu ra bị chặn (Boundedinput Bounded output – BIBO) sẽ được sử dụng Ở định nghĩa này, một hệ là ổn định nếuđầu ra duy trì trong giới hạn (remain bounded) đối với tất cả các đầu vào hữu hạn (boundedinputs or finite inputs) Trong thực tế, điều này có nghĩa là hệ không bị tăng mất kiểm soát(blow up) trong lúc hoạt động