Mercurial > forge
changeset 10470:2ef0abc808ad octave-forge
control: rename a variable in dlqe
author | paramaniac |
---|---|
date | Fri, 22 Jun 2012 05:34:37 +0000 |
parents | aac7f2749d25 |
children | 5c6d105f8a77 |
files | main/control/inst/dlqe.m |
diffstat | 1 files changed, 12 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/main/control/inst/dlqe.m Thu Jun 21 23:13:45 2012 +0000 +++ b/main/control/inst/dlqe.m Fri Jun 22 05:34:37 2012 +0000 @@ -17,10 +17,10 @@ ## along with LTI Syncope. If not, see <http://www.gnu.org/licenses/>. ## -*- texinfo -*- -## @deftypefn {Function File} {[@var{l}, @var{p}, @var{z}, @var{e}] =} dlqe (@var{a}, @var{g}, @var{c}, @var{q}, @var{r}) -## @deftypefnx {Function File} {[@var{l}, @var{p}, @var{z}, @var{e}] =} dlqe (@var{a}, @var{g}, @var{c}, @var{q}, @var{r}, @var{s}) -## @deftypefnx {Function File} {[@var{l}, @var{p}, @var{z}, @var{e}] =} dlqe (@var{a}, @var{[]}, @var{c}, @var{q}, @var{r}) -## @deftypefnx {Function File} {[@var{l}, @var{p}, @var{z}, @var{e}] =} dlqe (@var{a}, @var{[]}, @var{c}, @var{q}, @var{r}, @var{s}) +## @deftypefn {Function File} {[@var{m}, @var{p}, @var{z}, @var{e}] =} dlqe (@var{a}, @var{g}, @var{c}, @var{q}, @var{r}) +## @deftypefnx {Function File} {[@var{m}, @var{p}, @var{z}, @var{e}] =} dlqe (@var{a}, @var{g}, @var{c}, @var{q}, @var{r}, @var{s}) +## @deftypefnx {Function File} {[@var{m}, @var{p}, @var{z}, @var{e}] =} dlqe (@var{a}, @var{[]}, @var{c}, @var{q}, @var{r}) +## @deftypefnx {Function File} {[@var{m}, @var{p}, @var{z}, @var{e}] =} dlqe (@var{a}, @var{[]}, @var{c}, @var{q}, @var{r}, @var{s}) ## Kalman filter for discrete-time systems. ## ## @example @@ -50,7 +50,7 @@ ## ## @strong{Outputs} ## @table @var -## @item l +## @item m ## Kalman filter gain matrix (n-by-p). ## @item p ## Unique stabilizing solution of the discrete-time Riccati equation (n-by-n). @@ -64,16 +64,16 @@ ## @strong{Equations} ## @example ## @group -## x[k|k] = x[k|k-1] + L(y[k] - Cx[k|k-1] -Du[k]) +## x[k|k] = x[k|k-1] + M(y[k] - Cx[k|k-1] - Du[k]) ## ## x[k+1|k] = Ax[k|k] + Bu[k] for S=0 ## ## x[k+1|k] = Ax[k|k] + Bu[k] + G*S*(C*P*C' + R)^-1*(y[k] - C*x[k|k-1]) for non-zero S ## ## -## E = eig(A - A*L*C) for S=0 +## E = eig(A - A*M*C) for S=0 ## -## E = eig(A - A*L*C - G*S*(C*P*C' + Rv)^-1*C) for non-zero S +## E = eig(A - A*M*C - G*S*(C*P*C' + Rv)^-1*C) for non-zero S ## ## @end group ## @end example @@ -84,7 +84,7 @@ ## Created: April 2012 ## Version: 0.1 -function [l, p, z, e] = dlqe (a, g, c, q, r, s = []) +function [m, p, z, e] = dlqe (a, g, c, q, r, s = []) if (nargin < 5 || nargin > 6) print_usage (); @@ -104,8 +104,9 @@ [~, p, e] = dlqr (a.', c.', g*q*g.', r, g*s); endif - l = p*c.' / (c*p*c.' + r); + m = p*c.' / (c*p*c.' + r); - z = p - l*c*p; + z = p - m*c*p; + z = (z + z.') / 2; endfunction