Professional Documents
Culture Documents
Bt Thuong Cuyen
Bt Thuong Cuyen
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
Ra=eye(6);
%% 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]';
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];
% 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');
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.