Post di modelli di simulazione sviluppati dagli utenti con codice SEMoLa

11 views
Skip to first unread message

Francesco Danuso

unread,
Feb 18, 2012, 4:32:19 AM2/18/12
to SEMoLa
Salve a tutti.
Impiegare questa discussione per presentare modelli di simulazione
sviluppati con il linguaggio SEMoLa.
Francesco
Message has been deleted

Francesco Danuso

unread,
Feb 18, 2012, 9:43:58 AM2/18/12
to SEMoLa
' GRASS0.SEM
' Grassland model
$ tspan(90,295) dt(1)
M Biomass state(W) "Crop biomass" (t/ha)
' - air temperature
A Tmed=a+b*sin((time-c)*2*pi/365)
P a=11.6
P b=10.7
P c=112
' - biomass
S W=1 "Biomass of grass" (t/ha)
R GR=RGR*W*(1-W/Wmax) ?->W "Growth rate" (t/ha/d)
A RGR=tab(Tmed\0,8\0.08,25\0.05,35\0,45) "Relative growth rate" (1/d)
P Wmax=25 "Maximum biomass" (t/ha)

Francesco Danuso

unread,
Feb 18, 2012, 9:45:18 AM2/18/12
to SEMoLa
' RainGen: rainfall generator
' Rainy status of the day by a First order Markov Chain
' Rainfall amount by Gamma pdf
' F. Danuso (6/2/2002)
$ vers(1.0) tspan(1,3650)
A Doy=mod(time,365) Day of the year

' Rainfall Event ===========================================
A Day=markov(Dry,Wet\Pdd,Pdw\Pwd,Pww) Rainfall status (1/0)
P Dry=0 Dry status (0)
P Wet=1 Rainy status (1)
' Transition probabilities estimated on a monthly base
' Values estimated by Climak for Padua (1981-88)(Italy)
A Pdd=tab(Doy
\0.90,16\0.92,45\0.84,75\0.79,105\0.70,136\0.79,166\0.86,197\0.85,228\0.88,258\0.86,289\0.89,319\0.89,350)
A Pwd=tab(Doy
\0.48,16\0.51,45\0.51,75\0.48,105\0.39,136\0.65,166\0.79,197\0.70,228\0.50,258\0.71,289\0.51,319\0.45,350)
A Pdw=1-Pdd
A Pww=1-Pwd

' Rainfall amount - Gamma parameters for Padua (Italy) by Climak
a Amount=rGamma(Ag,Bg,0)
A Rain=cond(Day,Amount,0) Rainfall amount (mm/d)
A Ag=tab(Doy
\0.60,16\0.60,45\0.55,75\0.98,105\0.88,136\0.79,166\1.31,197\1.15,228\0.69,258\0.99,289\0.72,319\1.16,350)
A Bg=tab(Doy
\8.10,16\16.26,45\13.94,75\6.13,105\8.04,136\11.59,166\6.23,197\8.64,228\10.33,258\10.95,289\12.66,319\7.72,350)

alvaro...@uniud.it

unread,
Feb 20, 2012, 2:53:49 AM2/20/12
to SEMoLa
Non ho capito bene come viene calcolata la tmed? a, b, c sono
parametri calcolati da una serie storica?

Francesco Danuso

unread,
Feb 20, 2012, 5:32:50 AM2/20/12
to SEMoLa
Per mostrare un modello facilmente eseguibile ho definito Tmed
(temperatura media giornaliera dell'aria) come una variabile
ausiliaria calcolata con una sinusoide, invece che impiegaredati reali
attraverso la definizione di Tmed come variabile esogena. a, b e c
sono parametri che ho stimato da dati reali con il comando.

. nlreg Tmed=a+b*sin((doy-c)*2*PI/365) param(a=10,b=8,c=80)

mandi
Francesco

On 20 Feb, 08:53, "alvaro.ro...@uniud.it" <alvaro.ro...@uniud.it>
wrote:
Reply all
Reply to author
Forward
0 new messages