Интерполяция и приблизительная обратная связь для задачи линейного квадратичного c регулятора (LQR) - PullRequest
0 голосов
/ 20 февраля 2020

Задача состоит в том, чтобы выполнить следующий численный эксперимент:

Предположим, у меня есть управляемая динамическая система второго порядка с заданным индексом производительности enter image description here

Затем я решил систему в MATLAB и нашел траектории состояния и управления следующим образом:

clear all
close all
clc
x10=2; 
x20=-3; 
X0=[x10;x20];
A=[0 1;-2 1]; 
B=[0;1]; 
Q=[2 3;3 5]; 
R=[0.25]; 
[K,P,EV]=lqr(A,B,Q,R) 
BIN=[0;0]; 
C= [1 1];
D= [1] ;
tfinal=10;
t=0:0.05:tfinal;
[Y,X,t]=initial(A-B*K,BIN,C,D,X0,t);
x1t=[1 0]*X'; 
x2t=[0 1]*X';
ut=-K*X' ;
figure(1)
plot(t,x1t, 'k' ,t,x2t, 'k'); grid on
xlabel ( 't' )
figure(2)
plot (t ,ut , ' k ' ); grid on
xlabel ('t')

Мои выводы: Состояния

enter image description here

И контроль enter image description here

Теперь в вопросе говорится: «выдумка», что вы знаете значения обратной связи только на определенную сетку, создайте такую ​​сетку, указав 'h', и оцените оптимальную обратную связь только в этих точках и используйте некоторую квазиперполяцию для построения приблизительной обратной связи для всего пространства состояний R ^ {2}.

Мои запросы выглядят следующим образом:

(1) Итак, здесь усиление K представляет собой (1X2) вектор-строку, насколько я понимаю, мне нужно распределить по сетке состояния $ x_1 (t) $ и $ x_2 (t) $ на некоторый размер шага 'h' на определенном интервале, а затем оцените обратную связь i e K * X = (k1 * x1 + k2 * x2), а затем использовать эти значения для интерполяции, я прав?

(2) Так что после решения с использованием приведенного выше кода я получил состояния x1 и x2 как какой-то (201X1) вектор для временных шагов, которые я выбрал от t = 0 до tf = 10 с шагом 0,05, теперь я не понимаю, как создать сетку для вектора x1 (t) и x2 (t) с использованием некоторого размера сетки в некотором регионе ? если я могу сделать это, я могу найти оптимальную обратную связь, умножив K компонентно с сеточными состояниями, а затем интерполировать.

Я не уверен, если я думаю в правильном направлении, любая помощь будет оценена.

...