Closed PBYetml closed 1 year ago
point 1 ; void CalculTensionPontDivisueur(str_pontDiviseur* pt_demoPontDiv)
point 2 :
{
double sommeResistances = 0;
int i;
for (i = 0; i < pt_demoPontDiv->com_resistance; i++)
{
sommeResistances = pt_demoPontDiv->tb_valeur_R[i] + sommeResistances;
}
int e; //Index
double tensionResistance_n; //variable pour VpontRu
for (e = 0; e < pt_demoPontDiv->com_resistance; e++)
{
tensionResistance_n = pt_demoPontDiv->alime * (pt_demoPontDiv->tb_valeur_R[e] / sommeResistances); //tensionResistanceU = VpontRu
pt_demoPontDiv->tb_bornes_resistance[e] = tensionResistance_n;
}
}
https://github.com/PBYetml/PROG_SLO1_C_PRJ2/issues/22#issuecomment-1495512185
tensionResistance_n = pt_demoPontDiv->alime * (pt_demoPontDiv->tb_valeur_R[e] / sommeResistances);
êtes-vous sur de calculer la tension de chaque point milieu de votre pont résistif => pas sur ;) -> faut encore revoir votre algorithme
j'ai fais come melisa je calcule chaque résistance entre les borne
Etes-vous sur que c'est vraiment ca cela ? Malheureusement votre algorithme ne fonctionne pas si vous voulez calculer la tension en aux borne de chaque résistances => ici vous devez faire de toute manière une addition de plusieurs résistances sur le numérateur... prenez le cas d'un pont résistif à 3 résistances, calculez les points de tensions U1 et U2 (voir schéma) regardez si vous arrivez a en tirer une formule générique ;)
MAJ 18.04.2023 => après discussion et démonstration avec CFO => on peut admettre votre solution pour la tension aux bornes de chaque résistance, mais cela signifie que vous modifier chaque fois la structure du bon -> donc ici, il vous est demandé explicitement de calculer les points milieu... le pont ne doit pas changer - résistance ne doivent pas bouger !!!
pour le calcule j'ais fais comme vous le voulais en laisse mon encien version dans les calcule il fais donc les 2
void CalculTensionPontDivisueur(str_pontDiviseur* pt_demoPontDiv)
{
double sommeResistances = 0;
double EnretResistances = 0;
int i;
for (i = 0; i < pt_demoPontDiv->com_resistance; i++)
{
sommeResistances = pt_demoPontDiv->tb_valeur_R[i] + sommeResistances;
}
int e; //Index
double tensionResistance_n; //variable pour VpontRu
for (e = 0; e < pt_demoPontDiv->com_resistance; e++)
{
tensionResistance_n = pt_demoPontDiv->alime * (pt_demoPontDiv->tb_valeur_R[e] / sommeResistances); //tensionResistanceU = VpontRu
pt_demoPontDiv->tb_bornes_resistance[e] = tensionResistance_n;
}
EnretResistances = sommeResistances ;
for (e = 0; e < pt_demoPontDiv->com_resistance; e++)
{
EnretResistances -= pt_demoPontDiv->tb_valeur_R[e];
pt_demoPontDiv->tb_v_Entre_Resistances[e] = pt_demoPontDiv->alime * (EnretResistances / sommeResistances);
}
}
C'est OKI cette fois ;)
voici un listing des points à améliorer/corriger dans le fichier
fonctionPontDiv.c
=> voir fichier vidéo lien vidéo