function sys = mtt2sys (Name,par) ## usage: sys = mtt2sys (Name[,par]) ## ## Creates a sys structure for the Octave Control Systems Toolbox ## from an MTT system with name "Name" ## Optional second argument is system parameter list ## Assumes that Name_sm.m, Name_struc.m and Name_numpar.m exist ## Copyright (C) 2000 by Peter J Gawthrop if nargin<1 error("missing system name, usage: sys = mtt2sys (Name)"); else ## Create function names numpar_name = sprintf("%s_numpar",Name); sm_name = sprintf("%s_sm",Name); struc_name = sprintf("%s_struc",Name); endif if nargin<2 # Use predefined parameters mtt(Name,"numpar"); eval(sprintf("par=%s_numpar;", Name)); # Parameters mtt(Name,"sm"); # Create state matrices mtt(Name,"struc"); # Create structure info mtt(Name,"sympar"); # Create sympar details else # Only create other file if not there if exist(sm_name)!=2 mtt(Name,"sm"); # Create state matrices endif if exist(struc_name)!=2 mtt(Name,"struc"); # Create state matrices endif endif eval(sprintf("[A,B,C,D]=%s_sm(par);", Name)); # State matrices sys = ss2sys(A,B,C,D); # Sys form if (rindex(version,"2.0.")) # stable (pre-list) eval(sprintf("[sys.inname,sys.outname,sys.stname]=%s_struc;", Name)); # Setup names else # development version eval(sprintf("[mtt_inname,mtt_outname,mtt_stname]=%s_struc;",Name)); # Setup names eval(sprintf("sys = syssetsignals(sys,\"in\", mtt_inname);")); eval(sprintf("sys = syssetsignals(sys,\"out\",mtt_outname);")); eval(sprintf("sys = syssetsignals(sys,\"st\", mtt_stname);")); endif endfunction