Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CƠ KHÍ- BỘ MÔN CƠ ĐIỆN TỬ


--------------------------
ĐIỀU KHIỂN HỆ THỐNG
ĐA TÁC NHÂN
----------
Bài tập kiểm tra thường xuyên

Giảng viên hướng dẫn: Ts. Trần Ngô Quốc Huy


Sinh viên thực hiện: Nguyễn Như Đạt
Nguyễn Tiến Đạt

Đà Nẵng, tháng 12 năm 2023

Đề bài: Xét hệ thống rời rạc LTI:


[ 1 1] [1]
x(k + 1) = 0 1 x(k) + 0.7 u(k)

Giải quyết vấn đề tối ưu theo MPC với các ma trận trọng số là:
Q = I, R = 1, vùng dự báo Np = 6.
Các ràng buộc: −2 ≤ x1 ≤ 2, −5 ≤ x2 ≤ 5, −1 ≤ u ≤ 1
Bài giải tay:
Chương trình mô phỏng MPC
clear all
close all
clc

%% Define parameters of discrete system


A=[1 1;0 1];
B=[1 0.7]';
C=[1 1];
D=0;
N=6;

%% Rewite sys in a compact matrix form with prediction


horizon N = 6
% X = Aa.x(t) + Ba.U where U=[u(0) u(1) u(2)]; X=[x(1)'
x(2)' x(3)')]'
Aa=[A;A^2;A^3;A^4;A^5;A^6];
Ba=[ B zeros(size(B)) zeros(size(B))
zeros(size(B)) zeros(size(B)) zeros(size(B));...
A*B B zeros(size(B)) zeros(size(B))
zeros(size(B)) zeros(size(B));...
(A^2)*B A*B B zeros(size(B)) zeros(size(B))
zeros(size(B));...
(A^3)*B (A^2)*B A*B B zeros(size(B))
zeros(size(B));...
(A^4)*B (A^3)*B (A^2)*B A*B B
zeros(size(B));...
(A^5)*B (A^4)*B (A^3)*B (A^2)*B A*B B];
R=1;
Q=eye(2);

Ra=eye(6);

Qa=[ Q zeros(size(Q)) zeros(size(Q))


zeros(size(Q)) zeros(size(Q)) zeros(size(Q));...
zeros(size(Q)) Q zeros(size(Q))
zeros(size(Q)) zeros(size(Q)) zeros(size(Q));...
zeros(size(Q)) zeros(size(Q)) Q
zeros(size(Q)) zeros(size(Q)) zeros(size(Q));...
zeros(size(Q)) zeros(size(Q)) zeros(size(Q))
Q zeros(size(Q)) zeros(size(Q));...
zeros(size(Q)) zeros(size(Q)) zeros(size(Q))
zeros(size(Q)) Q zeros(size(Q));...
zeros(size(Q)) zeros(size(Q)) zeros(size(Q))
zeros(size(Q)) zeros(size(Q)) Q];
P=Q;

%% Define QP constraints
% -2 <= x1 <= 2; -5 <= x2 <= 5
fx=[eye(2);-eye(2)];
gx=[2 5 2 5]';

% -1 <= u <= 1
fu=[1 -1]';
gu=[1 1]';

%% Formule the system under MPC


% Constraint
% Fx.X <= Gx
% Fu.U <= Gu
Fx=[fx zeros(4,2) zeros(4,2) zeros(4,2) zeros(4,2)
zeros(4,2);...
zeros(4,2) fx zeros(4,2) zeros(4,2) zeros(4,2)
zeros(4,2);...
zeros(4,2) zeros(4,2) fx zeros(4,2) zeros(4,2)
zeros(4,2);...
zeros(4,2) zeros(4,2) zeros(4,2) fx zeros(4,2)
zeros(4,2);...
zeros(4,2) zeros(4,2) zeros(4,2) zeros(4,2) fx
zeros(4,2);...
zeros(4,2) zeros(4,2) zeros(4,2) zeros(4,2)
zeros(4,2) fx];

Fu=[ 1 0 0 0 0 0;...
-1 0 0 0 0 0;...
0 1 0 0 0 0;...
0 -1 0 0 0 0;...
0 0 1 0 0 0;...
0 0 -1 0 0 0;...
0 0 0 1 0 0;...
0 0 0 -1 0 0;...
0 0 0 0 1 0;...
0 0 0 0 -1 0;...
0 0 0 0 0 1;...
0 0 0 0 0 -1];
Gx=[gx;gx;gx;gx;gx;gx];
Gu=[gu;gu;gu;gu;gu;gu];
%% Cost function
% v[x(t)]=U'*H*U+2x(t)'*F*U
H=Ba'*Qa*Ba+Ra;
F=(Aa'*Qa*Ba);
Y=Aa'*Qa*Aa;
%Combine constraint G.U <= E.x(t) + S
G=[Fu;...
Fx*Ba];
E=[zeros(12,2);-Fx*Aa];
S=[Gu;Gx];

%% Optimise quadratic sys WITH QUADROG


%Optimise the current state x(k)

% Initial condition
x = [2;1];
u=[];

t_sim = 1:20;
for t = t_sim
options = optimset('Algorithm','active-
set','Display','iter');
u_opt = quadprog(H,F'*x(:,end),G,S+E*x(:,end),[],[],
[],[],[],options);

u=[u u_opt(1)];
x=[x A*x(:,end)+B*u(:,end)];
end
x(:,end)=[];

%% plots

figure;
stem(t_sim,u);
title('the control law with prediction horizon N=6');
xlabel('time');
ylabel('u');

figure;
stem(t_sim,x(1,:));
title('x1sim');

figure;
stem(t_sim,x(2,:));
title('x2sim');

figure
grid on
hold on
scatter(x(1,:),x(2,:),'r');
hold on
plot(x(1,:),x(2,:));
title('xsim');

Kết quả mô phỏng MPC với Np=6

Hình 1: Luật điều khiển đường chân trời dự đoán Np=6


Hình 2: Luật điều khiển đường chân trời dự báo với Np=3.

Hình 3: Ràng buộc của trạng thái x1 và tín Hình 4: Ràng buộc của trạng thái x1
hiệu điều khiển dọc đường chân trời-Np=6. và tín hiệu điều khiển dọc đường chân
trời
Np=3.

Hình 5: Ràng buộc của trạng thái x2 và Hình 6: Ràng buộc của trạng thái x2
tín hiệu điều khiển dọc đường chân trời- và tín hiệu điều khiển dọc đường chân
Np=6. trời-Np=3
Hình 7: Quỹ đạo tham chiếu Np=6. Hình 8: Quỹ đạo tham chiếu Np=3.

So sánh quỹ đạo của vùng dự báo Np = 6 với vùng dự báo Np = 3


- Khi so sánh vấn đề tối ưu theo MPC với các ma trận trọng số quỹ đạo của vùng
dự báo Np = 6 và Np = 3, chúng ta có thể nhận thấy một số khác biệt nhất định
như sau:
+ Thời gian tính toán: Khi tăng số vùng dự báo Np, thời gian tính toán của bài
toán tối ưu cũng sẽ tăng. Do đó, khi Np = 6, thời gian tính toán sẽ lớn hơn so
với Np = 3. Độ chính xác của dự đoán: Khi tăng số vùng dự báo Np, độ chính
xác của dự đoán sẽ được cải thiện. Vì vậy, khi Np = 6, dự đoán sẽ chính xác
hơn so với Np = 3.
+ Độ ổn định của hệ thống: Khi tăng số vùng dự báo Np, độ ổn định của hệ
thống sẽ được cải thiện. Tuy nhiên, điều này cũng phụ thuộc vào việc tối ưu hệ
số trọng số của ma trận quỹ đạo. Số lượng biến tối ưu: Khi tăng số vùng dự báo
Np, số lượng biến tối ưu trong bài toán tối ưu cũng sẽ tăng. Do đó, khi Np = 6,
số lượng biến tối ưu sẽ lớn hơn so với Np = 3, và điều này sẽ làm tăng thời gian
tính toán của bài toán.
+ Khả năng dự đoán tương lai: Khi tăng số vùng dự báo Np, hệ thống sẽ có khả
năng dự đoán tương lai của các biến tốt hơn. Do đó, với Np = 6, hệ thống có
khả năng dự đoán tương lai tốt hơn so với Np = 3.

You might also like