Mercurial > hg > octave-nkf
diff scripts/control/base/__stepimp__.m @ 4422:92be67bc9301
[project @ 2003-06-04 17:43:15 by jwe]
author | jwe |
---|---|
date | Wed, 04 Jun 2003 17:43:15 +0000 |
parents | 5855de872659 |
children | b8105302cfe8 |
line wrap: on
line diff
--- a/scripts/control/base/__stepimp__.m +++ b/scripts/control/base/__stepimp__.m @@ -224,60 +224,46 @@ gset autoscale gset nokey clearplot(); - if (gnuplot_has_multiplot) - if (IMPULSE) - gm = zeros(NOUT, 1); - tt = "impulse"; + if (IMPULSE) + gm = zeros(NOUT, 1); + tt = "impulse"; + else + ssys = ss2sys(F, G, C, D, t_step); + gm = dcgain(ssys); + tt = "step"; + endif + ncols = floor(sqrt(NOUT)); + nrows = ceil(NOUT / ncols); + for i = 1:NOUT + subplot(nrows, ncols, i); + title(sprintf("%s: | %s -> %s", tt,sysgetsignals(sys,"in",inp,1), ... + sysgetsignals(sys,"out",i,1))); + if (DIGITAL) + [ts, ys] = stairs(t, y(i,:)); + ts = ts(1:2*n-2)'; ys = ys(1:2*n-2)'; + if (length(gm) > 0) + yy = [ys; gm(i)*ones(size(ts))]; + else + yy = ys; + endif + grid("on"); + xlabel("time [s]"); + ylabel("y(t)"); + plot(ts, yy); else - ssys = ss2sys(F, G, C, D, t_step); - gm = dcgain(ssys); - tt = "step"; + if (length(gm) > 0) + yy = [y(i,:); gm(i)*ones(size(t))]; + else + yy = y(i,:); + endif + grid("on"); + xlabel("time [s]"); + ylabel("y(t)"); + plot(t, yy); endif - ncols = floor(sqrt(NOUT)); - nrows = ceil(NOUT / ncols); - for i = 1:NOUT - subplot(nrows, ncols, i); - title(sprintf("%s: | %s -> %s", tt,sysgetsignals(sys,"in",inp,1), ... - sysgetsignals(sys,"out",i,1))); - if (DIGITAL) - [ts, ys] = stairs(t, y(i,:)); - ts = ts(1:2*n-2)'; ys = ys(1:2*n-2)'; - if (length(gm) > 0) - yy = [ys; gm(i)*ones(size(ts))]; - else - yy = ys; - endif - grid("on"); - xlabel("time [s]"); - ylabel("y(t)"); - plot(ts, yy); - else - if (length(gm) > 0) - yy = [y(i,:); gm(i)*ones(size(t))]; - else - yy = y(i,:); - endif - grid("on"); - xlabel("time [s]"); - ylabel("y(t)"); - plot(t, yy); - endif - endfor - ## leave gnuplot in multiplot mode is bad style - oneplot(); - else - ## plot everything in one diagram - title([tt, " response | ", sysgetsignals(sys,"in",inp,1), ... - " -> all outputs"]); - if (DIGITAL) - stairs(t, y(i,:)); - else - grid("on"); - xlabel("time [s]"); - ylabel("y(t)"); - plot(t, y(i,:)); - endif - endif + endfor + ## leave gnuplot in multiplot mode is bad style + oneplot(); y=[]; t=[]; endif