Mercurial > forge
changeset 10192:dfd69ee683a8 octave-forge
control-devel: clean up example
author | paramaniac |
---|---|
date | Tue, 08 May 2012 09:18:11 +0000 |
parents | bd0ba1979a13 |
children | 638a0fc040f0 |
files | extra/control-devel/devel/HeatingSystem.m extra/control-devel/devel/ident.m |
diffstat | 2 files changed, 12 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/extra/control-devel/devel/HeatingSystem.m Tue May 08 08:22:45 2012 +0000 +++ b/extra/control-devel/devel/HeatingSystem.m Tue May 08 09:18:11 2012 +0000 @@ -75,29 +75,22 @@ 'outunit', '°C') % s=15, n=7 -sys = arx (dat, 7, 7) % normally na = nb +[sys1, x0] = ident (dat, 15, 7) +sys2 = arx (dat, 7, 7) % normally na = nb -[y, t] = lsim (sys(:, 1), U); +[y1, t1] = lsim (sys1, U, [], x0); +[y2, t] = lsim (sys2(:, 1), U); - -err = norm (Y - y, 1) / norm (Y, 1) +err1 = norm (Y - y1, 1) / norm (Y, 1) +err2 = norm (Y - y2, 1) / norm (Y, 1) figure (1) -plot (t, Y(:,1), 'b', t, y(:,1), 'r') +plot (t, Y, t, y1, t, y2) title ('DaISy: Heating System [99-001]') -legend ('measured temperature', 'simulated temperature', 'location', 'southeast') - - -[sys2, x0] = ident (dat, 15, 7) - -[y2, t2] = lsim (sys2, U, [], x0); - -err2 = norm (Y - y2, 1) / norm (Y, 1) - -figure (2) -plot (t, Y, 'b', t, y, 'r', t, y2, 'g') -title ('DaISy: Heating System [99-001]') -legend ('measured temperature', 'simulated temperature', 'slicot', 'location', 'southeast') +xlim ([t(1), t(end)]) +xlabel ('Time [s]') +ylabel ('Temperature [Degree Celsius]') +legend ('measured', 'simulated subspace', 'simulated ARX', 'location', 'southeast')
--- a/extra/control-devel/devel/ident.m Tue May 08 08:22:45 2012 +0000 +++ b/extra/control-devel/devel/ident.m Tue May 08 09:18:11 2012 +0000 @@ -49,6 +49,6 @@ %nobr = 10 [a, b, c, d, q, ry, s, k, x0] = slident (dat.y{1}, dat.u{1}, nobr, n, meth, alg, jobd, batch, conct, ctrl, rcond, tol); - sys = ss (a, b, c, d, -1); + sys = ss (a, b, c, d, dat.tsam{1}); endfunction