Borrar filtros
Borrar filtros

How can I solve the Riccati equation with a variable?

2 visualizaciones (últimos 30 días)
senhan yao
senhan yao el 23 de Abr. de 2021
Respondida: Jaynik el 4 de Abr. de 2024
I have the fixed value of A,B,Q and a variable R. How can I determine the solution of the Riccati equation P as a function of r?
A=[0 1 0;0 0 1;0 0 0];
B=[0;0;0];
Q=[1 0 0;0 0 0;0 0 0];
R=r;
eqn= A'*P+P*A+Q-P*B*R^(-1)*B'*P==0

Respuestas (1)

Jaynik
Jaynik el 4 de Abr. de 2024
For determining the solution of the Riccati equation, you can use the "care" or "icare" function from the "Control System Toolbox". These functions are used to compute unique solution for the given equation.
As per the documentation, starting in R2019a, it is recommended to use the "icare" function to solve the equation as it has improved accuracy through better scaling. Here is a sample code you can refer:
A = [0 1 0; 0 0 1; 0 0 0];
B = [0; 0; 0];
Q = [1 0 0; 0 0 0; 0 0 0];
R = r;
% Solving the Riccati equation using care
[P1, ~, ~] = care(A, B, Q, R);
% Solving the Riccati equation using icare
[P2,~,~,info] = icare(A, B, Q, R);
You can refer the following documentation to know more about each functions:

Categorías

Más información sobre Matrix Computations en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by