Bonjour tout le monde,
Je cherche à programmer une charge ou une décharge de batterie à partir d'un script sur Matlab. Il se trouve que le programme ne prend en compte que la valeur initiale que j'ai déclaré. je vous mets le programme pour que vous ayez une idée plus claire des choses. Toute aide de votre part sera la bienvenue. Merci par avance.
Programme :
function [SOCi,Pdech] = Batterie(Pe)
%#codegen
Pmaxbattc = 6; % Puissance de charge maximale de la batterie
Pmaxbattd = 5; % Puissance de décharge maximale de la batterie
nc = 0.6; % Rendement de charge de la batterie
nd = 0.8; % Rendement de décharge de la batterie
Q = 7; % Capacité maximale de la batterie
C = 3.6; % Coefficient de transfert de puissance
SOCh = 8.5; % Valeur de seuil haut en état de charge de la batterie
SOCb = 4; % Valeur de seuil bas en état de charge de le batterie
SOCi = 2; % Valeur initiale de l'état de charge
SOCt = 0; % Déclaration et initialisation de la variable de temporaire pour l'état de charge
Pt = 0; % Déclaration et initialisation de la variable temporaire de la puissance
if Pe > 0 % Puissance à charger
if Pe <= Pmaxbattc % Vérification si on n'a pas atteint la puissance maximale de la batterie en charge
Pt = Pe; % Affectation de cette puissance à une variable temporaire de charge
else
Pt = Pmaxbattc; % Puissance maximale atteinte, affectation de cette puissance max à la variable temporaire de charge
end
SOCt = SOCi + (nc*Pt/(Q*C)); % Calcul de l'état de charge après stockage
if SOCt > SOCh % Vérification si on atteint la valeur de seuil haut de la batterie
Pt = Pt - (1/((SOCt-SOCh)*Q*C*nc)); % Calcul de la puissance admissible
SOCt = SOCh; % Limitation du SOC
end
end
if Pe < 0 % Puissance à décharger
if Pe >= -Pmaxbattd % Vérification si on a pas atteint la puissance maximale de la batterie en décharge
Pt = -Pe;% Affectation de cette puissance à une variable temporaire de décharge
else
Pt = Pmaxbattd;% Puissance maximale atteinte, affectation de cette puissance max à la variable temporaire de décharge
end
SOCt = SOCi + (Q*C/nd*Pt);% Calcul de l'état de charge après décharge
if SOCt < SOCb % Vérification si on atteint la valeur de seuil bas de la batterie
Pt = Pt - ((SOCt - SOCb)*Q*C*nd);% Calcul de la puissance déchargeable
SOCt = SOCb; % Limitation du SOC
end
end
SOCi = SOCt; % Etat de charge de la batterie à temps réel
Pdech = Pe;% Etat de la puissance à temps réel
Testez-le et peut être que vous comprendrez mieux ce que je cherche à faire
-----