Ich möchte einfache LQR für MIMO-System in Matlab (m-Datei) anwenden, ich habe einige Ergebnisse, aber ich bin mir nicht sicher, ob es sinnvoll ist oder nicht, könnte jemand meinen Code unten brüllen, und geben Sie mir irgendwelche Kommentare.Wie implementiert man LQR für MIMO-System in Matlab?
clear all; close all; clc;
% State-Space model
A = [0 0 1 0 0 0 0; 0 0 0 1 0 0 0; -4.34 0 -0.0882 0 1.24 0 0; 0 0 0 -5 1.4823 3.6 18.75; 0 0 0 0 -.8333 0 0; 0 0 0 0 0 -1 0; 0 0 0 0 -0.0169 0 -0.5];
B = [0 0; 0 0; 0 0; 0 0; 1 0; 0 1; 0 0];
C = [1 0 0 0 0 0 0; 0 1 0 0 0 0 0];
D = zeros(2);
states = {'\psi' '\psi_dot' '\phi' '\phi_dot' '\tau_1' '\tau_2' 'M_R'};
inputs = {'u_1' 'u_2'};
outputs = {'\psi'; '\phi'};
%% LQR
Q = 0.2*diag([1, 1, 1, 1, 1, 1, 1]);
R = diag([1, 1]);
K = lqr(A, B, Q, R);
Ac = (A-B*K);
sys_cl = ss(Ac,B,C,D,'statename',states,'inputname',inputs,'outputname',outputs);
t = 0:0.01:25;
u1 = 0.5*ones(size(t));
u2 = 0.2*ones(size(t));
u = [u1; u2];
[y,t,x] = lsim(sys_cl,u,t);
figure
lsim(sys_cl,u,t);
grid on
figure
step(sys_cl);