Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLAB中求解矩阵Riccati方程?_Matlab_Matrix_Controls_Mathematical Optimization_Nonlinear Optimization - Fatal编程技术网

在MATLAB中求解矩阵Riccati方程?

在MATLAB中求解矩阵Riccati方程?,matlab,matrix,controls,mathematical-optimization,nonlinear-optimization,Matlab,Matrix,Controls,Mathematical Optimization,Nonlinear Optimization,我在Matlab中求解这个矩阵Riccatidiff方程: 我对此有一些问题 我在Matlab中求解此ODE的代码 function pdot = rica( p ) B1=[0.8224 0.2226 0.4397; 0.3604 0.2226 0.4397; 0.3604 0.1 0.5]; A2=[ 0.3604 0.2226 0.4397;0.8224 0.2226 0.4397; 0.3604 0.1 0.5]; R1=0.1*eye(3,3); R2=0.03*eye(3,3);

我在
Matlab
中求解这个矩阵
Riccati
diff方程:

我对此有一些问题

我在Matlab中求解此ODE的代码

function pdot = rica( p )
B1=[0.8224 0.2226 0.4397; 0.3604 0.2226 0.4397; 0.3604 0.1 0.5];
A2=[ 0.3604 0.2226 0.4397;0.8224 0.2226 0.4397; 0.3604 0.1 0.5];
R1=0.1*eye(3,3);
R2=0.03*eye(3,3);
IR2=33.3333*eye(3,3);
gamma=150;
Q1=eye(3,3);
Q2=eye(3,3);
B2=102.0408*eye(3,3);%equation(20)
G2=102.0408*eye(3,3);
T2=(1/(2*gamma^2)*G2*(G2')-B2*IR2*B2')/10^5;
%T2=[3.4708 0 0;0 3.4708 0; 0 0 3.4708];
p1=[p(1) p(2) p(3); p(4) p(5) p(6); p(7) p(8) p(9)];
p2=[p(10) p(11) p(12); p(13) p(14) p(15); p(16) p(17) p(18)];
pdot1=p1*B1/R1*B1'*p1-Q1;
pdot1=pdot1(:);
pdot2=-A2.'*p2-p2*A2-p2*T2*p2-Q2;%equation(98)
pdot2=pdot2(:);
pdot=[pdot1;pdot2];
pdot=pdot(:);
end
执行此脚本并打印结果:

[t,p]=ode45(@(t,p)rica(p),[0 50],[1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1])
%--------------------------------------
tt=0:50/(length(t)-1):50;
figure
subplot(3,3,1)
plot(tt,p(:,1))
subplot(3,3,2)
plot(tt,p(:,2))
subplot(3,3,3)
plot(tt,p(:,3))
subplot(3,3,4)
plot(tt,p(:,4))
subplot(3,3,5)
plot(tt,p(:,5))
subplot(3,3,6)
plot(tt,p(:,6))
subplot(3,3,7)
plot(tt,p(:,7))
subplot(3,3,8)
plot(tt,p(:,8))
subplot(3,3,9)
plot(tt,p(:,9))

figure
subplot(3,3,1)
plot(tt,p(:,10))
subplot(3,3,2)
plot(tt,p(:,11))
subplot(3,3,3)
plot(tt,p(:,12))
subplot(3,3,4)
plot(tt,p(:,13))
subplot(3,3,5)
plot(tt,p(:,14))
subplot(3,3,6)
plot(tt,p(:,15))
subplot(3,3,7)
plot(tt,p(:,16))
subplot(3,3,8)
plot(tt,p(:,17))
subplot(3,3,9)
plot(tt,p(:,18))
我想可能是因为ode45采用相同的tspan或相同的选项来求解这两个方程,或者一个非线性ODE系统从未包含两个矩阵Riccati方程?有人能给我一些解释吗

对于
$T2$

现在,p1和p2用于
$T2/10^5$


stackoverflow.com上没有LaTeX渲染,请回答您的问题以使其更具可读性。1)的答案可通过阅读documentation@AnderBiguri是的,在矩阵A2后面加上点,用于传输其所有元素,其他问题呢?有什么建议吗