0
私はMatlab(mファイル)のMIMOシステムに単純なLQRを適用したいが、いくつかの結果があるが、それが意味をなさないかどうかはわからないが、コードをチェックして、コメント。matlabでMIMOシステムのLQRを実装する方法は?
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);