From 0345245e860375a32c9a437c4a9d9cae807134e9 Mon Sep 17 00:00:00 2001 From: Shashank Date: Mon, 29 May 2017 12:40:26 +0530 Subject: CMSCOPE changed --- modules/cacsd/macros/dcf.sci | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 modules/cacsd/macros/dcf.sci (limited to 'modules/cacsd/macros/dcf.sci') diff --git a/modules/cacsd/macros/dcf.sci b/modules/cacsd/macros/dcf.sci new file mode 100755 index 000000000..5c607c3e3 --- /dev/null +++ b/modules/cacsd/macros/dcf.sci @@ -0,0 +1,34 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [n,m,x,y,nt,mt,xt,yt]=dcf(g,polf,polc,tol) + //[n,m,x,y,nt,mt,xt,yt]=dcf(g,[polf,polc,[tol]]) returns eight + //stable systems (n,m,x,y,nt,mt,xt,yt) for the doubly coprime factorization + // + // !xt -yt! ! m y ! + // ! !*! ! = eye + // !-nt mt! ! n x ! + // G must be stabilizable and detectable. + // See copfac for a description of parameters. + //! + + [lhs,rhs]=argn(0), + n1=contr(g(2),g(3)),n2=contr(g(2)',g(4)'), + select rhs, + case 1 then + polc=-ones(1,n1),polf=-ones(1,n2),tol=1000*%eps, + case 2 then + tol=polf,polc=-ones(1,n1),polf=-ones(1,n2), + case 3 then tol=1000*%eps, + end, + [n,m,xt,yt]=copfac(g,polf,polc,tol), + [nt,mt,x,y]=copfac(g',polc,polf,tol), + nt=nt',mt=mt',x=x',y=y', +endfunction -- cgit