From: <par...@us...> - 2012-05-18 18:23:34
|
Revision: 10458 http://octave.svn.sourceforge.net/octave/?rev=10458&view=rev Author: paramaniac Date: 2012-05-18 18:23:28 +0000 (Fri, 18 May 2012) Log Message: ----------- control-devel: get multi-experiment identification working (fingers crossed) Modified Paths: -------------- trunk/octave-forge/extra/control-devel/devel/ident.m trunk/octave-forge/extra/control-devel/src/slident.cc Modified: trunk/octave-forge/extra/control-devel/devel/ident.m =================================================================== --- trunk/octave-forge/extra/control-devel/devel/ident.m 2012-05-18 16:04:20 UTC (rev 10457) +++ trunk/octave-forge/extra/control-devel/devel/ident.m 2012-05-18 18:23:28 UTC (rev 10458) @@ -46,7 +46,7 @@ % nsmp >= 2*(m+l+1)*nobr - 1 % nobr <= (nsmp+1)/(2*(m+l+1)) %nobr = 10 - [a, b, c, d, q, ry, s, k, x0] = slident (dat.y{1}, dat.u{1}, nobr, n, meth, alg, batch, conct, ctrl, rcond, tol); + [a, b, c, d, q, ry, s, k, x0] = slident (dat.y, dat.u, nobr, n, meth, alg, batch, conct, ctrl, rcond, tol); sys = ss (a, b, c, d, dat.tsam{1}); Modified: trunk/octave-forge/extra/control-devel/src/slident.cc =================================================================== --- trunk/octave-forge/extra/control-devel/src/slident.cc 2012-05-18 16:04:20 UTC (rev 10457) +++ trunk/octave-forge/extra/control-devel/src/slident.cc 2012-05-18 18:23:28 UTC (rev 10458) @@ -184,10 +184,10 @@ ctrl = 'N'; - int n_exp = y_cell.nelem (); // number of experiments - - int m = u_cell.elem(0).columns (); // m: number of inputs - int l = y_cell.elem(0).columns (); // l: number of outputs + int n_exp = y_cell.nelem (); // number of experiments + int m = u_cell.elem(0).columns (); // m: number of inputs + int l = y_cell.elem(0).columns (); // l: number of outputs + int nsmpl = 0; // total number of samples // arguments out int n; @@ -221,6 +221,7 @@ //int m = u.columns (); // m: number of inputs //int l = y.columns (); // l: number of outputs int nsmp = y.rows (); // nsmp: number of samples + nsmpl += nsmp; // y.rows == u.rows is checked by iddata class // TODO: check minimal nsmp size @@ -448,7 +449,7 @@ char job = 'A'; char jobck = 'K'; - int nsmpl = nsmp; + //int nsmpl = nsmp; if (nsmpl < 2*(m+l)*nobr) error ("slident: nsmpl (%d) < 2*(m+l)*nobr (%d)", nsmpl, nobr); @@ -623,7 +624,7 @@ // TODO: use only one iwork and dwork for all three slicot routines // ldwork = max (ldwork_a, ldwork_b, ldwork_c) - +/* // arguments in char jobx0 = 'X'; char comuse = 'U'; @@ -700,7 +701,7 @@ error_msg ("ident: IB01CD", info_c, 2, err_msg_c); warning_msg ("ident: IB01CD", iwarn_c, 6, warn_msg_c); - +*/ // return values retval(0) = a; @@ -713,7 +714,8 @@ retval(6) = s; retval(7) = k; - retval(8) = x0; + // retval(8) = x0; + retval(8) = octave_value (0); } return retval; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |