Professional Documents
Culture Documents
1.1 Vector
Mỗi phần tử (element) của vector cách nhau bởi một khoảng trống (space) và chúng
nằm ở giữa dấu ngoặc vuông.
Tạo một vector a bằng cách nhập vào cửa sổ lệnh MATLAB (MATLAB command
window) như sau:
a = [1 2 3 4 5 6]
Tạo một vector với các phần tử từ 0 đến 20 và cách nhau 2 đơn vị (cách này thường
xuyên được dùng để tạo một vector thời gian):
t = 0:2:20
Cộng thêm 2 vào mỗi phần tử của vector a để có vector b:
b=a+2
Cộng, trừ hai vector nếu chúng có độ dài như nhau:
c=a+b
d=a–b
1.2 Đa thức (polynomial)
Trong MATLAB, một đa thức được biểu diễn bởi một vector. Để tạo ra một đa thức
trong MATLAB, nhập từng hệ số (coefficience) của đa thức vào vector theo thứ tự
giảm dần (descending order). Ví dụ, để biểu diễn đa thức:
s4+3s3-15s2-2s+9
trong MATLAB, nhập vào vector sau:
x = [1 3 -15 -2 9]
MATLAB có thể dịch một vector với độ dài n+1 như một đa thức bậc n. Do đó, nếu
một đa thức mất đi bất kỳ hệ số nào, người dùng phải điền 0 vào vị trí thích hợp
trong vector. Ví dụ,
s4+1
sẽ được biểu diễn trong MATLAB như:
y = [1 0 0 0 1]
Ta có thể tìm giá trị (value) của một đa thức bằng hàm polyval. Ví dụ, để tìm giá trị
của đa thức trên ở s=2,
polyval([1 0 0 0 1],2)
Ta cũng có thể tìm nghiệm (root) của một đa thức bằng lệnh roots:
roots([1 3 -15 -2 9])
Nhân (multiply) hai đa thức với nhau sử dụng lệnh conv:
a = [1 2];
1
b = [1 4 8];
c = conv(a,b)
Chia (divide) hai đa thức c cho b bằng lệnh deconv:
[aa, R]=deconv(c, b)
Kết quả (result) được lưu trong biến aa và phần thừa (remainder) được lưu ở biến R
Hãy nhập các đa thức sau vào MATLAB:
1) X = 8s3-6s2-2s+18
2) Y = s6+6s4+11s2-2s
Sau đó thực hiện:
a) Tìm nghiệm của các đa thức trên
b) Tìm giá trị của từng đa thức với s = 3
c) Nhân hai đa thức với nhau
d) Kiểm tra lại phép nhân bằng cách thay s=3 vào đa thức vừa có được
1.3 Đa thức sử dụng biến s (polynomials using s variable)
Một cách khác để biểu diễn một đa thức là sử dụng biến Laplace s trong MATLAB.
Phương pháp này được sử dụng chủ yếu trong suốt quá trình hướng dẫn này. Định
nghĩa một biến số s trong MATLAB được thực hiện như sau:
s = tf('s')
Do đó, đa thức
s4+3s3-15s2-2s+9
sẽ được nhập vào:
C = s^4+3*s^3-15*s^2-2*s+9
Thay vì sử dụng hàm roots, ta có thể sử dụng hàm zero để tìm nghiệm của đa thức.
zero(C)
Ta cũng có thể nhân hai đa thức với nhau sử dụng biến số s. Ví dụ:
i = s+2;
j = s^2+4*s+8;
k = i*j
Hãy nhập đa thức sau vào MATLAB sử dụng biến s:
5s4 +5s3-8s2+15s+1
5s6+s3-18s2+7s
Tìm nghiệm của các đa thức trên sử dụng lệnh zero
1.4 Ma trận
Biểu diễn ma trận trong MATLAB cũng giống như của một vector, ngoại trừ việc
mỗi hàng của phần tử được tách bởi một dấu chấm phẩy (;).
2
B = [1 2 3 4; 5 6 7 8; 9 10 11 12]
Ma trận trong MATLAB có thể được biến đổi theo nhiều cách:
Tìm ma trận chuyển vị của B bằng cách:
C = B'
Nhân các phần tử tương ứng của ma trận với nhau bằng cách sử dụng toán tử .*
E = [1 2; 3 4]
F = [2 3; 4 5]
G = E.*F
Tìm nghịch đảo của một ma trận bằng lệnh inv
X = inv(E)
Truy xuất tất cả các hàng của cột 1 trong ma trận B
Z = B(:,1)
Truy xuất tất cả các hàng của cột cuối trong ma trận B
Z1 = B(:,end)
Truy xuất tất cả các cột của hàng 1 trong ma trận B
W = B(1,:)
Truy xuất tất cả các cột của hàng cuối trong ma trận B
W1 = B(end,:)
Tìm giá trị riêng của ma trận bằng lệnh eig
eig(E)
1.5 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ấy tấ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ị
t = 0:0.25:7;
y = sin(t)
plot(t,y)
title('Sóng sin như một hàm theo thời gian')
xlabel('Thời gian (s)')
ylabel('Độ lớn')
3
1.6 Bài tập thực hành
1) Cho ma trận A, B và C
10 2 3 1
3 4
A 20 4 ; B 10 2 ; C
3 6 0 5 6 1
4
BÀI 2: GIỚI THIỆU VỀ SIMULINK TOOLBOX
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ệ khô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ện ban đầ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ều phần tử của sơ đồ khối có sẵn, như là hàm truyền (transfer
function), điểm tổng (summing junctions) … 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ệ.
2.1 Những phần tử cơ bản
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), ngõ ra (output) và hiện tí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.
Những khối hay sử dụng trong Simulink
Khối Step (ở thư viện Simulink \ Sources) có chức năng xuất ra tín
hiệu hàm nấc. Double click vào khối này để cài đặt các thông số:
Step time: khoảng thời gian ngõ ra chuyển sang mức Final
value kể từ lúc bắt đầu mô phỏng.
Initial value: Giá trị đầu.
Final value: Giá trị cuối. Cài đặt theo giá trị ta muốn tác
động tới hệ thống. Nếu là hàm nấc đơn vị thì giá trị này
bằng 1.
Sample time : thời gian lấy mẫu.
Khối Mux (ở thư viện Simulink \ Signals Routing) là bộ ghép
kênh nhiều ngõ vào 1 ngõ ra, từ ngõ ra này ta đưa vào Scope để
xem nhiều tín hiệu trên cùng một cửa sổ. Double click vào khối
này để thay đổi số kênh đầu vào (trong mục Number of inputs).
5
Khối Saturation (ở thư viện Simulink \ Discontinuities) là một
khâu bão hòa. Các thông số cài đặt:
Upper limit : giới hạn trên. Nếu giá trị đầu vào lớn hơn
upper limit thì ngõ ra luôn bằng giá trị Upper limit.
Lower limit : giới hạn dưới. Nếu giá trị đầu vào nhỏ hơn
Lower limit thì ngõ ra luôn bằng giá trị Lower limit
Khối Transfer Fcn (ở thư viện Simulink \ Continuous) là hàm
truyền của hệ tuyến tính. Double click để thay đổi bậc và các hệ
số của hàm truyền. Cài đặt các thông số:
Numerator : các hệ số của đa thức tử số
Denominator : các hệ số của đa thức mẫu số
Khối Scope (ở thư viện Simulink \ Sinks) là cửa sổ xem các tín
hiệu theo thời gian, tỉ lệ xích của các trục được điều chỉnh tự động
để quan sát tín hiệu một cách đầy đủ.
2.2 Các bước xây dựng mô hình trên Simulink
Khởi động Simulink bằng cách click vào biểu tượng trên thanh công cụ hoặc gõ
lệnh >>simulink.
Tiếp đó, chọn Blank Model, sẽ hiện ra giao diện làm việc simulink
6
Môi trường làm việc của simulink
Cửa sổ này cho phép “nhấp-kéo-thả” vào từng khối chức năng trong thư viện
simulink vào môi trường làm việc của simulink.
7
2.3 Bài tập thực hành
1) Dựa vào các khối ở bảng trên sinh viên hãy xây dựng mô hình sau:
Sau đó nhấp đúp vào khối Step thay đổi các thông số và bấm Run sau đó quan sát
đáp ứng trong khối Scope.
2) Xây dựng mô hình sau trên simulink
8
BÀI 3: MÔ TẢ TOÁN HỌC CỦ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ý (physical laws) 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àm truyền (transfer function) và không gian
trạng thái (state-space) của các hệ động học được giới thiệu.
3.1 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ương trình vi phân bậc nhất (first-order differential equations):
f x t , u t , t 1
dx
x
dt
Trong đó:
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ủa khối lượng (mass).
u(t) là vector đầu vào đối với hệ ở thời điểm t
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
(time derivative) hay tốc độ thay đổi (rate of change) của vector trạng thái
dx/dt, trong một thời điểm cụ thể.
3.2 Mô tả bằng không gian trạng thái (state-space representation)
Đối với các hệ tuyến tính bất biến theo thời gian – LTI, phép biểu diễn không gian
biến trạng thái chuẩn được cho bởi:
x Ax Bu
(2)
y Cx Du
Trong đó:
x là vector các biến trạng thái (vector of state variables);
̇ là đạo hàm theo thời gian (time derivative) của vector trạng thái;
u là đầu vào hoặc vector điều khiển (control vector);
y là vector đầu ra (output vector);
A là ma trận hệ thống (system matrix);
B là ma trận đầu vào (input matrix);
C là ma trận đầu ra;
D là ma trận truyền trực tiếp (feedthrough/feedforward matrix).
Mô tả bằng không gian trạng thái, còn được xem như mô tả ở miền thời gian (time-
domain representation), có thể dễ dàng giải quyết các hệ nhiều đầu vào/nhiều đầu ra
(multi-input/multi-output (MIMO)), các hệ với các điều kiện ban đầu khác 0 (non-
zero initial conditions), và các hệ không tuyến tính thông qua phương trình (1). Do
9
vậy, mô tả bằng không gian trạng thái được dùng rộng rãi trong lý thuyết điều khiển
“hiện đại” (modern control theory).
3.3 Bài tập thực hành 1
Cho phương trình trạng thái:
x1 1 2 x1 0
x 3 4 x 1 u
2 2
Và phương trình ngõ ra
x
y 1 0 1
x2
Biểu diễn phương trình trạng thái trong MATLAB
A=[ 1 2; 3 4];
B=[0;1];
C=[1 0];
D=0;
sys=ss(A,B,C,D)
sys =
A =
x1 x2
x1 1 2
x2 3 4
B =
u1
x1 0
x2 1
C =
x1 x2
y1 1 0
D =
u1
y1 0
10
Nhấp đôi vào khối trên để nhập các ma trận A, B, C và D
11
Biểu diễn hàm truyền trong simulink
Để biểu diễn hàm truyền trong simulink ta sử dụng khối Transfer Fcn
s 1
b) G( s) 2
5s 8s 3
s2 1
c) G( s) 3
s 2s 4
2) Xây dựng mô hình sau trên simulink
a) Mô hình 1
12
b) Mô hình 2
3) Nhập các hàm truyền ở câu 1 vào khối Transfer Fcn và xây dựng mô hình
simulink như mô hình 2 (câu 2). Quan sát đáp ứng.
13
BÀI 4: KHẢO SÁT TÍNH ỔN ĐỊNH CỦA HỆ THỐNG
4.1 Các tiêu chuẩn ổn định
Tiêu chuẩn đại số
Tiêu chuẩn Routh
Tiêu chuẩn Hurwitz
Phương pháp quỹ đạo nghiệm số
Tiêu chuẩn ổn định tần số
Tiêu chuẩn ổn định Nyquist
Tiêu chuẩn ổn định Bode
Trong phạm vi bài thực hành này, chúng ta dùng phương pháp quỹ đạo nghiệm số
và tiêu chuẩn Bode để xét tính ổn định của hệ thống.
4.2 Phương pháp quỹ đạo nghiệm số
Hệ thống có tất cả các cực có phần thực âm (tất cả các cực đều nằm bên trái mặt
phẳng phức Re{pi} < 0) hệ thống ổn định.
14
Bài toán ví dụ 1:
Cho hệ thống điều khiển có hàm truyền như sau:
1
G( s)
s( s 2)( s 2 s 1)
Xét tính ổn định của hệ thống trên.
>> num=1
>> den=convn([1],[1 1],[1 1 1])
>> G=tf(num,den)
>> rlocus(G) %lenh ve quy dao nghiem so
15
>> num = 10
>> den = [2 3 1]
>> G=tf(num,den)
>> bode(G)
>> margin(G) %lenh tim do du tru bien, do du tru pha
s 1
b) G( s) 2
5s 8s 3
s2 1
c) G( s) 3
s 2s 4
10
d) G( s)
s( s 1)( s 2)
16
BÀI 5: THIẾT KẾ BỘ ĐIỀU KHIỂN PID
Trong phần này, ta sẽ tìm hiểu về một cấu trúc bộ bù hồi tiếp hay phản hồi
(feedback compensator structure) đơn giản nhưng linh hoạt: Bộ điều khiển tỉ lệ-tích
phân-vi phân (Proportional-Integral-Derivative). Bộ điều khiển PID được ứng dụng
rộng rãi bởi vì nó rất dễ hiểu (understandable) và hiệu quả (effective). Một điểm
mạnh khác của nó là tất cả các kỹ sư đều có khái niệm về vi phân (differentiation)
và tích phân (integration), do đó họ có thể áp dụng hệ thống điều khiển ngay cả khi
không hiểu sâu về lý thuyết điều khiển. Hơn nữa, mặc dù bộ bù là đơn giản, nó có
thể thu thập lịch sử của hệ (thông qua việc tích phân) và dự đoán (anticipate) hành
vi của hệ (thông qua việc vi phân). Ta sẽ thảo luận sự ảnh hưởng của mỗi tham số
PID lên động học của hệ vòng kín (closed-loop system) và sẽ trình bài cách sử dụng
một bộ điều khiển PID để cải thiện hoạt động của một hệ thống.
5.1 Tổng quát về PID
Trong phần thực hành này, ta sẽ xem xét hệ hồi tiếp âm đơn vị (unity-feedback
system) sau:
Đầu tiên, hãy xem bộ điều khiển PID làm việc như thế nào trong một hệ vòng kín
(closed-loop system) bằng cách sử dụng sơ đồ trên. Biến e biểu thị sự sai lệch
(error), là sự khác biệt giữa đầu ra mong muốn r (desired output or reference) và
đầu ra thực tế y (actual output). Tín hiệu sai lệch này e được cấp tới bộ điều khiển
PID, và bộ điều khiển tính toán cả đạo hàm và tích phân của tín hiệu sai lệch này
theo thời gian (error signal with respect to time). Tín hiệu điều khiển u (control
signal) tới plant (đối tượng điều khiển) bằng với độ lợi tỉ lệ Kp (proportional gain)
nhân với độ lớn của sai lệch cộng với độ lợi tích phân Ki (integral gain) nhân với
tích phân của sai lệch cộng với độ lợi vi phân Kd (derivative gain) nhân với vi phân
của sai lệch.
Tín hiệu điều khiển u được cấp tới plant và đầu ra mới y được thu thập. Đầu ra mới
này sau đó được cấp ngược về (hồi tiếp) và so sánh với giá trị tham chiếu đầu ra
mong muốn (reference) để tìm tín hiệu sai lệch mới. Bộ điều khiển lấy tín hiệu sai
17
lệch mới này và tính toán để có một giá trị đầu vào điều khiển mới. Quá trình
(process) này cứ như vậy tiếp tục.
Hàm truyền của một bộ điều khiển PID được trình bày như sau (2):
Ki
GPID ( s) K p Kd s
s
trong đó:
Kp = độ lợi tỉ lệ (proportional gain)
Ki = độ lợi tích phân (integral gain)
Kd = độ lợi vi phân (derivative gain)
Cho Kp=1, Ki=1, Kd=1, hãy nhập mô hình hàm truyền của bộ điều khiển PID vào
MATLAB.
Kp = 1;
Ki = 1;
Kd = 1;
s = tf('s');
C = Kp + Ki/s + Kd*s
5.2 Những tính chất của hạng tử (term) P, I, D
Tăng độ lợi tỉ lệ (Kp) làm tăng tín hiệu điều khiển đối với cùng mức độ sai
lệch. Bộ điều khiển sẽ tác động mạnh hơn cho cùng một mức độ sai lệch, do đó có
xu hướng làm cho hệ vòng kín phản ứng nhanh hơn, nhưng cũng làm tăng độ vọt lố
(overshoot). Một ảnh hưởng khác của việc tăng Kp là nó có xu hướng làm giảm,
nhưng không loại trừ, sai lệch trạng thái ổn định (steady-state error).
Việc thêm vào hạng tử vi phân (Kd) vào bộ điều khiển giúp thêm vào khả
năng “dự đoán” (“anticipate”) sai lệch của bộ điều khiển. Với điều khiển tỉ lệ đơn
giản, nếu Kp là cố định (fixed), cách duy nhất để tín hiệu điều khiển tăng là khi sai
lệch tăng. Với điều khiển vi phân, tín hiệu điều khiển có thể lớn nếu sai lệch bắt đầu
tăng lên, ngay cả khi độ lớn của sai lệch vẫn còn tương đối nhỏ. Sự “dự đoán” này
có xu hướng thêm vào hệ thống sự tắt dần (add damping), do đó làm giảm độ vọt lố.
Tuy nhiên, việc thêm vào hạng tử vi phân không có ảnh hưởng đến sai lệch trạng
thái ổn định.
Thêm vào bộ điều khiển hạng tử tích phân (Ki) có xu hướng làm giảm sai
lệch trạng thái ổn định. Nếu có một sai lệch ổn định, kéo dài, bộ tích phân tích lũy
và tích lũy (build and build), do đó làm tăng tín hiệu điều khiển và làm giảm sai
lệch xuống. Một hạn chế (drawback) của hạng tử tích phân là nó có thể làm cho hệ
trì truệ (sluggish) và dao động (oscillatory).
Những ảnh hưởng tổng thể của các thông số Kp, Kd, Ki của bộ điều khiển lên
một hệ vòng kín được tóm tắt trong bảng dưới. Chú ý rằng, bảng này đúng trong
nhiều trường hợp nhưng ko phải tất cả. Nếu bạn thật sự muốn biết ảnh hưởng của
từng độ lợi, bạn phải làm nhiều phân tích hơn, hoặc là thực hành trên hệ thống thực.
18
5.3 Các tiêu chí chất lượng hệ thống
ymax yxl
POT % .100%
yxl
5.3.3 Thời gian đáp ứng
Thời gian tăng - tr (rise time): là thời gian đáp ứng của hệ thống tăng từ
10% đến 90% giá trị xác lập của nó.
19
Thời gian quá độ - ts (settling time): là thời gian mà sau đó đáp ứng của hệ
thống có sai số nằm trong khoảng ε% (ε thường là 2% hoặc 5%) quanh giá trị
xác lập.
20
5.5 Bài toán ví dụ (example problem)
Giả sử ta có hệ bộ giảm chấn-lò xo-khối lượng (mass-spring-damper system) đơn
giản:
Hàm truyền giữa lực đầu vào F(s) (input force) và độ chuyển vị đầu ra X(s) (output
displacement) trở thành:
X s 1
2
F s ms bs k
Cho m = 1 kg
b = 10 N s/m
k = 20 N/m
F=1N
Hãy thay các giá trị trên vào hàm truyền vừa có được.
Hãy tạo một m-file để tìm đáp ứng step của hàm truyền vừa tìm được.
Vào File/New/M-File để tạo một m-file
Nhập vào:
s=tf('s');
s=1/(s^2+10*s+20);
step(G)
Lưu file với tên bất kỳ và gọi tên file ở cửa sổ lệnh
Thực hiện lại việc này bằng cách sử dụng Simulink.
21
Quan sát đáp ứng khi sử dụng M-file và simulink,
Ta thấy, độ lợi (DC gain) của hàm truyền của plant (đối tượng điều khiển) là 1/20,
do đó 0.05 là giá trị sau cùng (final value) của đầu ra đối với một đầu vào step đơn
vị. Điều này có nghĩa là sai lệch ở trạng thái ổn định (steady-state error) là 0.95, khá
lớn. Hơn thế nữa, thời gian tăng (rise time) là khoảng 1s, và thời gian quá độ
(settling time) là khoảng 1.5s. Ta hãy thiết kế một bộ điều khiển mà sẽ làm giảm
thời gian tăng, giảm thời gian quá độ, và loại bỏ sai lệch trạng thái ổn định.
Điều chỉnh các thông số PID
1) Điều khiển tỉ lệ (Proportional control)
Từ bảng trên, ta thấy rằng bộ điều khiển tỉ lệ (Kp) làm giảm thời gian tăng (rise
time), và tăng độ vọt lố, và giảm sai lệch trạng thái ổn định. Hàm truyền vòng kín
T(s) của hệ hồi tiếp đơn vị với bộ điều khiển tỉ lệ có dạng sau, trong đó X(s) là đầu
ra (bằng với Y(s)) và tham chiếu R(s) (reference)) là đầu vào (chú ý, không phải
F(s)).
X s Kp
T s 2
R s s 10s 20 K p
Hàm truyền vòng kín T(s) đã được rút ra như thế nào ?
X s C s .G s Kp
T s 2
R s 1 C s .G s s 10s 20 K p
22
Cho độ lợi tỉ lệ Kp = 300:
Hãy thay đổi m-file để tìm hàm truyền vòng kín của hệ sử dụng lệnh feedback?
Tìm đáp ứng step của hàm truyền vòng kín (thời gian mô phỏng từ 0 đến 2s)?
s=tf('s');
G=1/(s^2+10*s+20);
Kp=300;
C=Kp;
sys=feedback(G*C,1)
t=0:0.1:2;
step(sys,t)
Hãy dùng simulink để biểu diễn toàn bộ hệ trên ?
23
K p Kd s
s 10 K d s 20 K p
2
10s 300
s 20s 320
2
Hãy thay đổi m-file để tìm hàm truyền vòng kín của hệ sử dụng lệnh feedback?
Tìm đáp ứng step của hàm truyền vòng kín (thời gian mô phỏng từ 0 đến 2s)?
s=tf('s');
G=1/(s^2+10*s+20);
Kp=300;
Kd=10;
C=Kp + Kd*s;
sys=feedback(G*C,1)
t=0:0.1:2;
step(sys,t)
Hãy dùng simulink để biểu diễn toàn bộ hệ trên?
24
1 1
K p Ki 2
s s 10s 20
1 1
1 K p Ki 2
s s 10s 20
K p s Ki
3
s 10s 20 K p s Ki
2
Hãy thay đổi m-file để tìm hàm truyền vòng kín của hệ sử dụng lệnh feedback?
Tìm đáp ứng step của hàm truyền vòng kín (thời gian mô phỏng từ 0 đến 2s)?
s=tf('s');
G=1/(s^2+10*s+20);
Kp=30;
Ki=70;
C=Kp + Ki*(1/s);
sys=feedback(G*C,1)
t=0:0.1:2;
step(sys,t)
Hãy dùng simulink để biểu diễn toàn bộ hệ trên?
25
Ki = 300;
Kd = 50;
C=Kp + Ki*(1/s) + Kd*s;
sys=feedback(G*C,1)
t=0:0.1:2;
step(sys,t)
Hãy dùng simulink để biểu diễn toàn bộ hệ trên?
26
BÀI 6: ỨNG DỤNG SIMULINK TRONG MÔ PHỎNG ĐIỀU KHIỂN
2) Từ phương trình hệ thống ta thấy dv/dt (vdot) bằng tích của thành phần
(1/m) và thành phần tổng (u-bv), nên ta thêm khối 1/m ngay trước khối
tích phân
Đặt vào khối „Gain‟ trong thư viện Math;
Nhấp đúp chuột vào khối này để thay đổi độ lợi thành 1/m.
27
3) Đặt khối tổng với 2 ngõ vào „+-„, ngõ vào „+‟ sẽ được nối với u, ngõ vào „-‟
sẽ được nối với thành phần bv để được (u-bv)
Đặt vào mô hình khối „Sum‟ trong thư viện Math;
Nhấp đúp vào khối này để đổi ngõ vào từ „++‟ sang „+-‟
4) Đặt thêm khối ngõ vào „Step‟ (ngõ vào u) và khối ngõ ra „Scope‟ (ngõ ra v)
cho mô hình
Đặt khối „Step‟ trong thư viện „Sources‟ biên độ u ngay ngõ vào;
Đặt khối „Scope‟ trong thư viện „Sink‟ ngay ngõ ra v.
28
6.2 Xây dựng mô hình điều khiển vị trí động cơ DC
29
Kết hợp 2 phương trình:
Đặt vào mô hình khối „Step‟ để làm tín hiệu tham khảo, khối „Scope‟ để quan sát
đáp ứng.
Hãy gán trị cho tất cả các thông số của mô hình, thực hiện mô phỏng và quan sát
đáp ứng.
Hãy thay đổi ngõ vào mô hình bằng khối tạo xung vuông. Mô phỏng, quan sát kết
quả và nhận xét.
6.3 Xây dựng mô hình con lắc ngược
Cho bởi phương trình vi phân:
x
1
M m
F ml 2 sin ml cos bx
1
mlxcos mglsin
I ml 2
Trong đó: M = dd/15; m = mm/10; l = yyyy/1000; b = 0.1; I = 0.006; g = 9.8;
Với dd là ngày sinh, mm là tháng sinh, yyyy là năm sinh của sinh viên.
Yêu cầu: Xây dựng mô hình và mô phỏng con lắc ngược trên Simulink.
30