Interfacing function
eng


SYSTEMH_f

File content


//SYSTEMH_f Scicos Chua sub-system G block
//Classical interface function ver1.0 - scilab-2.7
//18 novembre 2003 - IRCOM GROUP - Author : A.Layec
function [x,y,typ]=SYSTEMH_f(job,arg1,arg2)
x=[];y=[];typ=[]
select job
case 'plot' then
  standard_draw(arg1)
case 'getinputs' then
  [x,y,typ]=standard_inputs(arg1)
case 'getoutputs' then
  [x,y,typ]=standard_outputs(arg1)
case 'getorigin' then
  [x,y]=standard_origin(arg1)
case 'set' then
   x=arg1;
   graphics=arg1.graphics;model=arg1.model;
   exprs=graphics.exprs;

   while %t do
    [ok,init1,init2,B,C,exprs]=getvalue('Chua sub-system H',...
    ['Initial condition 1';'Initial condition 2';'B';'C'],list('vec',-1,'vec',-1,'vec',-1,'vec',-1),exprs);

     if ~ok then break,end;
     Nu=size(init1,'*')

     if ((size(init1)==size(init2)) & (size(init2)==size(B)) & (size(B)==size(C)) ) then
       if ok then
          graphics.exprs=exprs
          model.in=Nu
          model.out=Nu
          model.state=[init1(:);init2(:)]
          model.rpar=[B(:);C(:)]
          x.graphics=graphics; x.model=model
          break
       end
     else
        message('All parameters must have the same size');
     end
   end

case 'define' then

  Nu = 1
  init1 = 0
  init2 = -1.6
  B = 1
  C = -25.58

  model=scicos_model()
  model.sim=list('systemh',2)
  model.in=Nu
  model.out=Nu
  model.evtin=[]
  model.evtout=[]
  model.dstate=[]
  model.state=[init1;init2]
  model.rpar=[B;C]
  model.ipar=[]
  model.blocktype='c'
  model.firing=[]
  model.dep_ut=[%f %t]

  gr_i=['txt=[''Chua'';''sub-system H''];';
    'xstringb(orig(1),orig(2),txt,sz(1),sz(2),''fill'');']
  exprs=[string(init1),string(init2),string(B),string(C)];
  x=standard_define([3 2],model,exprs,gr_i)
end
endfunction