DesignBuilder-logo

Connexion

Script de Pilotage CTA en free-cooling (CVC Simple)

Publié dans Script EMS

Ce script EMS permet de redémarrer la ventilation mécanique à l'arrêt pour rafraichir un local. Ce script nécessite d'être en CVC Simple. Trois critères de démarrage sont proposés sur la température d'air extérieur, une température d'air de zone ou une moyenne et un delta entre ces deux températures.

Le débit d'air utilisé en free-cooling peut être modulé, cependant le code ci-dessous utilise 100% du débit.

Version : 6.1

Script :

! Ce programme nécessite :
! - Utiliser le CVC Simple
! - Avoir activer la ventilation mécanique dans l'onglet CVC

! Description du programme
! Il permet de redémarrer la ventilation mécanique (système Ideal Loads dans EnergyPlus) lorsque des conditions intérieures et extérieures permettent de rafraichir une zone. Le débit d'air est laissé par défaut à 100% du débit max mais vous pouvez le moduler (en fin de programme).
!
! Ideal Loads fonctionnant pour une zone dédiée, le free-cooling est aussi traité par zone.
! Les critères de tests proposés sont :
! * la température extérieure
! * le delta de température entre l'extérieur et la zone
! * une consigne de température à l'intérieur
! Vous devez modifier les températures, deltaT à ceux voulus et si besoin mettre en commentaire les tests dont vous ne voulez pas à l'aide du carcatère "!" en début de ligne.

EnergyManagementSystem:Sensor,
TemperatureExterieure,
Environment,
Site Outdoor Air Drybulb Temperature;

EnergyManagementSystem:Sensor,
PressionAirExterieur,
Environment,
Site Outdoor Air Barometric Pressure;

EnergyManagementSystem:Sensor,
RatioHumiditeAirExterieur,
Environment,
Site Outdoor Air Humidity Ratio;

<ForAllOccupiedZones>
EnergyManagementSystem:Sensor,
PlanningVentilMeca_<LoopZoneVariableName>,
<LoopZoneAttribute MechanicalVentilationSchedule>,
Schedule Value;

EnergyManagementSystem:InternalVariable,
DebitMassDimVentilMeca_<LoopZoneVariableName>,
<LoopZoneIDFName>,
Zone Outdoor Air Design Volume Flow Rate;

EnergyManagementSystem:Actuator,
DebitMassVentilMeca_<LoopZoneVariableName>,
<LoopZoneIDFName> IDEAL LOADS AIR,
Ideal Loads Air System,
Outdoor Air Mass Flow Rate;

EnergyManagementSystem:Sensor,
TemperatureAirMoy_<LoopZoneVariableName>,
<LoopZoneIDFName>,
Zone Mean Air Temperature;

<LoopNextZone>

EnergyManagementSystem:ProgramCallingManager,
AppelCtrlILFreeCooling,
AfterPredictorAfterHVACManagers,
CtrlILFreeCooling;

EnergyManagementSystem:Program,
CtrlILFreeCooling,

! Calcul densité de l'air extérieur pour conversion débit massique en débit volumique en fin de programme
SET rho = @RhoAirFnPbTdbW PressionAirExterieur TemperatureExterieure RatioHumiditeAirExterieur,

! Vérification que le planning de ventilation mécanique de la zone indique Off. Si oui, on peut évaluer l'intérêt du free-cooling sinon on laisse tourner la ventilation normalement
<ForAllOccupiedZones>
IF PlanningVentilMeca_<LoopZoneVariableName> <= 0,

! Par défaut, mettre la ventilation en route. Les critères suivants pourront l'arrêter.
SET EnRoute_<LoopZoneVariableName> = 1,

! Contrôle sur la température extérieure
! La ventilation est en route par défaut, ce test l'arrête
IF TemperatureExterieure >= 27,
SET EnRoute_<LoopZoneVariableName> = 0,
EndIf,

! Contrôle sur le DeltaT
! La ventlation est en route par défaut, ce test l'arrête
IF EnRoute_<LoopZoneVariableName> == 1,
IF TemperatureAirMoy_<LoopZoneVariableName> - TemperatureExterieure < 2,
SET EnRoute_<LoopZoneVariableName> = 0,
EndIf,
EndIf,

! Contrôle sur la température moyenne des zones
! La ventilation est en route par défaut, ce test l'arrête
IF EnRoute_<LoopZoneVariableName> == 1,
IF TemperatureAirMoy_<LoopZoneVariableName> <= 24,
SET EnRoute_<LoopZoneVariableName> = 0,
EndIf,
EndIf,

! mise à jour du débit d'air extérieur selon les tests précédents et avec le débit max de la zone.
! Le débit max : DebitMassDimVentilMeca_<LoopZoneVariableName> peut être modulé par un coefficient au choix si le free-cooling n'utilise pas 100% du débit possible.
SET DebitMassVentilMeca_<LoopZoneVariableName> = EnRoute_<LoopZoneVariableName> * DebitMassDimVentilMeca_<LoopZoneVariableName> / rho,
ELse,
SET DebitMassVentilMeca_<LoopZoneVariableName> = PlanningVentilMeca_<LoopZoneVariableName> * DebitMassDimVentilMeca_<LoopZoneVariableName> / rho,
EndIf,

<LoopNextZone>
;