Interfacing function
eng


PID2

File content


function [x,y,typ]=PID2(job,arg1,arg2)
//Generated from PID on 5-Jan-2009
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
  y=needcompile
  typ=list()
  graphics=arg1.graphics;
  exprs=graphics.exprs
  Btitre=..
    "Set PID parameters"
  Exprs0=..
    ["p";"i";"d"]
  Bitems=..
    ["Proportional";"Integral";"Derivative"]
  Ss=..
    list("pol",-1,"pol",-1,"pol",-1)
  scicos_context=struct()
     x=arg1
  ok=%f
  while ~ok do
    [ok,scicos_context.p,scicos_context.i,scicos_context.d,exprs]=getvalue(Btitre,Bitems,Ss,exprs)
    if ~ok then return;end
     %scicos_context=scicos_context
     sblock=x.model.rpar
     [%scicos_context,ierr]=script2var(sblock.props.context,%scicos_context)
     if ierr==0 then
       [sblock,%w,needcompile2,ok]=do_eval(sblock,list(),%scicos_context)
	  if ok then
          y=max(2,needcompile,needcompile2)
          x.graphics.exprs=exprs
          x.model.rpar=sblock
          break
	  end
     else
       message(lasterror())
	  ok=%f
     end
  end
case 'define' then
scs_m_1=scicos_diagram(..
        version="scicos4.3",..
        props=scicos_params(..
              wpar=[118.03352,562.90781,42.710669,379.75791,607,463,0,0,624,480,655,52,1.4],..
              Title=["PID","C:/Documents and Settings/ramin/Bureau/"],..
              tol=[0.0001,0.000001,1.000D-10,100001,0,0],..
              tf=100000,..
              context=" ",..
              void1=[],..
              options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(%t,33),[8,1],[1,5],..
              list([5,1,2,1],[4,1,10,1]),[0.8,0.8,0.8]),..
              void2=[],..
              void3=[],..
              doc=list()))
scs_m_1.objs(1)=scicos_block(..
                gui="INTEGRAL_m",..
                graphics=scicos_graphics(..
                         orig=[318.304,183.11733],..
                         sz=[40,40],..
                         flip=%t,..
                         theta=0,..
                         exprs=["0";"0";"0";"1";"-1"],..
                         pin=7,..
                         pout=9,..
                         pein=[],..
                         peout=[],..
                         gr_i=list(..
                         ["thick=xget(''thickness'')";
                         "pat=xget(''pattern'')";
                         "fnt=xget(''font'')";
                         "xpoly(orig(1)+[0.7;0.62;0.549;0.44;0.364;0.291]*sz(1),orig(2)+[0.947;0.947;0.884;0.321;0.255;0.255]*sz(2),''lines'')";
                         "txt=''1/s'';";
                         "style=5;";
                         "rectstr=stringbox(txt,orig(1),orig(2),0,style,1);";
                         "if ~exists(''%zoom'') then %zoom=1, end;";
                         "w=(rectstr(1,3)-rectstr(1,2))*%zoom;";
                         "h=(rectstr(2,2)-rectstr(2,4))*%zoom;";
                         "xstringb(orig(1)+sz(1)/2-w/2,orig(2)-h-4,txt,w,h,''fill'');";
                         "e=gce();";
                         "e.font_style=style;";
                         "xset(''thickness'',thick)";
                         "xset(''pattern'',pat)";
                         "xset(''font'',fnt(1),fnt(2))"],8),..
                         id="",..
                         in_implicit="E",..
                         out_implicit="E"),..
                model=scicos_model(..
                         sim=list("integral_func",4),..
                         in=1,..
                         in2=1,..
                         intyp=1,..
                         out=1,..
                         out2=1,..
                         outtyp=1,..
                         evtin=[],..
                         evtout=[],..
                         state=0,..
                         dstate=[],..
                         odstate=list(),..
                         rpar=[],..
                         ipar=[],..
                         opar=list(),..
                         blocktype="c",..
                         firing=[],..
                         dep_ut=[%f,%t],..
                         label="",..
                         nzcross=0,..
                         nmode=0,..
                         equations=list()),..
                doc=list())
scs_m_1.objs(2)=scicos_block(..
                gui="SUMMATION",..
                graphics=scicos_graphics(..
                         orig=[387.97067,172.85067],..
                         sz=[40,60],..
                         flip=%t,..
                         theta=0,..
                         exprs=["1";"[1;1;1]";"0"],..
                         pin=[10;9;11],..
                         pout=21,..
                         pein=[],..
                         peout=[],..
                         gr_i=list(..
                         ["[x,y,typ]=standard_inputs(o) ";
                         "dd=sz(1)/8,de=0,";
                         "if ~arg1.graphics.flip then dd=6*sz(1)/8,de=-sz(1)/8,end";
                         "for k=1:size(x,''*'')";
                         "if size(sgn,1)>1 then";
                         "  if sgn(k)>0 then";
                         "    xstring(orig(1)+dd,y(k)-4,''+'')";
                         "  else";
                         "    xstring(orig(1)+dd,y(k)-4,''-'')";
                         "  end";
                         "end";
                         "end";
                         "xx=sz(1)*[.8 .4 0.75 .4 .8]+orig(1)+de";
                         "yy=sz(2)*[.8 .8 .5 .2 .2]+orig(2)";
                         "xpoly(xx,yy,''lines'')"],8),..
                         id="",..
                         in_implicit=["E";"E";"E"],..
                         out_implicit="E"),..
                model=scicos_model(..
                         sim=list("summation",4),..
                         in=[-1;-1;-1],..
                         in2=[-2;-2;-2],..
                         intyp=[1;1;1],..
                         out=-1,..
                         out2=-2,..
                         outtyp=1,..
                         evtin=[],..
                         evtout=[],..
                         state=[],..
                         dstate=[],..
                         odstate=list(),..
                         rpar=0,..
                         ipar=[1;1;1],..
                         opar=list(),..
                         blocktype="c",..
                         firing=[],..
                         dep_ut=[%t,%f],..
                         label="",..
                         nzcross=0,..
                         nmode=0,..
                         equations=list()),..
                doc=list())
scs_m_1.objs(3)=scicos_block(..
                gui="GAINBLK",..
                graphics=scicos_graphics(..
                         orig=[321.23733,235.91733],..
                         sz=[40,40],..
                         flip=%t,..
                         theta=0,..
                         exprs=["p";"0"],..
                         pin=15,..
                         pout=10,..
                         pein=[],..
                         peout=[],..
                         gr_i=list("",8),..
                         id="",..
                         in_implicit="E",..
                         out_implicit="E"),..
                model=scicos_model(..
                         sim=list("gainblk",4),..
                         in=-1,..
                         in2=-2,..
                         intyp=1,..
                         out=-1,..
                         out2=-2,..
                         outtyp=1,..
                         evtin=[],..
                         evtout=[],..
                         state=[],..
                         dstate=[],..
                         odstate=list(),..
                         rpar=1,..
                         ipar=[],..
                         opar=list(),..
                         blocktype="c",..
                         firing=[],..
                         dep_ut=[%t,%f],..
                         label="",..
                         nzcross=0,..
                         nmode=0,..
                         equations=list()),..
                doc=list())
scs_m_1.objs(4)=scicos_block(..
                gui="DERIV",..
                graphics=scicos_graphics(..
                         orig=[319.03733,135.45067],..
                         sz=[40,40],..
                         flip=%t,..
                         theta=0,..
                         exprs=[],..
                         pin=8,..
                         pout=11,..
                         pein=[],..
                         peout=[],..
                         gr_i=list(..
                         ["xstringb(orig(1),orig(2),'' du/dt   '',sz(1),sz(2),''fill'');";
                         "txt=''s'';";
                         "style=5;";
                         "rectstr=stringbox(txt,orig(1),orig(2),0,style,1);";
                         "if ~exists(''%zoom'') then %zoom=1, end;";
                         "w=(rectstr(1,3)-rectstr(1,2))*%zoom;";
                         "h=(rectstr(2,2)-rectstr(2,4))*%zoom;";
                         "xstringb(orig(1)+sz(1)/2-w/2,orig(2)-h-4,txt,w,h,''fill'');";
                         "e=gce();";
                         "e.font_style=style;"],8),..
                         id="",..
                         in_implicit="E",..
                         out_implicit="E"),..
                model=scicos_model(..
                         sim=list("deriv",4),..
                         in=-1,..
                         in2=-2,..
                         intyp=1,..
                         out=-1,..
                         out2=-2,..
                         outtyp=1,..
                         evtin=[],..
                         evtout=[],..
                         state=[],..
                         dstate=[],..
                         odstate=list(),..
                         rpar=[],..
                         ipar=[],..
                         opar=list(),..
                         blocktype="x",..
                         firing=[],..
                         dep_ut=[%t,%f],..
                         label="",..
                         nzcross=0,..
                         nmode=0,..
                         equations=list()),..
                doc=list())
scs_m_1.objs(5)=scicos_block(..
                gui="GAINBLK",..
                graphics=scicos_graphics(..
                         orig=[255.23733,183.11733],..
                         sz=[40,40],..
                         flip=%t,..
                         theta=0,..
                         exprs=["i";"0"],..
                         pin=16,..
                         pout=7,..
                         pein=[],..
                         peout=[],..
                         gr_i=list("",8),..
                         id="",..
                         in_implicit="E",..
                         out_implicit="E"),..
                model=scicos_model(..
                         sim=list("gainblk",4),..
                         in=-1,..
                         in2=-2,..
                         intyp=1,..
                         out=-1,..
                         out2=-2,..
                         outtyp=1,..
                         evtin=[],..
                         evtout=[],..
                         state=[],..
                         dstate=[],..
                         odstate=list(),..
                         rpar=1,..
                         ipar=[],..
                         opar=list(),..
                         blocktype="c",..
                         firing=[],..
                         dep_ut=[%t,%f],..
                         label="",..
                         nzcross=0,..
                         nmode=0,..
                         equations=list()),..
                doc=list())
scs_m_1.objs(6)=scicos_block(..
                gui="GAINBLK",..
                graphics=scicos_graphics(..
                         orig=[255.23733,135.45067],..
                         sz=[40,40],..
                         flip=%t,..
                         theta=0,..
                         exprs=["d";"0"],..
                         pin=19,..
                         pout=8,..
                         pein=[],..
                         peout=[],..
                         gr_i=list("",8),..
                         id="",..
                         in_implicit="E",..
                         out_implicit="E"),..
                model=scicos_model(..
                         sim=list("gainblk",4),..
                         in=-1,..
                         in2=-2,..
                         intyp=1,..
                         out=-1,..
                         out2=-2,..
                         outtyp=1,..
                         evtin=[],..
                         evtout=[],..
                         state=[],..
                         dstate=[],..
                         odstate=list(),..
                         rpar=1,..
                         ipar=[],..
                         opar=list(),..
                         blocktype="c",..
                         firing=[],..
                         dep_ut=[%t,%f],..
                         label="",..
                         nzcross=0,..
                         nmode=0,..
                         equations=list()),..
                doc=list())
scs_m_1.objs(7)=scicos_link(..
                  xx=[303.80876;309.73257],..
                  yy=[203.11733;203.11733],..
                  id="drawlink",..
                  thick=[0,0],..
                  ct=[1,1],..
                  from=[5,1,0],..
                  to=[1,1,1])
scs_m_1.objs(8)=scicos_link(..
                  xx=[303.80876;310.4659],..
                  yy=[155.45067;155.45067],..
                  id="drawlink",..
                  thick=[0,0],..
                  ct=[1,1],..
                  from=[6,1,0],..
                  to=[4,1,1])
scs_m_1.objs(9)=scicos_link(..
                  xx=[366.87543;379.39924],..
                  yy=[203.11733;202.85067],..
                  id="drawlink",..
                  thick=[0,0],..
                  ct=[1,1],..
                  from=[1,1,0],..
                  to=[2,2,1])
scs_m_1.objs(10)=scicos_link(..
                   xx=[369.80876;379.39924;379.39924],..
                   yy=[255.91733;255.91733;217.85067],..
                   id="drawlink",..
                   thick=[0,0],..
                   ct=[1,1],..
                   from=[3,1,0],..
                   to=[2,1,1])
scs_m_1.objs(11)=scicos_link(..
                   xx=[367.60876;379.39924;379.39924],..
                   yy=[155.45067;155.45067;187.85067],..
                   id="drawlink",..
                   thick=[0,0],..
                   ct=[1,1],..
                   from=[4,1,0],..
                   to=[2,3,1])
scs_m_1.objs(12)=scicos_block(..
                 gui="IN_f",..
                 graphics=scicos_graphics(..
                          orig=[163.47373,182.47972],..
                          sz=[20,20],..
                          flip=%t,..
                          theta=0,..
                          exprs="1",..
                          pin=[],..
                          pout=13,..
                          pein=[],..
                          peout=[],..
                          gr_i=list(" ",8),..
                          id="",..
                          in_implicit=[],..
                          out_implicit="E"),..
                 model=scicos_model(..
                          sim="input",..
                          in=[],..
                          in2=[],..
                          intyp=1,..
                          out=-1,..
                          out2=-2,..
                          outtyp=-1,..
                          evtin=[],..
                          evtout=[],..
                          state=[],..
                          dstate=[],..
                          odstate=list(),..
                          rpar=[],..
                          ipar=1,..
                          opar=list(),..
                          blocktype="c",..
                          firing=[],..
                          dep_ut=[%f,%f],..
                          label="",..
                          nzcross=0,..
                          nmode=0,..
                          equations=list()),..
                 doc=list())
scs_m_1.objs(13)=scicos_link(..
                   xx=[183.47373;213.31138;213.31138],..
                   yy=[192.47972;192.47972;192.67121],..
                   id="drawlink",..
                   thick=[0,0],..
                   ct=[1,1],..
                   from=[12,1,0],..
                   to=[17,1,1])
scs_m_1.objs(14)=scicos_block(..
                 gui="SPLIT_f",..
                 graphics=scicos_graphics(..
                          orig=[213.31138,203.11733],..
                          sz=[0.3333333,0.3333333],..
                          flip=%t,..
                          theta=0,..
                          exprs=[],..
                          pin=18,..
                          pout=[15;16],..
                          pein=[],..
                          peout=[],..
                          gr_i=list([],8),..
                          id="",..
                          in_implicit="E",..
                          out_implicit=["E";"E";"E"]),..
                 model=scicos_model(..
                          sim="lsplit",..
                          in=-1,..
                          in2=[],..
                          intyp=1,..
                          out=[-1;-1;-1],..
                          out2=[],..
                          outtyp=1,..
                          evtin=[],..
                          evtout=[],..
                          state=[],..
                          dstate=[],..
                          odstate=list(),..
                          rpar=[],..
                          ipar=[],..
                          opar=list(),..
                          blocktype="c",..
                          firing=[],..
                          dep_ut=[%t,%f],..
                          label="",..
                          nzcross=0,..
                          nmode=0,..
                          equations=list()),..
                 doc=list())
scs_m_1.objs(15)=scicos_link(..
                   xx=[213.31138;213.31138;312.6659],..
                   yy=[203.11733;255.91733;255.91733],..
                   id="drawlink",..
                   thick=[0,0],..
                   ct=[1,1],..
                   from=[14,1,0],..
                   to=[3,1,1])
scs_m_1.objs(16)=scicos_link(..
                   xx=[213.31138;246.6659],..
                   yy=[203.11733;203.11733],..
                   id="drawlink",..
                   thick=[0,0],..
                   ct=[1,1],..
                   from=[14,2,0],..
                   to=[5,1,1])
scs_m_1.objs(17)=scicos_block(..
                 gui="SPLIT_f",..
                 graphics=scicos_graphics(..
                          orig=[213.31138;192.67121],..
                          sz=[0.3333333,0.3333333],..
                          flip=%t,..
                          theta=0,..
                          exprs=[],..
                          pin=13,..
                          pout=[18;19],..
                          pein=[],..
                          peout=[],..
                          gr_i=list([],8),..
                          id="",..
                          in_implicit="E",..
                          out_implicit=["E";"E";"E"]),..
                 model=scicos_model(..
                          sim="lsplit",..
                          in=-1,..
                          in2=[],..
                          intyp=1,..
                          out=[-1;-1;-1],..
                          out2=[],..
                          outtyp=1,..
                          evtin=[],..
                          evtout=[],..
                          state=[],..
                          dstate=[],..
                          odstate=list(),..
                          rpar=[],..
                          ipar=[],..
                          opar=list(),..
                          blocktype="c",..
                          firing=[],..
                          dep_ut=[%t,%f],..
                          label="",..
                          nzcross=0,..
                          nmode=0,..
                          equations=list()),..
                 doc=list())
scs_m_1.objs(18)=scicos_link(..
                   xx=[213.31138;213.31138],..
                   yy=[192.67121;203.11733],..
                   id="drawlink",..
                   thick=[0,0],..
                   ct=[1,1],..
                   from=[17,1,0],..
                   to=[14,1,1])
scs_m_1.objs(19)=scicos_link(..
                   xx=[213.31138;213.31138;246.6659],..
                   yy=[192.67121;155.45067;155.45067],..
                   id="drawlink",..
                   thick=[0,0],..
                   ct=[1,1],..
                   from=[17,2,0],..
                   to=[6,1,1])
scs_m_1.objs(20)=scicos_block(..
                 gui="OUT_f",..
                 graphics=scicos_graphics(..
                          orig=[485.95262,192.67121],..
                          sz=[20,20],..
                          flip=%t,..
                          theta=0,..
                          exprs="1",..
                          pin=21,..
                          pout=[],..
                          pein=[],..
                          peout=[],..
                          gr_i=list(" ",8),..
                          id="",..
                          in_implicit="E",..
                          out_implicit=[]),..
                 model=scicos_model(..
                          sim="output",..
                          in=-1,..
                          in2=-2,..
                          intyp=-1,..
                          out=[],..
                          out2=[],..
                          outtyp=1,..
                          evtin=[],..
                          evtout=[],..
                          state=[],..
                          dstate=[],..
                          odstate=list(),..
                          rpar=[],..
                          ipar=1,..
                          opar=list(),..
                          blocktype="c",..
                          firing=[],..
                          dep_ut=[%f,%f],..
                          label="",..
                          nzcross=0,..
                          nmode=0,..
                          equations=list()),..
                 doc=list())
scs_m_1.objs(21)=scicos_link(..
                   xx=[436.5421;485.95262],..
                   yy=[202.85067;202.67121],..
                   id="drawlink",..
                   thick=[0,0],..
                   ct=[1,1],..
                   from=[2,1,0],..
                   to=[20,1,1])
  model=scicos_model()
  model.sim="csuper"
  model.in=-1
  model.in2=-2
  model.intyp=-1
  model.out=-1
  model.out2=-2
  model.outtyp=-1
  model.evtin=[]
  model.evtout=[]
  model.state=[]
  model.dstate=[]
  model.odstate=list()
  model.rpar=scs_m_1
  model.ipar=1
  model.opar=list()
  model.blocktype="h"
  model.firing=[]
  model.dep_ut=[%f,%f]
  model.label=""
  model.nzcross=0
  model.nmode=0
  model.equations=list()
  p=1
  i=2
  d=1
  exprs=[..
       sci2exp(p,0)
       sci2exp(i,0)
       sci2exp(d,0)
        ]
  gr_i=list("xstringb(orig(1),orig(2),""PID"",sz(1),sz(2),''fill'');",8)
  x=standard_define([2,2],model,exprs,gr_i)
end
endfunction