From: <par...@us...> - 2011-10-07 08:04:42
|
Revision: 8707 http://octave.svn.sourceforge.net/octave/?rev=8707&view=rev Author: paramaniac Date: 2011-10-07 08:04:32 +0000 (Fri, 07 Oct 2011) Log Message: ----------- control: remove cruft in devel folder Added Paths: ----------- trunk/octave-forge/main/control/devel/test_tf2ss.m trunk/octave-forge/main/control/devel/tf2ss_draft.m Removed Paths: ------------- trunk/octave-forge/main/control/devel/tf2ss/ Copied: trunk/octave-forge/main/control/devel/test_tf2ss.m (from rev 8706, trunk/octave-forge/main/control/devel/tf2ss/test_tf2ss.m) =================================================================== --- trunk/octave-forge/main/control/devel/test_tf2ss.m (rev 0) +++ trunk/octave-forge/main/control/devel/test_tf2ss.m 2011-10-07 08:04:32 UTC (rev 8707) @@ -0,0 +1,19 @@ +index = [ 3 3 ]; + +dcoeff = [ 1.0 6.0 11.0 6.0 + 1.0 6.0 11.0 6.0 ]; + +ucoeff = zeros (2, 2, 4); + +u11 = [ 1.0 6.0 12.0 7.0 ]; +u12 = [ 0.0 1.0 4.0 3.0 ]; +u21 = [ 0.0 0.0 1.0 1.0 ]; +u22 = [ 1.0 8.0 20.0 15.0 ]; + +ucoeff(1,1,:) = u11; +ucoeff(1,2,:) = u12; +ucoeff(2,1,:) = u21; +ucoeff(2,2,:) = u22; + +[a, b, c, d] = sltd04ad (ucoeff, dcoeff, index, 0) + Copied: trunk/octave-forge/main/control/devel/tf2ss_draft.m (from rev 8706, trunk/octave-forge/main/control/devel/tf2ss/tf2ss.m) =================================================================== --- trunk/octave-forge/main/control/devel/tf2ss_draft.m (rev 0) +++ trunk/octave-forge/main/control/devel/tf2ss_draft.m 2011-10-07 08:04:32 UTC (rev 8707) @@ -0,0 +1,76 @@ +function retsys = tf2ss_draft () + +num = {[1, 5, 7], [1]; [1, 7], [1, 5, 5]}; +den = {[1, 5, 6], [1, 2]; [1, 8, 6], [1, 3, 2]}; +sys = tf (num, den); + +%{ +sys = tf (1, [1, 0]) +sys = tf (1, [1, 1]) + +sys = tf (1, conv ([1, 1, 1], [1, 4, 6, 4, 1])) + +sys = tf () +sys = tf ("s") +%} + +sys = tf (WestlandLynx); +tol = sqrt (eps) + + [p, m] = size (sys); + [num, den] = tfdata (sys); + + numc = cell (p, m); + denc = cell (p, 1); + + ## multiply all denominators in a row and + ## update each numerator accordingly + for i = 1 : p + denc(i) = __conv__ (den{i,:}); + for j = 1 : m + idx = setdiff (1:m, j); + numc(i,j) = __conv__ (num{i,j}, den{i,idx}); + endfor + endfor + + len_numc = cellfun (@length, numc); + len_denc = cellfun (@length, denc); + + ## tfpoly ensures that there are no leading zeros + tmp = len_numc > repmat (len_denc, 1, m); + if (any (tmp(:))) + error ("tf: tf2ss: system must be proper"); + endif + + max_len_denc = max (len_denc(:)); + ucoeff = zeros (p, m, max_len_denc); + dcoeff = zeros (p, max_len_denc); + index = len_denc-1; + + for i = 1 : p + len = len_denc(i); + dcoeff(i, 1:len) = denc{i}; + for j = 1 : m + ucoeff(i, j, len-len_numc(i,j)+1 : len) = numc{i,j}; + endfor + endfor +index, prod (index), eps*prod (index) +min (sqrt (eps), eps*prod (index)) + [a, b, c, d] = sltd04ad (ucoeff, dcoeff, index, tol); + + retsys = ss (a, b, c, d); + +endfunction + + +function vec = __conv__ (vec, varargin) + + if (nargin == 1) + return; + else + for k = 1 : nargin-1 + vec = conv (vec, varargin{k}); + endfor + endif + +endfunction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |