Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 29 additions & 46 deletions src/14_generateur_ecs.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@ import {
} from './13.2_generateur_combustion.js';
import { conso_aux_gen } from './15_conso_aux.js';
import { scopOrCop } from './12.4_pac.js';
import getFicheTechnique from './ficheTechnique.js';

function tv_pertes_stockage(di, de) {
function tv_pertes_stockage(di, de, VsCollectif) {
let vb;
if (de.volume_stockage <= 100) vb = '≤ 100';
else if (de.volume_stockage <= 200) vb = '100 < ≤ 200';
else if (de.volume_stockage <= 300) vb = '200 < ≤ 300';
const Vs = VsCollectif ? VsCollectif : de.volume_stockage;
if (Vs <= 100) vb = '≤ 100';
else if (Vs <= 200) vb = '100 < ≤ 200';
else if (Vs <= 300) vb = '200 < ≤ 300';
else vb = '> 300';

let matcher = {
Expand Down Expand Up @@ -75,45 +77,33 @@ function tv_facteur_couverture_solaire(di, de, zc_id, th) {
}
}

export function calc_Qdw_j(instal_ecs, becs_j) {
const de = instal_ecs.donnee_entree;
const du = instal_ecs.donnee_utilisateur || {};

const type_installation = requestInput(de, du, 'type_installation');

const Qdw_ind_vc = calc_Qdw_ind_j(instal_ecs, becs_j);
const Qdw_coll_vc = calc_Qdw_col_j(instal_ecs, becs_j, type_installation);
function calc_Qgw(di, de, du, ecs_de, th, dpe) {
const type_stockage_ecs = requestInput(de, du, 'type_stockage_ecs');
const isInstCollectif = ecs_de.enum_type_installation_id !== '1';
const ratio = isInstCollectif ? ecs_de.ratio_virtualisation || 1 : 1;

return Qdw_ind_vc + Qdw_coll_vc;
}
let Vs = requestInput(de, du, 'volume_stockage', 'float');

// 15.2.3
/**
* @param instal_ecs {InstallationEcsItem}
* @param becs_j {number}
*/
export function calc_Qdw_ind_j(instal_ecs, becs_j) {
const Rat_ecs = instal_ecs.generateur_ecs_collection.generateur_ecs.length > 1 ? 0.5 : 1;
return 0.1 * Rat_ecs * becs_j;
}
const gen_ecs_elec_ids = tvColumnIDs('pertes_stockage', 'type_generateur_ecs');
let isElectric = gen_ecs_elec_ids.includes(de.enum_type_generateur_ecs_id);

export function calc_Qdw_col_j(instal_ecs, becs_j, type_installation) {
if (type_installation.includes('installation collective')) {
return 0.112 * becs_j;
/**
* Application du ratio uniquement pour les installations collectives
*/
if (isInstCollectif) {
let fiche = getFicheTechnique(dpe, '8', 'stockage');
if (fiche) {
Vs = Number(fiche.valeur.toLowerCase().replace('l', '').replace('litres', ''));
}
if (!Vs) {
Vs = Number.parseFloat(Vs) / ratio;
}
}
return 0;
}

function calc_Qgw(di, de, du, ecs_de) {
const type_stockage_ecs = requestInput(de, du, 'type_stockage_ecs');

// stockage
if (type_stockage_ecs === "abscence de stockage d'ecs (production instantanée)") {
di.Qgw = 0;
return;
}
let Vs = requestInput(de, du, 'volume_stockage', 'float');
const gen_ecs_elec_ids = tvColumnIDs('pertes_stockage', 'type_generateur_ecs');

if (bug_for_bug_compat) {
/**
Expand All @@ -123,13 +113,11 @@ function calc_Qgw(di, de, du, ecs_de) {
*/
const VsFromDescription = getVolumeStockageFromDescription(ecs_de.description);

if (VsFromDescription === Math.round(Number.parseFloat(Vs) / de.ratio_virtualisation)) {
if (VsFromDescription === Math.round(Number.parseFloat(Vs) / ratio)) {
Vs = VsFromDescription;
}
}

let isElectric = gen_ecs_elec_ids.includes(de.enum_type_generateur_ecs_id);

/**
* Si le système ECS est inconnu -> on se base exclusivement sur le type d'énergie
* enum_type_generateur_ecs_id = 84 - "système collectif par défaut en abscence d'information : chaudière fioul pénalisante"
Expand All @@ -139,11 +127,12 @@ function calc_Qgw(di, de, du, ecs_de) {
}

if (isElectric) {
tv_pertes_stockage(di, de, du);
di.Qgw = ((8592 * 45) / 24) * Vs * di.cr;
tv_pertes_stockage(di, de, isInstCollectif ? Vs : undefined);
di.Qgw = ((8592 * 45) / 24) * Vs * di.cr * ratio;
delete di.cr;
} else {
di.Qgw = 67662 * Vs ** 0.55;
di.Qgw *= ratio;
}
}

Expand Down Expand Up @@ -264,14 +253,8 @@ export default function calc_gen_ecs(dpe, gen_ecs, ecs_di, ecs_de, GV, ca_id, zc
}
}

calc_Qgw(di, de, du, ecs_de);
calc_Qgw(di, de, du, ecs_de, th, dpe);

/**
* Application du ratio uniquement pour les installations collectives
*/
if (ecs_de.enum_type_installation_id !== '1') {
di.Qgw *= de.ratio_virtualisation;
}
let Iecs, Iecs_dep;

if (isPacGenerator) {
Expand Down
Loading