Solves the Riccati differential equation for the finite-horizon linear quadratic regulator.
NOTE: This function requires the IVP Solver Toolbox.
[t,P] = solve_riccati_ode(A,B,Q,R,[],PT,tspan)
[t,P] = solve_riccati_ode(A,B,Q,R,S,PT,tspan)
[t,P] = solve_riccati_ode(A,B,Q,R,[],PT,tspan)
solves the Riccati differential equation for , given the state matrix , input matrix , state weighting matrix , input weighting matrix , terminal condition , and the time span tspan
over which to solve. tspan
can be specified either as the 1×2 double [t0,T]
where is the initial time and is the final time, or as a 1×(N+1) vector of times [t0,t1,...,tNminus1,T]
at which to return the solution for . It is assumed that the cross-coupling weighting matrix is .
[t,P] = solve_riccati_ode(A,B,Q,R,S,PT,tspan)
does the same as the syntax above, but this time the cross-coupling weighting matrix is specified.
The time vector, , is defined as
The ith "layer" of P
(i.e. P(:,:,i)
) stores , where is the time stored in the ith element of the time vector, .
- See "EXAMPLES.mlx" or the "Examples" tab on the File Exchange page for examples.
- See Riccati_Differential_Equation.pdf (also included with download) for additional documentation.