Posted to tcl by arjen at Wed Feb 25 10:08:06 GMT 2009view pretty
# tidehavl_ns1.tcl -- # Tweede schets: Haringvliet, niet sluiten, type 1 en 2 # package require Plotchart # computeStorm -- # Bereken een redelijk (wel hoekig) verloop voor de stormopzet: # # t < 30: 0 # 30 < t < 38: lineair oplopend naar 1.5 # 38 < t < 44: 1 # 50 < t < 60: lineair aflopend naar 0 # proc computeStorm {t} { set surge1 [expr {1.5*($t-38)/8.0}] set surge2 [expr {1.5*(60-$t)/10.0}] set surge [expr {min($surge1, $surge2, 1.5)}] set surge [expr {max($surge, 0.0)}] return $surge } # main -- # pack [canvas .c -bg white -width 500 -height 150] \ [canvas .c2 -bg white -width 500 -height 250] -side top set p [::Plotchart::createXYPlot .c {0 84 12} {-2 4 2}] set p2 [::Plotchart::createXYPlot .c2 {0 84 12} {0 12 5}] console show for {set t 0} {$t <= 84} {incr t} { set storm [computeStorm $t] set wlevel [expr {1.0 + 1.4*cos(2.0*3.1415926*($t-5)/12.5) + $storm}] $p plot data $t $wlevel puts "$t $wlevel" } $p dataconfig level -colour blue $p plot level 0 1.5 $p plot level 84 1.5 # # Plot van de hoogte sluisdeuren # $p2 ytext "Schuifhoogte" $p2 xtext "Tijd" $p2 dataconfig working -colour black $p2 dataconfig failing -colour red $p2 dataconfig failing2 -colour blue # # Correcte werking # set height 2.8 set toggle 1 set tp 0 set op 1 foreach t {0 2.5 7.5 15.5 20.0 27.5 32.5 40.2 47.0 50.5 58.0 65.0 70.0 77.7 82.2} \ open {1 0 1 0 1 0 1 0 3.95 0 3.95 0 1 0 1} { $p2 plot working $tp [expr {$height*$op}] $p2 plot working $t [expr {$height*$op}] $p2 plot working $t [expr {$height*$open}] set tp $t set op $open } # # Falen type 1: blijven steken op LPH84 # set height 3.0 set toggle 1 set tp 0 set op 0 foreach t {0 2.5 7.5 15.5 20.0 27.5 32.5 40.2 47.0 50.5 58.0 63.2 65.0 70.0 77.7 82.2} \ open {1 0 1 0 1 0 1 1 1 1 1 3.75 0 1 0 1} { $p2 plot failing $tp [expr {$height*$op}] $p2 plot failing $t [expr {$height*$op}] $p2 plot failing $t [expr {$height*$open}] set tp $t set op $open } # # Falen type 2: volledig open! # set height 3.3 set tp 0 set op 0 foreach t {0 2.5 7.5 15.5 20.0 27.5 32.5 40.2 47.0 50.5 58.0 63.2 65.0 70.0 77.7 82.2} \ open {1 0 1 0 1 0 1 3.40 3.40 3.40 3.40 3.40 0 1 0 1} { $p2 plot failing2 $tp [expr {$height*$op}] $p2 plot failing2 $t [expr {$height*$op}] $p2 plot failing2 $t [expr {$height*$open}] set tp $t set op $open } set moment [expr {40.2-0.5}] ;# Faalperiode begint op 40.2 uur $p2 plot moment $moment 5.1 $p2 plot moment $moment 4.5 $p2 plot moment $moment 4.8 $p2 plot moment $moment 4.8 $p2 plot moment [expr {24+$moment}] 4.8 ;# Faalduur is 23 uur $p2 plot moment [expr {24+$moment}] 4.5 $p2 plot moment [expr {24+$moment}] 5.1 $p2 balloon [expr {$moment-1}] 4.8 "Faalperiode" south-east $p2 balloon 5 2.8 "LPH84" north-east $p2 legendconfig -position top-left $p2 legend working "Werkende deuren" $p2 legend failing "Falende deuren (type 1)" $p2 legend failing2 "Falende deuren (type 2)" tkwait visibility . $p saveplot havl_ns1_getij.ps $p2 saveplot havl_ns1_deuren.ps