2016-05-18 1 views
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); 

答えて

1

私にはうまく見えます。ただし、ステップ入力の漸近的なトラッキングが必要な場合は、システムのDCゲインに応じてリファレンス信号を適切にスケーリングする必要があります。また、積分動作を導入する必要があります。これは既にMATLABで利用可能です - 試してみてくださいhelp lqi

関連する問題