diff options
Diffstat (limited to 'js/Misc/AUTOMAT.js')
-rw-r--r-- | js/Misc/AUTOMAT.js | 97 |
1 files changed, 51 insertions, 46 deletions
diff --git a/js/Misc/AUTOMAT.js b/js/Misc/AUTOMAT.js index e34f5a85..654543e9 100644 --- a/js/Misc/AUTOMAT.js +++ b/js/Misc/AUTOMAT.js @@ -1,16 +1,16 @@ /* autogenerated from "macros/Misc/AUTOMAT.sci" */ function AUTOMAT() { AUTOMAT.prototype.define = function AUTOMAT() { - NMode = 2; + var NMode = 2; this.Minitial = 1; - NX = 1; + var NX = 1; this.X0 = [0.0]; this.XP = [[1],[1]]; - C1 = [2]; - C2 = [1]; - exprs = [[string(NMode)],[string(this.Minitial)],[string(NX)],[sci2exp(this.X0)],[sci2exp(this.XP)],[sci2exp(C1)],[sci2exp(C2)]]; - ipar = [[NMode],[this.Minitial],[NX],[this.XP],[C1],[C2]]; - rpar = [this.X0]; + var C1 = [2]; + var C2 = [1]; + var exprs = [[string(NMode)],[string(this.Minitial)],[string(NX)],[sci2exp(this.X0)],[sci2exp(this.XP)],[sci2exp(C1)],[sci2exp(C2)]]; + var ipar = [[NMode],[this.Minitial],[NX],[this.XP],[C1],[C2]]; + var rpar = [this.X0]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["automat"]), new ScilabDouble([10004])); this.model.in1 = new ScilabDouble([2*NX+1],[2*NX+1]); @@ -23,7 +23,7 @@ function AUTOMAT() { this.model.dep_ut = [false,true]; this.model.ipar = new ScilabDouble(ipar); this.model.rpar = rpar; - gr_i = []; + var gr_i = []; this.x = standard_define([4,2],this.model,exprs,gr_i); return new BasicBlock(this.x); } @@ -37,50 +37,52 @@ function AUTOMAT() { } AUTOMAT.prototype.set = function AUTOMAT() { this.x = arg1; - graphics = arg1.graphics; - exprs = graphics.exprs; + var graphics = arg1.graphics; + var exprs = graphics.exprs; this.model = arg1.model; - ipar = this.model.ipar; - NMode = ipar[1-1]; - NX = ipar[3-1]; + var ipar = this.model.ipar; + var NMode = ipar[1-1]; + var NX = ipar[3-1]; while (true) { - CX = "C1"; - MSG0 = "\'Jump from Mode "; - MSG2 = ":[..;M_final(Guard=In("; - MSG3 = ").i);..]\'"; - MSG = MSG0+"1"+MSG2+"1"+MSG3; - VEC = "\'mat\',[-1,1]"; + var CX = "C1"; + var MSG0 = "\'Jump from Mode "; + var MSG2 = ":[..;M_final(Guard=In("; + var MSG3 = ").i);..]\'"; + var MSG = MSG0+"1"+MSG2+"1"+MSG3; + var VEC = "\'mat\',[-1,1]"; for (i=2;i<=NMode;i+=1) { - CX = CX+","+"C"+string(i); - MSG = MSG+";"+MSG0+string(i)+MSG2+string(i)+MSG3; - VEC = VEC+","+"\'mat\',[-1,1]"; + var CX = CX+","+"C"+string(i); + var MSG = MSG+";"+MSG0+string(i)+MSG2+string(i)+MSG3; + var VEC = VEC+","+"\'mat\',[-1,1]"; } - GTV = "[ok,NMode,Minitial,NX,X0,XP,"+CX+",exprs]=scicos_getvalue(\'Set Finite state machine model\', [\'Number (finite-state) Modes\';\'Initial Mode\';\'Number of continuous-time states\';\'Continuous-time states intial values\';\'Xproperties of continuous-time states in each Mode\';"+MSG+"], list(\'vec\',1,\'vec\',1,\'vec\',1,\'mat\',[-1,-1],\'mat\',[-1,-1],"+VEC+"),exprs)"; + var GTV = "[ok,NMode,Minitial,NX,X0,XP,"+CX+",exprs]=scicos_getvalue(\'Set Finite state machine model\', [\'Number (finite-state) Modes\';\'Initial Mode\';\'Number of continuous-time states\';\'Continuous-time states intial values\';\'Xproperties of continuous-time states in each Mode\';"+MSG+"], list(\'vec\',1,\'vec\',1,\'vec\',1,\'mat\',[-1,-1],\'mat\',[-1,-1],"+VEC+"),exprs)"; execstr(GTV); if (!this.ok) { break; } - NMode_old = size(exprs,"*")-5; - ModifEncore = false; + var NMode_old = size(exprs,"*")-5; + var ModifEncore = false; if ((NMode_old>NMode)) { exprs.slice(NMode+6-1,NMode_old+5) = []; - ModifEncore = true; + var ModifEncore = true; } if ((NMode_old<NMode)) { exprs.slice(NMode_old+6-1,NMode+5) = exprs[NMode_old+4-1]; - ModifEncore = true; + var ModifEncore = true; } if ((NX!=size(this.X0,"*"))) { messagebox("the size of intial continuous-time states should be NX="+string(NX),"modal","error"); - ModifEncore = true; + var ModifEncore = true; } - [rXP,cXP] = size(this.XP); + var tmpvar0 = size(this.XP) + var rXP = tmpvar0[0] + var cXP = tmpvar0[1]; if (cXP!=NX) { messagebox("Xproperty matrix is not valid: it should have NX="+string(NX)+" columns","modal","error"); - ModifEncore = true; + var ModifEncore = true; } else if (((rXP!=NMode)&&(rXP>1))) { messagebox("Xproperty matrix is not valid: it should have NMode="+string(NMode)+" or 1 row(s)","modal","error"); - ModifEncore = true; + var ModifEncore = true; } else if ((rXP==1)) { for (i=1;i<=NMode-1;i+=1) { this.XP = [[this.XP],[this.XP[1-1].slice()]]; @@ -88,39 +90,42 @@ function AUTOMAT() { } if ((NMode_old==NMode)&&(!ModifEncore)) { this.XP = matrix(transpose(this.XP),NMode*NX,1); - ipar = [[NMode],[this.Minitial],[NX],[this.XP]]; - rpar = matrix(this.X0,NX,1); - INP = ones(NMode,1); + var ipar = [[NMode],[this.Minitial],[NX],[this.XP]]; + var rpar = matrix(this.X0,NX,1); + var INP = ones(NMode,1); if (NX>0) { - OUT = [[2],[2*NX]]; + var OUT = [[2],[2*NX]]; } else { - OUT = [2]; + var OUT = [2]; } - MaxModes = 1; - nzcross = 0; + var MaxModes = 1; + var nzcross = 0; for (i=1;i<=NMode;i+=1) { - Ci = evstr(exprs[5+i-1]); - ipar = [[ipar],[Ci]]; + var Ci = evstr(exprs[5+i-1]); + var ipar = [[ipar],[Ci]]; INP[i-1][1-1] = 2*NX+length(Ci); if ((nzcross<length(Ci))) { - nzcross = length(Ci); + var nzcross = length(Ci); } if ((MaxModes<max(Ci))) { - MaxModes = max(Ci); - imax = i; + var MaxModes = max(Ci); + var imax = i; } } if (MaxModes>NMode) { messagebox([["Number of Modes should be "+string(MaxModes)],["A destination Mode in Mode#"+string(imax)+"\'s targets is invalid!"]],"modal","error"); - ModifEncore = true; + var ModifEncore = true; } if (MaxModes<NMode) { messagebox(["There is an unused Mode or the Number of Modes should be "+string(MaxModes)],"modal","error"); - ModifEncore = true; + var ModifEncore = true; } } if (!ModifEncore) { - [this.model,graphics,this.ok] = check_io(this.model,graphics,INP,OUT,[],[1]); + var tmpvar1 = check_io(this.model,graphics,INP,OUT,[],[1]) + this.model = tmpvar1[0] + var graphics = tmpvar1[1] + this.ok = tmpvar1[2]; if (!this.ok) { break; } |