.pragma library //===================================================================================== // Fonctions : Fournit une chaine de caractères constituant une liste de valeurs§niveaux // de batterie. La liste est composée de couples de nombre séparés par des ';' // et les deux valeurs au sein d'un couple sont séparés par '/'. // Par exemple : "13800/10000;13400/9800;13150/9600;13000/9400;12900/9000;12800/8000;12443/4887;12100/2000;11800/1000;11500/500;11000/200;10500/0" // La chaine est établie en fonction du paramètre de 'Tension_nominale' recue en paramètre. // Reçoit : La tension nomniale (a priori, 12, 24 ou 48) // Retour : La chaine //===================================================================================== function chaine_tension_niveau_batterie_usine(tension) { var chaine; switch(tension) { default: case 12: chaine = "13.800/100.00"; chaine += ";13.200/98.00"; chaine += ";13.000/96.00"; chaine += ";12.800/94.00"; chaine += ";12.600/90.00"; chaine += ";12.480/80.00"; chaine += ";12.100/30.00"; chaine += ";12.020/20.00"; chaine += ";11.800/10.00"; chaine += ";11.500/5.00"; chaine += ";11.000/2.00"; chaine += ";10.500/0.00"; break; case 24: chaine = "27.600/100.00"; chaine += ";26.400/98.00"; chaine += ";26.000/96.00"; chaine += ";25.600/94.00"; chaine += ";25.200/90.00"; chaine += ";24.960/80.00"; chaine += ";24.200/30.00"; chaine += ";24.040/20.00"; chaine += ";23.600/10.00"; chaine += ";23.000/5.00"; chaine += ";22.000/2.00"; chaine += ";21.000/0.00"; break; case 48: // Version issue des tables Suncy : chaine = "56.000/100.00"; chaine += ";50.000/84.00"; chaine += ";49.300/79.00"; chaine += ";49.000/74.00"; chaine += ";48.800/69.00"; chaine += ";48.000/30.00"; chaine += ";47.600/20.00"; chaine += ";47.200/15.00"; chaine += ";46.400/10.00"; chaine += ";45.000/5.00"; chaine += ";43.500/2.00"; chaine += ";42.000/0.00"; break; } return(chaine); } //===================================================================================== // Fonctions : Fournit une chaine de caractères constituant une liste de temérature/résistance_interne // de batterie. La liste est composée de couples de nombre séparés par des ';' // et les deux valeurs au sein d'un couple sont séparés par '/'. // La chaine est établie en fonction du paramètre de 'Type' (de batterie) recue en paramètre. // Reçoit : Le type de batterie // Retour : La chaine //===================================================================================== function chaine_temperature_resistance_interne_usine(type) { var chaine; switch(type) { default: case 0: // Non défini case 1: // Pb-Acide liquide case 2: // Pb-AGM/VRLA case 3: // Pb-Gel case 4: // Pb-Carbone chaine = "30/0.9"; chaine += ";25/1.0"; chaine += ";20/1.0"; chaine += ";15/1.1"; chaine += ";10/1.2"; chaine += ";5/1.3"; chaine += ";0/1.6"; chaine += ";-5/1.8"; chaine += ";-10/2.3"; chaine += ";-15/2.9"; chaine += ";-20/3.7"; chaine += ";-25/4.7"; chaine += ";-30/6.0"; // 30/0.9;25/1.0;20/1.0;15/1.1;10/1.2;5/1.3;0/1.6;-5/1.8;-10/2.3;-15/2.9;-20/3.7;-25/4.7;-30/6.0 break; case 10: // Lithium chaine = "25/0.8"; chaine += ";20/1.0"; chaine += ";15/1.0"; chaine += ";10/1.3"; chaine += ";5/1.8"; chaine += ";0/3.0"; chaine += ";-5/4.5"; chaine += ";-10/6.3"; chaine += ";-15/8.3"; chaine += ";-20/11.0"; chaine += ";-25/16.0"; chaine += ";-30/23.0"; // 25/0.8;20/1.0;15/1.0;10/1.3;5/1.8;0/3.0;-5/4.5;-10/6.3;-15/8.3;-20/11.0;-25/16.0;-30/23.0 break; } return(chaine); } //===================================================================================== // Fonctions : Calcule le coefficient de Peukert à partir de 2 couples de Capacité/Durée // de batterie. Si ces valeurs ne sont pas exploitables, la fonction renvoit la // valeur par défaut dépendant du type de batterie. // La formule pour calculer le coefficient est : // n = log (T0/T1) / [log(C1/C0) - log (T1/T0)] // Reçoit : Le type de batterie, la capacité 1 et la durée 1, la capacité 2 et la durée 2 // Retour : Le coefficient de Peukert //===================================================================================== function coefficient_de_peukert(type, capacite_1, heures_capacite_1, capacite_2, heures_capacite_2) { var coeff_peukert = 0; if ((capacite_1 > 0) && (heures_capacite_1 > 0) && (capacite_2 > 0) && (heures_capacite_2 > 0)) { var denom = (Math.log(capacite_2/capacite_1) - Math.log(heures_capacite_2/heures_capacite_1)); if (denom !== 0) coeff_peukert = Math.log(heures_capacite_1/heures_capacite_2) / denom; } if (coeff_peukert < 1) // On traite le cas où on n'a fait aucun calcul, où 'denom' est nul et si le résultat lui-même n'est pas conforme. { switch(type) { default: case 0: // Non défini coeff_peukert = 1.25 break; case 1: // Plomb acide liquide coeff_peukert = 1.30 break; case 2: // Plomb AGM coeff_peukert = 1.10 break; case 3: // Plomb Gel coeff_peukert = 1.10 break; case 4: // Plomb Carbone coeff_peukert = 1.15 break; case 10: // Lithium coeff_peukert = 1.05 break; } } return(coeff_peukert); }