From: <par...@us...> - 2012-04-30 16:51:57
|
Revision: 10336 http://octave.svn.sourceforge.net/octave/?rev=10336&view=rev Author: paramaniac Date: 2012-04-30 16:51:51 +0000 (Mon, 30 Apr 2012) Log Message: ----------- control-devel: work on arx function Modified Paths: -------------- trunk/octave-forge/extra/control-devel/inst/arx.m Added Paths: ----------- trunk/octave-forge/extra/control-devel/inst/test_arx.m Modified: trunk/octave-forge/extra/control-devel/inst/arx.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/arx.m 2012-04-30 15:57:22 UTC (rev 10335) +++ trunk/octave-forge/extra/control-devel/inst/arx.m 2012-04-30 16:51:51 UTC (rev 10336) @@ -21,16 +21,17 @@ Y = dat.y{1}; U = dat.u{1}; + Ts = dat.tsam{1}; + + PhiY = toeplitz (Y(1:end-1, :), zeros (1, na)); + PhiU = toeplitz (U(1:end-1, :), zeros (1, nb)); + Phi = [-PhiY, PhiU] - PhiY = toeplitz ([0; Y(1:end-1, :)], zeros (1, na)); - PhiU = toeplitz ([0; U(1:end-1, :)], zeros (1, nb)); - Phi = [PhiY, PhiU]; + Theta = Phi \ Y(2:end, :); - Theta = Phi \ Y; + A = [1; Theta(1:na)]; % ??? + B = Theta(na+1:end); - A = Theta(1:n); - B = Theta(n+1:end); - - sys = tf ({B, 1}, {A, A}, dat.tsam); + sys = tf ({B, 1}, {A, A}, Ts); endfunction \ No newline at end of file Added: trunk/octave-forge/extra/control-devel/inst/test_arx.m =================================================================== --- trunk/octave-forge/extra/control-devel/inst/test_arx.m (rev 0) +++ trunk/octave-forge/extra/control-devel/inst/test_arx.m 2012-04-30 16:51:51 UTC (rev 10336) @@ -0,0 +1,10 @@ +u = [ 0; 0.5; 1; 1; 1; 1; 1 ]; +y = [ 0; 0; 0.25; 0.62; 0.81; 0.90; 0.95 ]; + +dat = iddata (y, u) + +sys = arx (dat, 1, 1) + + +ysim = lsim (sys(1,1), u); + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |