From help-octave-request at bevo dot che dot wisc dot edu Tue Dec 8 15:20:21 1998 Subject: Announce: beta release of OCST-2.0 From: "A. Scottedward Hodel" To: help-octave at bevo dot che dot wisc dot edu Date: Tue, 08 Dec 1998 15:18:16 -0600 In order to avoid future trouble, I've rewritten the Octave Control Systems Toolbox (OCST) to store signal names as lists of strings instead of string matrices. A beta-release of the new version is at ftp://ftp.eng.auburn.edu/pub/hodel/ocst-2.0.0.1.tar.gz and has not yet been incorporated into the "bleeding-edge" Octave releases. I'd appreciate feedback on this beta release from those who have the time and inclination to check it out. I've tested the code with DEMOcontrol.m (the OCST demonstration program), which is a decent but incomplete test suite. Documentation: Currently only in the modified DEMOcontrol script (see esp. system representation and block diagram manipulation). Will soon also be in control.texi New features: - all signal names (states, inputs, outputs) are represented as lists of strings. Lists were added to Octave in version 2.1.10. - Additional functions added to OCST so that system data structure manipulation is more "object-oriented" - sysdimensions: modifid to return all or individual system dimensions: [nc,nd,mm,pp] = sysdimensions(sys); mm = sysdimension(sys,"in"); - sysgetsignals: get all signal names, some signal names, or 1 signal name. [stnames,innames,outnames] = sysgetsignals(sys); stnames = sysgetsignals(sys,"st"); stname_4 = sysgetsignals(sys,"st",4); # returns a list with state name 4 as its # single entry stname_4 = sysgetsignals(sys,"st",4,1): # returns the string of state name 4 - syssetsignals: change signal names (individually or as a group) - is_signal_list: returns nonzero if input parameter is a legal list of signal names. Incompatibilities with prior versions: While I tried to make function calls backward compatible, m-files that directly access the system data structure may not work. For example: *** n_outputs = rows(sys.outname); => Since signal names are lists, rows(sys.outname) returns -1. instead of the above, use any of the following. [n_c_states,n_d_states,n_inputs,n_outputs] = sysdimensions(sys); n_outputs = sysdimensions(sys,"out"); n_outputs = length(sysgetsignals(sys,"out")); *** sys.stname(3,1:5) = "VOLT5" => It is not advised to directly access the system data structure. => Further, lists can only take one subscript. Instead of the above, use sys = syssetsignals(sys,"st",5,"VOLT5"); I do not expect incompatibilities if users stick with the object-oriented functions (see sysrepdemo.m, bddemo.m). Beta testing is to check whether or not I'm right. A S Hodel Assoc. Prof. Dept Elect Eng, Auburn Univ,AL 36849-5201 On leave at NASA Marshall Space Flight Center (256) 544-1426 http://www.eng.auburn.edu/~scotte