IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

[Steinhart-Hart] Comment calculer la température ?


Sujet :

Mathématiques

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut [Steinhart-Hart] Comment calculer la température ?
    Bonjour à tous,

    Je me trouve face à une situation que je ne maitrise pas trop, les équations et particulièrement l'équation de Steinhart-Hart

    Je dois calculer la température des feuillages et des bourgeons avec une sonde SF-110. Dans la doc doc à la page 10, il y a une équation donc on connait des valeurs

    A = 1.129241 x 10^3 = 1.129241 * 1000 = 1129.241
    B = 2.341077 x 10^4 = 2.341077 * 10000 = 23410.77
    C = 8.775468 x 10^8 = 8.775468 * 100000000 = 877546800

    Supposons que Rt est égal à 10

    Je pense que l'équation va s'écrire de la manière suivante, corriger moi ou je me trompe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 23410.77 * ln(10)  + 877546800 * (ln(10))^3
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 23410.77 * 2.3025  + 877546800 * (2.3025)^3
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 53903.2979  + 877546800 * (2.3025 * 2.3025 * 2.3025)
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 53903.2979  + 877546800 * 12.2067
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 53903.2979  + 10 711 966 442.8074
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 10 712 021 475.3463
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Tk = 1/10 712 021 475.3463 = 9.335306
    Donc j'aurais une température de 9.3353 Kevin

    Q1: Est-ce que mon "découpage" est juste?

    J'ai vu que dans ma calculatrice, j'ai un ln et un log
    Q2: quelles sont les différences?

    Car avec Arduino, j'ai lu que la fonction log() remplacait ln()?

    Q3: Maintenant, ma dernière question, savez-vous si Arduino supporte ces calculs avec autant de nombres?

    Bref, pour le moment, ce qui me préoccupe, c'est e côté math, soit ma manière d'arriver à 9.3353

    Merci pour vos lumières!!!
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Bonjour

    Citation Envoyé par pierrot10 Voir le message
    Donc j'aurais une température de 9.3353 Kevin
    Non. Déjà, non. l'inverse de 10 milliards, ce n'est pas 9.

    Citation Envoyé par pierrot10 Voir le message
    Q1: Est-ce que mon "découpage" est juste?
    La question est : "Pourquoi découper ?"

    Revenir systématiquement aux unités est une mauvaise idée. L'infini n'existe pas en informatique. Ni vis-à-vis du maximum, ni vis-à-vis de la précision. Tu peux provoquer un dépassement de capacité.

    Citation Envoyé par pierrot10 Voir le message
    J'ai vu que dans ma calculatrice, j'ai un ln et un log
    Q2: quelles sont les différences?
    Le logarithme de base "a" est le logarithme népérien divisé par le logarithme népérien de "a".
    Formule mathématique
    En science, on utilise souvent le logarithme en base 10, car il donne un ordre de grandeur. log10(1 million) = log10(106) = 6.
    Mais, accroche-toi :
    • En français,
      • ln(x) est le logarithme népérien de x
      • log(x) est le logarithme décimal de x
    • En anglais,
      • log(x) est le logarithme népérien de x
      • LOG(x) est le logarithme décimal de x

    Donc "log" est toujours soumis à caution. seuls "ln" et "LOG" ne sont pas ambigus.
    Dans la relation de Steinhart-Hart, c'est bien le logarithme népérien. Donc la touche "ln" de ta calculatrice.

    Citation Envoyé par pierrot10 Voir le message
    Car avec Arduino, j'ai lu que la fonction log() remplacait ln()?
    Interface en anglais, peut-être ?

    Citation Envoyé par pierrot10 Voir le message
    Q3: Maintenant, ma dernière question, savez-vous si Arduino supporte ces calculs avec autant de nombres?
    Ça, c'est une vrai question (déjà évoquée). Mais sais-tu lire le résultat de ta calculatrice ? L'inverse 1.07*109 est environ 9.34*10-10. Ce qui est juste.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Hello
    Merci d'avoir pris le temps de me répondre.
    je suis largué

    Le problème que je dois résoudre, et je pense que ru l'a compris est de trouver une température avec l'équation de Steinhart-Hart.

    Ce que j'entends par découpage c'est ceci

    Citation Envoyé par pierrot10 Voir le message
    Supposons que Rt (termistor) est égal à 10

    Je pense que l'équation va s'écrire de la manière suivante, corriger moi ou je me trompe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 23410.77 * ln(10)  + 877546800 * (ln(10))^3
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 23410.77 * 2.3025  + 877546800 * (2.3025)^3
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 53903.2979  + 877546800 * (2.3025 * 2.3025 * 2.3025)
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 53903.2979  + 877546800 * 12.2067
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 53903.2979  + 10 711 966 442.8074
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 10 712 021 475.3463
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Tk = 1/10 712 021 475.3463 = 9.335306
    J'explore les solutions et je dois "retranscrire" l'équation dans Arduino. C'est pourquoi, j'ai chercher à faire ce "découpage", si je peux le dire ainsi.

    Sachant que
    A = 1.129241 x 10^3 = 1.129241 * 1000 = 1129.241
    B = 2.341077 x 10^4 = 2.341077 * 10000 = 23410.77
    C = 8.775468 x 10^8 = 8.775468 * 100000000 = 877546800
    et que ma résistance (termistor) est de 10K

    J'ai du mal à comprendre comment utiliser cette fonction et particulièrement parce qu'il y a ce ln()

    En fait je viens de revoir le schéma de mon capteur, à la page 10: https://www.apogeeinstruments.com/co...110-manual.pdf

    Ma résistance Série sérait 24900? Puis je trouve la valeur de la thermistor, qui serait dans mon exemple: 10K
    Mais je me trouve dans le même problème, comme appliquer cette équation, ou la libraire sans A,B et C.

    Dans un autre côté je me demande si je vais me contenter de calculer Rt avec Arduino et utiliser PHP pour l'équation. Bref du point de vue mathématique, je suis un peu dans le flou
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    J'ai aussi trouvé cette librairie sans débarguer dans un autre sujet.
    https://github.com/giannivh/SmoothTh...xample.ino#L70

    mais là il me parle de résistence nominal et dérie, dans faire allusion de A,B,C , ce qui me trouble dans l'exactitude du résultat fourni par Steinhart-Hart
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    J'ai du mal à comprendre comment utiliser cette fonction et particulièrement parce qu'il y a ce ln()
    Qu'est-ce qui est bloquant ? Pourquoi n'écoutes-tu pas les conseils qu'on te donne ? Je ne vais pas copier-coller ma réponse. C'est à toi de lire et relire, jusqu'à ce que tu comprennes.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut [Steinhart-Hart] Comment calculer la température ?
    Bonjiour,

    1°) Je crains que la résolution numérique ne souffre déjà de problèmes de lecture:
    Citation Envoyé par pierrot10 Voir le message
    ... Dans la doc doc à la page 10, il y a une équation donc on connait des valeurs

    A = 1.129241 x 10^3 = 1.129241 * 1000 = 1129.241
    B = 2.341077 x 10^4 = 2.341077 * 10000 = 23410.77
    C = 8.775468 x 10^8 = 8.775468 * 100000000 = 877546800


    Supposons que Rt est égal à 10 ...
    ... car d'après le document cité
    Nom : Equation Steinhart-Hart.png
Affichages : 177
Taille : 71,5 Ko
    les trois constantes présentent les valeurs respectives:
    A = 1.129241E-3 ; B = 2.341077E-4 ; C = 8.775468E-8 .

    2°) Indépendamment de ce qui précède, le défaut majeur de ta démarche est d'introduire manuellement les valeurs numériques dans le calcul, ce qui accroît considérablement les risques d'erreur, en plus d'alourdir le travail.
    Il faut impérativement recourir à un calcul littéral, après avoir initialisé les constantes (A, B, C); il suffit pour cela de poser L = Ln(Rt), car l'expression de la température devient dans ces conditions:
    Tk = (A + B.L + C.L3)-1 ,
    ce qui ne pose aucune difficulté sur quelque calculatrice programmable que ce soit.

    On trouve (sauf erreur) pour Rt = 10: Tk = 599.0301 et Tc = 325.88 °C .

    Il va de soi qu'un tel résultat se situe hors du domaine des valeurs attendues pour le phénomène étudié.
    Pour Rt = 20000 par exemple, on trouve Tk = 283.05 K et Tc = 9.90 °C , ce qui apparaît beaucoup plus raisonnable.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  7. #7
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Citation Envoyé par wiwaxia Voir le message
    Il faut impérativement recourir à un calcul littéral
    Oh oui ! Oh oui ! Tonton wiwaxia, Fais-nous une résolution de polynôme de degré trois.

    Citation Envoyé par wiwaxia Voir le message
    On trouve (sauf erreur) pour Rt = 10: Tk = 599.0301 et Tc = 325.88 °C .
    Certes. Sauf qu'il n'a pas dit 10, mais 10K. 10K = 10 kilos = 10000. Soit une température de 25,16 °C, si mes yeux lisent correctement ce graphique :

    Nom : temperatures.feuilles.ln.png
Affichages : 141
Taille : 11,9 Ko
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #8
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut [Steinhart-Hart] Comment calculer la température ?
    Citation Envoyé par Flodelarab Voir le message
    ... Certes. Sauf qu'il n'a pas dit 10, mais 10K ...
    J'ai pourtant bien lu:
    Citation Envoyé par pierrot10 Voir le message
    ... Supposons que Rt est égal à 10
    Je pense que l'équation va s'écrire de la manière suivante, corriger moi ou je me trompe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 23410.77 * ln(10)  + 877546800 * (ln(10))^3
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1/Tk = 1129.241 + 23410.77 * 2.3025  + 877546800 * (2.3025)^3
    ...
    Mes verres progressifs ne m'ont pas, pour une fois, joué de vilain tour ...
    et il eût été, en la circonstance, souhaitable de prendre Ln(10) = 2.302585 - l'arrondi doublement défectueux détériore inutilement le résultat numérique; cela montre au passage l'inconvénient de la méthode mise en oeuvre.
    Et je n'ai pas contesté le choix de l'essai numérique.

    Citation Envoyé par Flodelarab Voir le message
    10K = 10 kilos = 10000 ...
    10 k , connais pas. En physique, cette notation n'est jamais employée en place de 103; "kilo" intervient exclusivement comme préfixe multiplicatif, jamais comme nom désignant un nombre.
    Tu viens de te faire piéger par le jargon des informaticiens (aucun ressentiment personnel là dessous ).
    Avec le risque de l'ambiguïté théoriquement proscrite: 1 kilo = 210 = 1024 ...

    Citation Envoyé par Flodelarab Voir le message
    Oh oui ! Oh oui ! Tonton wiwaxia, Fais-nous une résolution de polynôme de degré trois.
    J'entendais par calcul littéral le recours exclusif à des constantes ou variables, telle que l'exigeait le calcul numérique demandé:
    Tk = (A + B.L + C.L3)-1 .
    Une fois vérifiées les valeurs assignées aux termes (A, B, C), le calcul peut être repris autant de fois que l'on veut pour diverses valeurs de L = Ln(Rt).
    Il n'était nullement question de passer de la fonction T = F(R) à sa réciproque R = F-1(T) .
    Cependant je te rassure tout de suite en te signalant que le dernier terme du trinôme (C.L3) est un terme correctif, et que la racine apparaîtra comme limite d'un processus itératif.
    Il vient en effet: T-1 = A + B.L(1 + D.L2), avec D = C/B = 3.748475E-4 ; d'où:
    L = (T-1 - A)/[B.(1 + D.L2)]
    et la relation de récurrence imposée à la suite (Ln) considérée:
    Ln+1 = (T-1 - A)/[B.(1 + D.Ln2)] .
    Exemple: en partant de t = 8.00 °C , T = 281.15 K , L0 = Ln(2000) = 7.600902 ,
    on obtient après quelques itérations:
    L = 9.995191 ; R = 21920.79 ohms .


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  9. #9
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Citation Envoyé par pierrot10 Voir le message
    ... Supposons que Rt est égal à 10
    Citation Envoyé par pierrot10 Voir le message
    et que ma résistance (termistor) est de 10K
    Effectivement, ce jeune homme a un problème avec les fonctions ET les unités. Je n'avais même pas vu.

    PS: de toute façon, on ne met de majuscules que pour les unités issues de personnages célèbres. Il n'y a pas de Monsieur Kilo, donc, 10 k. Contrairement à Monsieur Ampère, Monsieur Kelvin, Monsieur Becquerel. Mais comme Monsieur litre, ou Monsieur mètre.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

Discussions similaires

  1. Comment calculer la taille d'une base de données ?
    Par say dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 01/04/2011, 16h48
  2. comment calcule t-on une médiane ?
    Par rossy dans le forum Access
    Réponses: 3
    Dernier message: 25/04/2007, 10h21
  3. [Matrices] Comment calculer le Déterminant d'une matrice 4x4
    Par cyber_N dans le forum Algorithmes et structures de données
    Réponses: 70
    Dernier message: 19/08/2005, 15h47
  4. comment calculer le temps d'execution
    Par passion_info dans le forum C++Builder
    Réponses: 1
    Dernier message: 09/06/2005, 09h13
  5. Réponses: 2
    Dernier message: 05/01/2005, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo