Do you have a question? Post it now! No Registration Necessary

Re: valeur efficasse en regime impulsionnel
4ce58a07$0$7721$ snipped-for-privacy@reader.news.orange.fr...

juste 49 mots, mais limité à des entiers de 8 bits avec un resultat sous le
même format... c'est à dire très approximatif
Si je veux une vraie racine carré je dois passer sur un 18Fxxx

Re: valeur efficasse en regime impulsionnel
On Nov 18, 10:16 pm, "Adrien Gaudel"

Si tu mesures avec ADC + uC alors
il est possible d'implE9%menter au choix:
1) Une table de look-up (si encombrement mE9%moire ok)
2) Une approximation par dE9%veloppement en sE9%rie.
3) Un format flottant IEEE rudimentaire, optimisE9%
uniquement pour le produit et la racine carrE9%e.
4) Un calcul uniquement avec des entiers
avec la virgule flottante implicite.
5) Envoyer les mesures brutes via port sE9%rie vers
un PC qui se chargera de tous les calculs lourds
et de l'affichage en mode grand luxe Peff 3D% f(t)
6) ...
Le tout est de bien dE9%finir les contraintes
(mesure, vitesse de traitement, taille mE9%moire, etc)
et ce que tu veux obtenir comme prE9%cision de mesure.

Si tu mesures avec ADC + uC alors
il est possible d'implE9%menter au choix:
1) Une table de look-up (si encombrement mE9%moire ok)
2) Une approximation par dE9%veloppement en sE9%rie.
3) Un format flottant IEEE rudimentaire, optimisE9%
uniquement pour le produit et la racine carrE9%e.
4) Un calcul uniquement avec des entiers
avec la virgule flottante implicite.
5) Envoyer les mesures brutes via port sE9%rie vers
un PC qui se chargera de tous les calculs lourds
et de l'affichage en mode grand luxe Peff 3D% f(t)
6) ...
Le tout est de bien dE9%finir les contraintes
(mesure, vitesse de traitement, taille mE9%moire, etc)
et ce que tu veux obtenir comme prE9%cision de mesure.

Re: valeur efficasse en regime impulsionnel
On Nov 18, 11:17 pm, "JP"
| Une table de look-up (si encombrement mE9%moire ok)

Oui, je suppose que ce doit etre ca: une LUT stocke
des valeurs 'y' calculE9%es E0% l'avance pour y 3D% f(x)
avec 'x' utilisE9% en index d'entrE9%e dans la table.
Plus aucun calcul sauf [ptr_table + offset_entrE9%e]
y'a pas plus rapide quand on a de la mE9%moire
mais peu de puissance de calcul (ca m'a souvent
sorti d'affaire avec des uC un peu poussifs)
Et je ne parle pas de l'instruction XLAT
puisqu'on est chez MicroChit :o)

Avec un index d'un octet j'aurais dit 256 entrE9%es (?)

Pourquoi 1 % ?
Cela dE9%pend la taille de la table, de son nombre d'entrE9%es
et du nombre de chiffres significatifs des valeurs stockE9%es.
La prE9%cision peut etre E9%tendue avec un ADC 12 ou 16 bits,
et les valeurs prE9%-calculE9%es 'y' peuvent etre aussi prE9%cises
que l'on veut ... jusqu'E0% la limite de la mE9%moire disponible.
(ou alors envoyer les mesures brutes vers un PC)

Oui, pas de calcul quand on a pas assez de puissance
de calcul : la superioritE9% de l'Homme sur la machine !

Tu veux dire : quand le uC n'est pas douE9% ;o)
A propos, je me demande s'il n'existe pas un algo
pour E9%valuer une racine carrE9%e directement en binaire
via un log2(x) calculE9% avec de simples dE9%calages ...
| Une table de look-up (si encombrement mE9%moire ok)

Oui, je suppose que ce doit etre ca: une LUT stocke
des valeurs 'y' calculE9%es E0% l'avance pour y 3D% f(x)
avec 'x' utilisE9% en index d'entrE9%e dans la table.
Plus aucun calcul sauf [ptr_table + offset_entrE9%e]
y'a pas plus rapide quand on a de la mE9%moire
mais peu de puissance de calcul (ca m'a souvent
sorti d'affaire avec des uC un peu poussifs)
Et je ne parle pas de l'instruction XLAT
puisqu'on est chez MicroChit :o)

Avec un index d'un octet j'aurais dit 256 entrE9%es (?)

Pourquoi 1 % ?
Cela dE9%pend la taille de la table, de son nombre d'entrE9%es
et du nombre de chiffres significatifs des valeurs stockE9%es.
La prE9%cision peut etre E9%tendue avec un ADC 12 ou 16 bits,
et les valeurs prE9%-calculE9%es 'y' peuvent etre aussi prE9%cises
que l'on veut ... jusqu'E0% la limite de la mE9%moire disponible.
(ou alors envoyer les mesures brutes vers un PC)

Oui, pas de calcul quand on a pas assez de puissance
de calcul : la superioritE9% de l'Homme sur la machine !

Tu veux dire : quand le uC n'est pas douE9% ;o)
A propos, je me demande s'il n'existe pas un algo
pour E9%valuer une racine carrE9%e directement en binaire
via un log2(x) calculE9% avec de simples dE9%calages ...

Re: valeur efficasse en regime impulsionnel

Avec des flottants 32 bits - 8 bits d'exposant et 23 bits de mantisse -, sur
un micro genre 16F886 et un compilateur C, j'ai pu écrire a outrance des
trucs du genre sans aucun problème :
t = pow(flux/(e*STPHNCST)+pow(ts+ZERO_K, 4), 0.25)-ZERO_K;
Et le truc qui me prenait le plus de mémoire c'était les menus !
-- cLx

Re: valeur efficasse en regime impulsionnel
On Nov 19, 1:52 am, cLx

C'est sur qu'en important une librairie de calcul en flottant,
ou en choisissant un uP avec coprocesseur intE9%grE9%, avec
un compilo tout devient transparent pour le programmeur.
Vers 95 j'ai du E9%crire en assembleur un package de calcul
en float 32 bits dE9%rivE9% d'un format IEEE pour le 68HC11,
je m'en serais passE9% mais c'est vrai que le baptE8%me du feu est
une bonne E9%cole, ca permet de savoir ce qu'il y a sous le capot.
Mais il existe toujours une limite qu'un besoin
de calcul suffisamment intensif pourra exploser.
Ou une prE9%cision sur les chiffres qui ne sera pas tenue
par des float 32 bits E0% cause des propagations d'arrondis.
Et si on est contraint de faire avec un dinosaure, il faudra
bien implE9%menter une mE9%thode alternative (et il y en a plusieurs)

Ah, les joies du dE9%veloppement des interfaces utilisateurs,
et aussi E9%crire les docs techniques, les manuels d'utilisation,
former le SAV, les commerciaux nerveux pour leur prime ...
puis se dE9%barasser de tout ca pour se consacrer au R&D :o)

C'est sur qu'en important une librairie de calcul en flottant,
ou en choisissant un uP avec coprocesseur intE9%grE9%, avec
un compilo tout devient transparent pour le programmeur.
Vers 95 j'ai du E9%crire en assembleur un package de calcul
en float 32 bits dE9%rivE9% d'un format IEEE pour le 68HC11,
je m'en serais passE9% mais c'est vrai que le baptE8%me du feu est
une bonne E9%cole, ca permet de savoir ce qu'il y a sous le capot.
Mais il existe toujours une limite qu'un besoin
de calcul suffisamment intensif pourra exploser.
Ou une prE9%cision sur les chiffres qui ne sera pas tenue
par des float 32 bits E0% cause des propagations d'arrondis.
Et si on est contraint de faire avec un dinosaure, il faudra
bien implE9%menter une mE9%thode alternative (et il y en a plusieurs)

Ah, les joies du dE9%veloppement des interfaces utilisateurs,
et aussi E9%crire les docs techniques, les manuels d'utilisation,
former le SAV, les commerciaux nerveux pour leur prime ...
puis se dE9%barasser de tout ca pour se consacrer au R&D :o)

Re: valeur efficasse en regime impulsionnel
ic4hpp$700$ snipped-for-privacy@news.trigofacile.com...

Moi je devellope en basic (compilateur Proton+) et tout ce qui est
multiplication/division, même sur des flotants en 32 bits ne pose aucun
probleme, j'ai regardé un coup du côté du code assembleur généré, ça à l'air
bien optimisé. Par contre pour faire de la "vraie" trigonometrie ils
conseillent fortement de passer sur un core 16 bits, sinon c'est du "basic
stamp compatible" (ça veut tout dire)

Re: valeur efficasse en regime impulsionnel
ic4hpp$700$ snipped-for-privacy@news.trigofacile.com...
> -- cLx
Sinon j'essaye de mettre en oeuvre le schéma que tu m'avais fait pour la
jauge de batterie. J'ai un gros gros probleme d'offset ! quasi 600mV en
sortie du soustracteur.
Si les deux entrées sont à 0V aucun soucis, à partir du moment où l'une ou
l'autre des entrée est a un potentiel different de 0, je me retrouve avec ce
maudit offset, même si le resultat de la soustraction est normalement égal à
0 ou inferieur à ces 600mV.
Avec un alim symetrique aucun soucis, pas d'offset, mais du coup si l'entrée
du pont diviseur d'entrée tombe en dessous de la valeur inferieure, je me
retrouve avec une sortie negative... le convertisseur ADC du pic va pas
aimer, et si j'essye de mettre une diode pour interdire les valeurs
negatives ça me fout une merde pas possible dans les valeurs basses
(logique...)

Re: valeur efficasse en regime impulsionnel
On Nov 18, 10:16A0%pm, "Adrien Gaudel"

Algo de racine carrE9%e avec des entiers, pas trE9%s rapide mais sympa :
unsigned int sqrt( unsigned int x )
{
unsigned int y 3D% 0,
p 3D% 1 << ( (sizeof(int)<<2) - 1 );
for(; p; p >>3D% 1 )
{ y +3D% p;
if( y* y > x ) y -3D% p;
}
return y;
}

Algo de racine carrE9%e avec des entiers, pas trE9%s rapide mais sympa :
unsigned int sqrt( unsigned int x )
{
unsigned int y 3D% 0,
p 3D% 1 << ( (sizeof(int)<<2) - 1 );
for(; p; p >>3D% 1 )
{ y +3D% p;
if( y* y > x ) y -3D% p;
}
return y;
}

Re: valeur efficasse en regime impulsionnel
On Nov 18, 12:53 pm, "Adrien Gaudel"

Ok. Sous l'hypothE8%se que l'amplitude du courant
de sortie soit rectangulaire, on peut dE9%duire
la valeur efficace E0% partir de la valeur moyenne,
avec shunt, passe-bas, voltmE8%tre et calculatrice.
Comme l'a dit "michel ou sam" dans son post :
efficace 3D% racine_carrE9%e( crete * moyenne )
Donc, tu divises la valeur lue au voltmE8%tre par la
rE9%sistance du shunt pour avoir le courant *moyen*,
que tu multiplies par la valeur *crete* du courant.
Extrais la racine carrE9%e et tu as le courant *efficace*.
Pour comprendre pouquoi
(et si quelqu'un veut bien invalider ou confirmer)
http://cjoint.com/?0lsqSzDinRK

Ok. Sous l'hypothE8%se que l'amplitude du courant
de sortie soit rectangulaire, on peut dE9%duire
la valeur efficace E0% partir de la valeur moyenne,
avec shunt, passe-bas, voltmE8%tre et calculatrice.
Comme l'a dit "michel ou sam" dans son post :
efficace 3D% racine_carrE9%e( crete * moyenne )
Donc, tu divises la valeur lue au voltmE8%tre par la
rE9%sistance du shunt pour avoir le courant *moyen*,
que tu multiplies par la valeur *crete* du courant.
Extrais la racine carrE9%e et tu as le courant *efficace*.
Pour comprendre pouquoi
(et si quelqu'un veut bien invalider ou confirmer)
http://cjoint.com/?0lsqSzDinRK

Re: valeur efficasse en regime impulsionnel
snipped-for-privacy@k22g2000yqh.googlegroups.com...
On Nov 18, 12:53 pm, "Adrien Gaudel"

Ok. Sous l'hypothèse que l'amplitude du courant
de sortie soit rectangulaire, on peut déduire
la valeur efficace à partir de la valeur moyenne,
avec shunt, passe-bas, voltmètre et calculatrice.
Comme l'a dit "michel ou sam" dans son post :
efficace = racine_carrée( crete * moyenne )
Donc, tu divises la valeur lue au voltmètre par la
résistance du shunt pour avoir le courant *moyen*,
que tu multiplies par la valeur *crete* du courant.
Extrais la racine carrée et tu as le courant *efficace*.
Pour comprendre pouquoi
(et si quelqu'un veut bien invalider ou confirmer)
http://cjoint.com/?0lsqSzDinRK
Bonjour,
j'avais fait sans passer par les intégrales :
énergie pour une période T : W = R*I²eff *T
énergie fournie W = R* I²crête* t
on en déduit I²eff *T = I²crête* t
I eff = racine ( I²crête * t / T)
comme I moy = I crête * t / T
I eff = racine ( I crête x I moy)
Michel
On Nov 18, 12:53 pm, "Adrien Gaudel"

Ok. Sous l'hypothèse que l'amplitude du courant
de sortie soit rectangulaire, on peut déduire
la valeur efficace à partir de la valeur moyenne,
avec shunt, passe-bas, voltmètre et calculatrice.
Comme l'a dit "michel ou sam" dans son post :
efficace = racine_carrée( crete * moyenne )
Donc, tu divises la valeur lue au voltmètre par la
résistance du shunt pour avoir le courant *moyen*,
que tu multiplies par la valeur *crete* du courant.
Extrais la racine carrée et tu as le courant *efficace*.
Pour comprendre pouquoi
(et si quelqu'un veut bien invalider ou confirmer)
http://cjoint.com/?0lsqSzDinRK
Bonjour,
j'avais fait sans passer par les intégrales :
énergie pour une période T : W = R*I²eff *T
énergie fournie W = R* I²crête* t
on en déduit I²eff *T = I²crête* t
I eff = racine ( I²crête * t / T)
comme I moy = I crête * t / T
I eff = racine ( I crête x I moy)
Michel

Re: valeur efficasse en regime impulsionnel
On Nov 18, 6:57 pm, "michel ou sam"

Oui. Simplification due au fait que l'amplitude
ne prend qu'une seule valeur en dehors de zE9%ro.
Pour etre rigoureux on devrait E9%crire dW 3D% R.IB2%crEA%te.dt
mais bon, l'important est de trouver la solution :o)

Oui. Simplification due au fait que l'amplitude
ne prend qu'une seule valeur en dehors de zE9%ro.
Pour etre rigoureux on devrait E9%crire dW 3D% R.IB2%crEA%te.dt
mais bon, l'important est de trouver la solution :o)

Re: valeur efficasse en regime impulsionnel
Adrien Gaudel a écrit :

Bonjour,
Ce que tu demandes là n'est pas absolument simple à réaliser. La valeur
RMS dans le cas général est assez compliquée ; on sait tous ce que ca
vaut dans le cas sinusoidal mais dans tous les autres y compris les
signaux non périodiques il faut sortir la grosse berta ... bon c'est pas
compliqué malgré tout.
Echantilloner, multiplier, sommer, et ... au final diviser.
Ou alors un chip analogique ... qui fait ces ops avec des ampli "à la
papa" ... :-)
Habib.


Bonjour,
Ce que tu demandes là n'est pas absolument simple à réaliser. La valeur
RMS dans le cas général est assez compliquée ; on sait tous ce que ca
vaut dans le cas sinusoidal mais dans tous les autres y compris les
signaux non périodiques il faut sortir la grosse berta ... bon c'est pas
compliqué malgré tout.
Echantilloner, multiplier, sommer, et ... au final diviser.
Ou alors un chip analogique ... qui fait ces ops avec des ampli "à la
papa" ... :-)
Habib.


Re: valeur efficasse en regime impulsionnel
Bonjour,
pour calculer la valeur de ton courrant impulsionnel, tu dois calculer une
intégrale.
Pas évident d'estimer les fonctions à intégrer.
Un multimètre est mal adapté.
Si on peut faire une représentation graphique.....
Le tracé, tu le mets sur un carton, ensuite, tu découpes ton carton....
Il reste à peser le carton découpé.... si tu as 55 grammes....que 1 déci m2
fait 5g ; tu as 11 dm²
Le problème : as tu un osciloscope enregistreur ?

pour calculer la valeur de ton courrant impulsionnel, tu dois calculer une
intégrale.
Pas évident d'estimer les fonctions à intégrer.
Un multimètre est mal adapté.
Si on peut faire une représentation graphique.....
Le tracé, tu le mets sur un carton, ensuite, tu découpes ton carton....
Il reste à peser le carton découpé.... si tu as 55 grammes....que 1 déci m2
fait 5g ; tu as 11 dm²
Le problème : as tu un osciloscope enregistreur ?

Site Timeline
- » accu lithium
- — Next thread in » Electronics (French)
-
- » Re: Déclenchement intempestif de Biotel (alarme aide médicale et téléassistance)
- — Previous thread in » Electronics (French)
-
- » regulateur LM78xx en abaisseur de tension
- — Newest thread in » Electronics (French)
-
- » Qualcuno si ricorda di JUL?
- — The site's Newest Thread. Posted in » Electronics Hobby (Italian)
-
- » Biblioteka MQTT i dziwny kod w C
- — The site's Last Updated Thread. Posted in » Electronics (Polish)
-