LaundrySorcery

git clone git://xatko.vsos.ethz.ch/LaundrySorcery.git
Log | Files | Refs

Algorithm.dot (1378B)


      1 digraph G{
      2 	node[shape="rectangle"]
      3 	//splines=ortho;
      4 	rankdir=LR;
      5 	Init [label=<<B>Init</B><BR/>X<SUB>on</SUB> ~ N(0,0)<BR/>X<SUB>off</SUB> ~ N(0,0)<BR/>X<SUB>c</SUB>=X<SUB>off</SUB><BR/>on=false <BR/>λ<SUB>on</SUB>=0.75<BR/>λ<SUB>off</SUB>=0.75>];
      6 	{rank=same;
      7 		Measure [label="Measure Δt"];
      8 		OutlierZero [label="outliercnt=0"];
      9 		Update [label=<<B>Update Gaussian</B><BR/> X<SUB>c</SUB> ~ λ<SUB>c</SUB>*X<SUB>c</SUB>+(1-λ<SUB>c</SUB>)*N(Δt,Δt²)<BR/> λ<SUB>c</SUB>=min(λ<SUB>c</SUB>+1/1000,0.999999)>];
     10 	}
     11 	Min_Measures [label=<X<SUB>c</SUB> has more than 50 measurements?>];
     12 	subgraph cluster0{
     13 		rank=same;
     14 		Comp1 [label=<|Δt-µ<SUB>off</SUB>| &gt; 5*σ<SUB>off</SUB>>];
     15 		Comp2 [label=<|Δt-µ<SUB>off</SUB>| ≷ |Δt-µ<SUB>on</SUB>|>];
     16 	}
     17 	Outlier [label="outliercnt++ > 100"];
     18 	Switch [label=<<B>Toggle State</B><BR/>on=!on<BR/>X<SUB>c</SUB>=X<SUB>on/off</SUB>>];
     19 	
     20 	Init -> Measure;
     21 	Measure -> Min_Measures;
     22 	Update -> Measure[constraint=false];
     23 	OutlierZero -> Update[constraint=false];
     24 	Switch -> Measure[constraint=false];
     25 	
     26 	
     27 	edge[color="green"];
     28 	Min_Measures -> Comp1[label=<X<SUB>on</SUB> has no measurements>];
     29 	Min_Measures -> Comp2[label=<X<SUB>on</SUB> has measurements>];
     30 	Comp1 -> Outlier;
     31 	Comp2 -> Outlier;
     32 	Outlier -> Switch;
     33 	
     34 	edge[color="red",constraint=false]
     35 	Min_Measures -> Update;
     36 	Comp1 -> OutlierZero;
     37 	Comp2 -> OutlierZero;
     38 }