Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
record
sunflo
Commits
4ba42955
Commit
4ba42955
authored
Sep 24, 2019
by
RemiM
Committed by
Ronan Trepos
Sep 24, 2019
Browse files
Modified GY model
parent
092b1609
Changes
6
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
4ba42955
.cproject
.project
commun/buildvle/
sunflo/buildvle/
sunflo/buildvle/
*
sunflo_bio/buildvle/
sunflo_climat/buildvle/
sunflo_diag/buildvle/
...
...
@@ -33,3 +33,5 @@ sunflo_itk/build/
sunflo_itk/lib/
sunflo_itk/doc/
*archive*
*.gitignore*
*.so
sunflo/exp/sunflo_web.vpz
View file @
4ba42955
...
...
@@ -15,7 +15,7 @@
<port
name=
"zSemis"
/>

</out>

</model>

<model
width=
"100"
height=
"255"
x=
"28
7
"
y=
"63"
name=
"sunflo_bio"
type=
"coupled"
>

<model
width=
"100"
height=
"255"
x=
"28
6
"
y=
"63"
name=
"sunflo_bio"
type=
"coupled"
>

<in>
<port
name=
"ActionFerti"
/>
<port
name=
"ActionIrrig"
/>
...
...
@@ -75,14 +75,19 @@
<port
name=
"Eb"
/>

</out>

</model>

<model
observables=
"diagnostic"
conditions=
"CONFIG_
Plante,CONFIG
_SimuInit,CONFIG_
Variete
,diagnostic,
EXPERT
_Plante,EXPERT_
SimuInit
"
width=
"100"
dynamics=
"diagnostic"
height=
"75"
x=
"105
6
"
y=
"3
53
"
name=
"diagnostic"
type=
"atomic"
>

<model
observables=
"diagnostic"
conditions=
"CONFIG_
Variete,EXPERT
_SimuInit,CONFIG_
SimuInit
,diagnostic,
CONFIG
_Plante,EXPERT_
Plante
"
width=
"100"
dynamics=
"diagnostic"
height=
"75"
x=
"105
1
"
y=
"3
07
"
name=
"diagnostic"
type=
"atomic"
>

<in>
<port
name=
"ChgtPhasePhenoPlante"
/>
<port
name=
"ETRETM"
/>
<port
name=
"TT_A2"
/>
<port
name=
"PhasePhenoPlante"
/>
<port
name=
"Tmoy"
/>
<port
name=
"RG"
/>
<port
name=
"RG"
/>
<port
name=
"Pluie"
/>
<port
name=
"Ei"
/>
<port
name=
"FHTR"
/>
<port
name=
"CT_RUE"
/>
<port
name=
"FNIRUE"
/>
</in>

<out>
<port
name=
"D_MH"
/>
...
...
@@ -99,6 +104,14 @@
<port
name=
"NET_FM"
/>
<port
name=
"NET_MH"
/>
<port
name=
"TT_MH"
/>
<port
name=
"SRR_EF"
/>
<port
name=
"SRR_FM"
/>
<port
name=
"SIR_EF"
/>
<port
name=
"SFHTR_EF"
/>
<port
name=
"SFHTR_FM"
/>
<port
name=
"SHT_FM"
/>
<port
name=
"SIR_FM"
/>
<port
name=
"SFNRUE_MH"
/>
</out>

</model>

<model
observables=
"phenologie"
conditions=
"itk,cBegin,CONFIG_SimuInit,CONFIG_Variete,phenologie,EXPERT_Plante,CONFIG_Plante,EXPERT_SimuInit"
width=
"100"
dynamics=
"Phenologie"
height=
"105"
x=
"252"
y=
"22"
name=
"phenologie"
type=
"atomic"
>

...
...
@@ -124,7 +137,7 @@
<port
name=
"Teff"
/>

</out>

</model>

<model
width=
"100"
height=
"
195
"
x=
"88
9
"
y=
"
624
"
name=
"performances"
type=
"coupled"
>

<model
width=
"100"
height=
"
452
"
x=
"88
7
"
y=
"
536
"
name=
"performances"
type=
"coupled"
>

<in>
<port
name=
"ChgtPhasePhenoPlante"
/>
<port
name=
"LAI"
/>
...
...
@@ -146,6 +159,14 @@
<port
name=
"NET_FM"
/>
<port
name=
"NET_MH"
/>
<port
name=
"TT_MH"
/>
<port
name=
"SRR_EF"
/>
<port
name=
"SRR_FM"
/>
<port
name=
"SIR_EF"
/>
<port
name=
"SFHTR_EF"
/>
<port
name=
"SFHTR_FM"
/>
<port
name=
"SHT_FM"
/>
<port
name=
"SIR_FM"
/>
<port
name=
"SFNRUE_MH"
/>
</in>

<out>
<port
name=
"IRs"
/>
...
...
@@ -153,7 +174,7 @@
<port
name=
"TH"
/>
</out>

<submodels>

<model
observables=
"elaboration_qualite"
conditions=
"CONFIG_Variete,elaboration_qualite,itk"
width=
"100"
dynamics=
"elaboration_qualite"
height=
"165"
x=
"
377
"
y=
"
321
"
name=
"elaboration_qualite"
type=
"atomic"
>

<model
observables=
"elaboration_qualite"
conditions=
"CONFIG_Variete,elaboration_qualite,itk"
width=
"100"
dynamics=
"elaboration_qualite"
height=
"165"
x=
"
436
"
y=
"
460
"
name=
"elaboration_qualite"
type=
"atomic"
>

<in>
<port
name=
"ChgtPhasePhenoPlante"
/>
<port
name=
"PhasePhenoPlante"
/>
...
...
@@ -179,6 +200,14 @@
<port
name=
"NET_FM"
/>
<port
name=
"NET_MH"
/>
<port
name=
"TT_MH"
/>
<port
name=
"SRR_EF"
/>
<port
name=
"SRR_FM"
/>
<port
name=
"SIR_EF"
/>
<port
name=
"SFHTR_EF"
/>
<port
name=
"SFHTR_FM"
/>
<port
name=
"SHT_FM"
/>
<port
name=
"SIR_FM"
/>
<port
name=
"SFNRUE_MH"
/>
</in>

<out>
<port
name=
"IRs"
/>
...
...
@@ -255,6 +284,38 @@
<origin
model=
"performances"
port=
"TT_MH"
/>
<destination
model=
"elaboration_rendement"
port=
"TT_MH"
/>
</connection>
<connection
type=
"input"
>
<origin
model=
"performances"
port=
"SFHTR_FM"
/>
<destination
model=
"elaboration_rendement"
port=
"SFHTR_FM"
/>
</connection>
<connection
type=
"input"
>
<origin
model=
"performances"
port=
"SFHTR_EF"
/>
<destination
model=
"elaboration_rendement"
port=
"SFHTR_EF"
/>
</connection>
<connection
type=
"input"
>
<origin
model=
"performances"
port=
"SIR_EF"
/>
<destination
model=
"elaboration_rendement"
port=
"SIR_EF"
/>
</connection>
<connection
type=
"input"
>
<origin
model=
"performances"
port=
"SRR_FM"
/>
<destination
model=
"elaboration_rendement"
port=
"SRR_FM"
/>
</connection>
<connection
type=
"input"
>
<origin
model=
"performances"
port=
"SIR_FM"
/>
<destination
model=
"elaboration_rendement"
port=
"SIR_FM"
/>
</connection>
<connection
type=
"input"
>
<origin
model=
"performances"
port=
"SHT_FM"
/>
<destination
model=
"elaboration_rendement"
port=
"SHT_FM"
/>
</connection>
<connection
type=
"input"
>
<origin
model=
"performances"
port=
"SRR_EF"
/>
<destination
model=
"elaboration_rendement"
port=
"SRR_EF"
/>
</connection>
<connection
type=
"input"
>
<origin
model=
"performances"
port=
"SFNRUE_MH"
/>
<destination
model=
"elaboration_rendement"
port=
"SFNRUE_MH"
/>
</connection>
</connections>

</model>

<model
width=
"100"
height=
"330"
x=
"372"
y=
"577"
name=
"contraintes"
type=
"coupled"
>

...
...
@@ -298,6 +359,7 @@
<port
name=
"vMine"
/>

<port
name=
"FTSW"
/>

<port
name=
"vNabs"
/>

<port
name=
"CT_RUE"
/>
</out>

<submodels>

<model
observables=
"contrainte_azote"
conditions=
"CONFIG_Plante,CONFIG_SimuInit,CONFIG_Sol,EXPERT_Plante,EXPERT_SimuInit,contrainte_azote"
width=
"100"
dynamics=
"croissance_azote"
height=
"480"
x=
"937"
y=
"39"
name=
"contrainte_azote"
type=
"atomic"
>

...
...
@@ -402,7 +464,8 @@
<out>

<port
name=
"FT"
/>

<port
name=
"FTHN"
/>

</out>

<port
name=
"CT_RUE"
/>
</out>

</model>

</submodels>

<connections>

...
...
@@ -670,6 +733,10 @@
<origin
model=
"contrainte_azote"
port=
"vNabs"
/>

<destination
model=
"contraintes"
port=
"vNabs"
/>

</connection>

<connection
type=
"output"
>
<origin
model=
"contrainte_temperature"
port=
"CT_RUE"
/>
<destination
model=
"contraintes"
port=
"CT_RUE"
/>
</connection>
</connections>

</model>

</submodels>

...
...
@@ -930,6 +997,58 @@
<origin
model=
"diagnostic"
port=
"TT_MH"
/>
<destination
model=
"performances"
port=
"TT_MH"
/>
</connection>
<connection
type=
"input"
>
<origin
model=
"sunflo_bio"
port=
"Pluie"
/>
<destination
model=
"diagnostic"
port=
"Pluie"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"croissance_plante"
port=
"Ei"
/>
<destination
model=
"diagnostic"
port=
"Ei"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"contraintes"
port=
"FHTR"
/>
<destination
model=
"diagnostic"
port=
"FHTR"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"contraintes"
port=
"CT_RUE"
/>
<destination
model=
"diagnostic"
port=
"CT_RUE"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"diagnostic"
port=
"SIR_FM"
/>
<destination
model=
"performances"
port=
"SIR_FM"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"diagnostic"
port=
"SHT_FM"
/>
<destination
model=
"performances"
port=
"SHT_FM"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"diagnostic"
port=
"SFHTR_FM"
/>
<destination
model=
"performances"
port=
"SFHTR_FM"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"diagnostic"
port=
"SFHTR_EF"
/>
<destination
model=
"performances"
port=
"SFHTR_EF"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"diagnostic"
port=
"SIR_EF"
/>
<destination
model=
"performances"
port=
"SIR_EF"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"diagnostic"
port=
"SRR_FM"
/>
<destination
model=
"performances"
port=
"SRR_FM"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"diagnostic"
port=
"SRR_EF"
/>
<destination
model=
"performances"
port=
"SRR_EF"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"contraintes"
port=
"FNIRUE"
/>
<destination
model=
"diagnostic"
port=
"FNIRUE"
/>
</connection>
<connection
type=
"internal"
>
<origin
model=
"diagnostic"
port=
"SFNRUE_MH"
/>
<destination
model=
"performances"
port=
"SFNRUE_MH"
/>
</connection>
</connections>

</model>

<model
width=
"100"
height=
"120"
x=
"19"
y=
"43"
name=
"climat"
type=
"coupled"
>

...
...
@@ -1456,6 +1575,8 @@
<string>
PhasePḧenoPlante
</string>
<string>
Tmoy
</string>
<string>
RG
</string>
<string>
Pluie
</string>
<string>
FT
</string>
</set>

</port>

</condition>

...
...
@@ -1926,6 +2047,30 @@
<port
name=
"TT_MH"
>
<attachedview
name=
"viewDbg"
/>
</port>
<port
name=
"SRR_EF"
>
<attachedview
name=
"viewDbg"
/>
</port>
<port
name=
"SRR_FM"
>
<attachedview
name=
"viewDbg"
/>
</port>
<port
name=
"SIR_EF"
>
<attachedview
name=
"viewDbg"
/>
</port>
<port
name=
"SFHTR_FM"
>
<attachedview
name=
"viewDbg"
/>
</port>
<port
name=
"SFHTR_EF"
>
<attachedview
name=
"viewDbg"
/>
</port>
<port
name=
"SIR_FM"
>
<attachedview
name=
"viewDbg"
/>
</port>
<port
name=
"SHT_FM"
>
<attachedview
name=
"viewDbg"
/>
</port>
<port
name=
"SFNRUE_MH"
>
<attachedview
name=
"viewDbg"
/>
</port>
</observable>

<observable
name=
"temperature_efficace"
/>

<observable
name=
"temperature_moyenne"
>

...
...
sunflo/metadata/exp/sunflo_web.vpm
0 → 100644
View file @
4ba42955
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE vle_project_metadata>
<vle_project_metadata
version=
"1.x"
author=
"me"
>
<condPlugins/>
<outputGUIplugins/>
</vle_project_metadata>
sunflo/src/ContrainteTemperature.cpp
View file @
4ba42955
...
...
@@ -30,6 +30,9 @@ public :
/*Sync*/
Var
Tmoy
;
Var
FT
;
Var
FTHN
;
// Remis Add
Var
CT_RUE
;
// curve_thermal_rue
bool
first_compute
;
ContrainteTemperature
(
const
vle
::
devs
::
DynamicsInit
&
model
,
...
...
@@ -42,6 +45,7 @@ public :
PhasePhenoPlante
.
init
(
this
,
"PhasePhenoPlante"
,
events
);
Tmoy
.
init
(
this
,
"Tmoy"
,
events
);
first_compute
=
true
;
CT_RUE
.
init
(
this
,
"CT_RUE"
,
events
);
}
virtual
~
ContrainteTemperature
()
{
}
...
...
@@ -72,6 +76,20 @@ public :
FT
=
FT_tmp
;
}
FTHN
=
36.0
/
(
1.0
+
(
36.0
-
1.0
)
*
exp
(
-
0.119
*
(
Tmoy
()
-
15.0
)));
{
// CT_RUE = 0.0;
if
(
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_JUVENILE
)
||
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_RECOLTEE
)
){
CT_RUE
=
1.0
;
}
else
if
(
(
Tmoy
()
>
pp
.
Topt2_PHS
)
&
(
Tmoy
()
<
pp
.
Tmax_PHS
)
){
CT_RUE
=
Tmoy
()
*
(
1
/
(
pp
.
Topt2_PHS
-
pp
.
Tmax_PHS
)
)
-
(
pp
.
Tmax_PHS
/
(
pp
.
Topt2_PHS
-
pp
.
Tmax_PHS
)
);
}
else
if
(
Tmoy
()
>=
pp
.
Tmax_PHS
){
CT_RUE
=
0
;
}
else
{
CT_RUE
=
1.0
;
}
}
}
};
...
...
sunflo/src/Diagnostic.cpp
View file @
4ba42955
...
...
@@ -39,6 +39,10 @@ public :
/*Sync*/
Var
PhasePhenoPlante
;
/*Sync*/
Var
Tmoy
;
/*Sync*/
Var
Pluie
;
/*Sync*/
Var
Ei
;
/*Sync*/
Var
FHTR
;
/*Sync*/
Var
CT_RUE
;
...
...
@@ -85,6 +89,28 @@ public :
// Somme temps thermique après floraison (M0 - M3) (covariables statistiques)
Var
TT_MH
;
// Covariables to compute GY
// Somme précipitations durant la phase végétative (covariables statistiques)
Var
SRR_EF
;
// Somme précipitations durant la floraison (covariables statistiques)
Var
SRR_FM
;
// Somme radiations interceptées durant la phase végétative (covariables statistiques)
Var
SIR_EF
;
// Somme radiations interceptées durant la floraison (covariables statistiques)
Var
SIR_FM
;
// Effet contrainte hydrique sur la photosynthèse durant la phase végétative (covariables statistiques)
Var
SFHTR_EF
;
// Effet contrainte hydrique sur la photosynthèse durant la floraison (covariables statistiques)
Var
SFHTR_FM
;
// Facteur de réponse de la photosynthèse à la contrainte azote
Var
FNIRUE
;
// Effet contrainte azote sur la photosynthèse après la maturation (covariables statistiques)
Var
SFNRUE_MH
;
// Somme hautes températures durant la floraison
Var
SHT_FM
;
Diagnostic
(
const
vle
::
devs
::
DynamicsInit
&
model
,
const
vle
::
devs
::
InitEventList
&
events
)
:
...
...
@@ -111,11 +137,15 @@ public :
NHT28_EF
.
init
(
this
,
"NHT28_EF"
,
events
);
NHT28
.
init
(
this
,
"NHT28"
,
events
);
SGR_FM
.
init
(
this
,
"SGR_FM"
,
events
);
SGR_FM
.
init
(
this
,
"SGR_FM"
,
events
);
RG
.
init
(
this
,
"RG"
,
events
);
PhasePhenoPlante
.
init
(
this
,
"PhasePhenoPlante"
,
events
);
Tmoy
.
init
(
this
,
"Tmoy"
,
events
);
Pluie
.
init
(
this
,
"Pluie"
,
events
);
Ei
.
init
(
this
,
"Ei"
,
events
);
FHTR
.
init
(
this
,
"FHTR"
,
events
);
CT_RUE
.
init
(
this
,
"CT_RUE"
,
events
);
////// Covariables HI
NET_EF
.
init
(
this
,
"NET_EF"
,
events
);
...
...
@@ -123,8 +153,19 @@ public :
NET_MH
.
init
(
this
,
"NET_MH"
,
events
);
TT_MH
.
init
(
this
,
"TT_MH"
,
events
);
////// Covariables GY
SRR_EF
.
init
(
this
,
"SRR_EF"
,
events
);
SRR_FM
.
init
(
this
,
"SRR_FM"
,
events
);
SIR_EF
.
init
(
this
,
"SIR_EF"
,
events
);
SIR_FM
.
init
(
this
,
"SIR_FM"
,
events
);
SFHTR_EF
.
init
(
this
,
"SFHTR_EF"
,
events
);
SFHTR_FM
.
init
(
this
,
"SFHTR_FM"
,
events
);
FNIRUE
.
init
(
this
,
"FNIRUE"
,
events
);
SFNRUE_MH
.
init
(
this
,
"SFNRUE_MH"
,
events
);
SHT_FM
.
init
(
this
,
"SHT_FM"
,
events
);
}
virtual
~
Diagnostic
()
{
}
...
...
@@ -309,6 +350,102 @@ public :
}
}
{
if
(
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_JUVENILE
)
||
(
PhasePhenoPlante
()
>
PHASEPHENOPLANTE_CROISSANCEACTIVE
)
){
// traduit condition TT_A2 > date_TT_F1
SRR_EF
=
SRR_EF
(
-
1
);
}
else
{
SRR_EF
=
SRR_EF
(
-
1
)
+
Pluie
();
}
}
{
if
(
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_MATURATION
)
&&
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 > date_TT_F1
SRR_FM
=
SRR_FM
(
-
1
);
}
else
if
(
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_FLORAISON
)
||
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 < date_TT_E1
SRR_FM
=
SRR_FM
(
-
1
);
}
else
{
SRR_FM
=
SRR_FM
(
-
1
)
+
Pluie
();
}
}
{
if
(
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_JUVENILE
)
||
(
PhasePhenoPlante
()
>
PHASEPHENOPLANTE_CROISSANCEACTIVE
)
){
// traduit condition TT_A2 < date_TT_E1
SIR_EF
=
SIR_EF
(
-
1
);
}
else
{
SIR_EF
=
SIR_EF
(
-
1
)
+
0.48
*
RG
()
*
Ei
();
}
}
{
if
(
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_MATURATION
)
&&
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 > date_TT_F1
SIR_FM
=
SIR_FM
(
-
1
);
}
else
if
(
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_FLORAISON
)
||
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 < date_TT_E1
SIR_FM
=
SIR_FM
(
-
1
);
}
else
{
SIR_FM
=
SIR_FM
(
-
1
)
+
0.48
*
RG
()
*
Ei
();
}
}
{
if
(
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_MATURATION
)
&&
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 > date_TT_F1
SFHTR_FM
=
SFHTR_FM
(
-
1
);
}
else
if
(
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_FLORAISON
)
||
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 < date_TT_E1
SFHTR_FM
=
SFHTR_FM
(
-
1
);
}
else
{
SFHTR_FM
=
SFHTR_FM
(
-
1
)
+
(
1
-
FHTR
());
}
}
{
if
(
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_JUVENILE
)
||
(
PhasePhenoPlante
()
>
PHASEPHENOPLANTE_CROISSANCEACTIVE
)
){
// traduit condition TT_A2 < date_TT_E1
SFHTR_EF
=
SFHTR_EF
(
-
1
);
}
else
{
SFHTR_EF
=
SFHTR_EF
(
-
1
)
+
(
1
-
FHTR
());
}
}
{
if
(
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_MATURATION
)
&&
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 > date_TT_F1
SHT_FM
=
SHT_FM
(
-
1
);
}
else
if
(
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_FLORAISON
)
||
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 < date_TT_E1
SHT_FM
=
SHT_FM
(
-
1
);
}
else
{
SHT_FM
=
SHT_FM
(
-
1
)
+
(
1
-
CT_RUE
());
}
}
{
if
(
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_DESSICATION
)
&&
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 > date_TT_M3
SFNRUE_MH
=
SFNRUE_MH
(
-
1
);
}
else
if
(
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_MATURATION
)
||
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 < date_TT_M0
SFNRUE_MH
=
SFNRUE_MH
(
-
1
);
}
else
{
SFNRUE_MH
=
SFNRUE_MH
(
-
1
)
+
(
1
-
FNIRUE
());
}
}
}
};
...
...
sunflo/src/ElaborationRendement.cpp
View file @
4ba42955
...
...
@@ -55,6 +55,28 @@ public :
// Somme temps thermique après floraison (M0 - M3) (covariables statistiques)
Var
TT_MH
;
// Covariables to compute GY
// Somme précipitations durant la phase végétative (covariables statistiques)
Var
SRR_EF
;
// Somme précipitations durant la floraison (covariables statistiques)
Var
SRR_FM
;
// Somme radiations interceptées durant la phase végétative (covariables statistiques)
Var
SIR_EF
;
// Somme radiations interceptées durant la floraison (covariables statistiques)
Var
SIR_FM
;
// Effet contrainte hydrique sur la photosynthèse durant la phase végétative (covariables statistiques)
Var
SFHTR_EF
;
// Effet contrainte hydrique sur la photosynthèse durant la floraison (covariables statistiques)
Var
SFHTR_FM
;
// Effet contrainte azote sur la photosynthèse après la maturation (covariables statistiques)
Var
SFNRUE_MH
;
// Somme hautes températures durant la floraison
Var
SHT_FM
;
ElaborationRendement
(
const
vle
::
devs
::
DynamicsInit
&
model
,
const
vle
::
devs
::
InitEventList
&
events
)
:
DiscreteTimeDyn
(
model
,
events
)
...
...
@@ -78,6 +100,19 @@ public :
NET_FM
.
init
(
this
,
"NET_FM"
,
events
);
NET_MH
.
init
(
this
,
"NET_MH"
,
events
);
TT_MH
.
init
(
this
,
"TT_MH"
,
events
);
////// Covariables GY
SRR_EF
.
init
(
this
,
"SRR_EF"
,
events
);
SRR_FM
.
init
(
this
,
"SRR_FM"
,
events
);
SIR_EF
.
init
(
this
,
"SIR_EF"
,
events
);
SIR_FM
.
init
(
this
,
"SIR_FM"
,
events
);
SFHTR_EF
.
init
(
this
,
"SFHTR_EF"
,
events
);
SFHTR_FM
.
init
(
this
,
"SFHTR_FM"
,
events
);
SFNRUE_MH
.
init
(
this
,
"SFNRUE_MH"
,
events
);
SHT_FM
.
init
(
this
,
"SHT_FM"
,
events
);
}
virtual
~
ElaborationRendement
()
{
}
...
...
@@ -126,8 +161,7 @@ public :
// traduit condition TT_A2 < date_TT_F1
IRs_tmp
=
0.0
;
}
else
{
// GY converted (no impurity, no humidity, 0.91 * 0.98 = 0.8918)
IRs_tmp
=
0.8918
*
(
0.416
+
(
-
1.42e-04
)
*
photo_TDM_CROISSANCEACTIVE_A_FLORAISON
()
IRs_tmp
=
(
0.416
+
(
-
1.42e-04
)
*
photo_TDM_CROISSANCEACTIVE_A_FLORAISON
()
+
(
1.19e-03
)
*
NET_EF
()
+
(
-
8.45e-04
)
*
NET_FM
()
+
(
-
2.47e-04
)
*
NET_MH
()
+
(
-
3.61e-04
)
*
TT_MH
()
+
7.75e-01
*
pv
.
IRg
);
...
...
@@ -156,12 +190,27 @@ public :
if
(
(
PhasePhenoPlante
()
>=
PHASEPHENOPLANTE_DESSICATION
)
&&
(
PhasePhenoPlante
()
<
PHASEPHENOPLANTE_RECOLTEE
)
){
// traduit condition TT_A2 >= date_TT_M3
RDT_tmp
=
TDM
()
*
photo_IRs_aFinMATURATION
()
/
10.0
;
// RDT_tmp = TDM() * photo_IRs_aFinMATURATION() / 10.0;
// RDT_tmp = 0.1*(-15.81 + 0.025*photo_TDM_CROISSANCEACTIVE_A_FLORAISON() +
// 0.39147*NET_EF() - 0.45*NET_FM() - 0.058*NET_MH() + 0.016*TT_MH() + 62.19 * pv.IRg) ;
// RDT_tmp = 0.1*(-15.81 + 0.025*photo_TDM_CROISSANCEACTIVE_A_FLORAISON() +
// 0.39147*NET_EF() - 0.45*NET_FM() - 0.058*NET_MH() + 0.016*TT_MH() + 62.19 * pv.IRg) ;
RDT_tmp
=
0.1
*
(
-
16.12
+
58.35
*
pv
.
IRg
+
(
-
0.036
)
*
SRR_EF
()
+
(
-
0.062
)
*
SRR_FM
()
+
0.020
*
SIR_EF
()
+
0.075
*
SIR_FM
()
+
0.37
*
SFHTR_EF
()
+
(
-
0.77
)
*
SFHTR_FM
()
+
(
-
69.84
)
*
SHT_FM
()
+
(
-
0.84
)
*
SFNRUE_MH
()
+
0.011
*
pv
.
date_TT_M3
);
}
else
{
double
dI
=
IRs
()
-
IRs
(
-
1
);
double
dT
=
TDM
()
-
TDM
(
-
1
);
//
double dI = IRs() - IRs(-1);
//
double dT = TDM() - TDM(-1);
//RDT_tmp = TDM() * IRs() / 10.0;
RDT_tmp
=
RDT
(
-
1
)
+
(
TDM
(
-
1
)
*
dI
+
IRs
(
-
1
)
*
dT
+
dI
*
dT
)
/
10.0
;
//RDT_tmp = RDT(-1) + (TDM(-1)*dI + IRs(-1)*dT +dI*dT)/ 10.0;
// RDT_tmp = 0.1*(-15.81 + 0.025*photo_TDM_CROISSANCEACTIVE_A_FLORAISON() +
// 0.39147*NET_EF() - 0.45*NET_FM() - 0.058*NET_MH() + 0.016*TT_MH() + 62.19 * pv.IRg) ;
// RDT_tmp = 0.1*(-15.81 + 0.025*photo_TDM_CROISSANCEACTIVE_A_FLORAISON() +
// 0.39147*NET_EF() - 0.45*NET_FM() - 0.058*NET_MH() + 0.016*TT_MH() + 62.19 * pv.IRg) ;
RDT_tmp
=
0.1
*
(
-
16.12
+
58.35
*
pv
.
IRg
+
(
-
0.036
)
*
SRR_EF
()
+
(
-
0.062
)
*
SRR_FM
()
+
0.020
*
SIR_EF
()
+
0.075
*
SIR_FM
()
+
0.37
*
SFHTR_EF
()
+
(
-
0.77
)
*
SFHTR_FM
()
+
(
-
69.84
)
*
SHT_FM
()
+
(
-
0.84
)
*
SFNRUE_MH
()
+
0.011
*
pv
.
date_TT_M3
);
}
RDT
=
RDT_tmp
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment