Home > freetb4matlab > control > dre.m

dre

PURPOSE ^

% Solve the differential Riccati equation

SYNOPSIS ^

function [tvals, Plist] = dre (sys, Q, R, Qf, t0, tf, Ptol, maxits)

DESCRIPTION ^

% -*- texinfo -*-
% @deftypefn {Function File} {[@var{tvals}, @var{plist}] =} dre (@var{sys}, @var{q}, @var{r}, @var{qf}, @var{t0}, @var{tf}, @var{ptol}, @var{maxits})
% Solve the differential Riccati equation
% @ifinfo
% @example
%   -d P/dt = A'P + P A - P B inv(R) B' P + Q
%   P(tf) = Qf
% @end example
% @end ifinfo
% @iftex
% @tex
% $$ -{dP \over dt} = A^T P+PA-PBR^{-1}B^T P+Q $$
% $$ P(t_f) = Q_f $$
% @end tex
% @end iftex
% for the @acronym{LTI} system sys.  Solution of 
% standard @acronym{LTI} state feedback optimization
% @ifinfo
% @example
%   min int(t0, tf) ( x' Q x + u' R u ) dt + x(tf)' Qf x(tf)
% @end example
% @end ifinfo
% @iftex
% @tex
% $$ \min \int_{t_0}^{t_f} x^T Q x + u^T R u dt + x(t_f)^T Q_f x(t_f) $$
% @end tex
% @end iftex
% optimal input is
% @ifinfo
% @example
%   u = - inv(R) B' P(t) x
% @end example
% @end ifinfo
% @iftex
% @tex
% $$ u = - R^{-1} B^T P(t) x $$
% @end tex
% @end iftex
% @strong{Inputs}
% @table @var
% @item sys
% continuous time system data structure
% @item q
% state integral penalty
% @item r
% input integral penalty
% @item qf
% state terminal penalty
% @item t0
% @itemx tf
% limits on the integral
% @item ptol
% tolerance (used to select time samples; see below); default = 0.1
% @item maxits
% number of refinement iterations (default=10)
% @end table
% @strong{Outputs}
% @table @var
% @item tvals
% time values at which @var{p}(@var{t}) is computed
% @item plist
% list values of @var{p}(@var{t}); @var{plist} @{ @var{i} @}
% is @var{p}(@var{tvals}(@var{i}))
% @end table
% @var{tvals} is selected so that:
% @iftex
% @tex
% $$ \Vert plist_{i} - plist_{i-1} \Vert < ptol $$
% @end tex
% @end iftex
% @ifinfo
% @example
% | Plist@{i@} - Plist@{i-1@} | < Ptol
% @end example
% @end ifinfo
% for every @var{i} between 2 and length(@var{tvals}).
% @end deftypefn

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:
Generated on Sat 16-May-2009 00:04:49 by m2html © 2003