Résolution équation non linéaire

mathi974

XLDnaute Nouveau
Bonjour,

Je voudrais résoudre une équation non linéaire sur excel et déterminer Tp

G*taux = 2*[1,42*(Tp - Tamb)^(1,25)] + ev*sigma*(Tp^4-Tinf^4)

G= ensoleillement
taux=0,85
Tamb= température
ev=0,83
sigma=5.67*10^8
Tinf=0,0552*Ta^(1,5)


G et Tamb varie en fonction de l'heure, j'aimerais avoir Tp pour une journée.

Merci de votre aide,
 

job75

XLDnaute Barbatruc
Re : Résolution équation non linéaire

Re,

Avec 10^-8 pas de problème, la méthode Valeur cible fonctionne très bien.

Voir le fichier joint.

Avant d'appliquer la méthode, initialiser le processus en mettant en A2 la même valeur que Tamb (E3).

A+
 

Pièces jointes

  • Equation(1).xls
    97.5 KB · Affichages: 49
  • Equation(1).xls
    97.5 KB · Affichages: 52
  • Equation(1).xls
    97.5 KB · Affichages: 51

mathi974

XLDnaute Nouveau
Re : Résolution équation non linéaire

Merci Job75, c'est super sympa,

Mais je pense que mon équation doit avoir une erreur, j'ai essayé avec des valeurs réel de température et ensoleillement et je trouve des températures élevées.

Pourquoi faut-il mettre 0 dans la valeur a atteindre?
 

job75

XLDnaute Barbatruc
Re : Résolution équation non linéaire

Re,

Pour traiter les résultats de toute la journée, le mieux est d'utiliser cette macro :

Code:
Private Sub CommandButton1_Click()
Dim r As Range
Range("D2:D" & Rows.Count).ClearContents 'RAZ
Set r = Range("A2", Cells(Rows.Count, 1).End(xlUp))
If r.Row = 1 Then Exit Sub 'sécurité
With Sheets("Valeur cible")
  For Each r In r
    If r(1, 3) = 0 Then
      r(1, 4) = r(1, 2)
    Else
      .[E1] = r(1, 3)
      .[E3] = r(1, 2)
      .[A2] = .[E3]
      .[A1].GoalSeek Goal:=0, ChangingCell:=.[A2] 'Valeur cible
      r(1, 4) = .[A2]
    End If
  Next
End With
End Sub
Elle est dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) et se lance par le bouton.

Fichier (2).

A+
 

Pièces jointes

  • Equation(2).xls
    127 KB · Affichages: 49

mathi974

XLDnaute Nouveau
Re : Résolution équation non linéaire

Est-ce que en gardant le même principe il est possible de faire pour 2 équations a deux inconnues.

Equation 1

G*alpha_vitre+sigma*((Tpv^4-Tvitre^4)/((1/ev)+((1/ev)-1)+hair*(Tpv-Tvitre)=ev*sigma*(Tvitre^4-Tinf^4)+1,42*(Tvitre-Tamb)^1,25

Equation 2

G*alpha_pv*Taux_v^2+sigma**((Tpv^4-Tvitre^4)/((1/ev)+((1/ev)-1)+hair*(Tvitre-Tpv)=1,42*(Tpv-Tamb)^1,25

Les inconnues sont Tpv et Tvitre, peut-on procéder d'une manière similaire?
 
Dernière édition:

Carnage029

XLDnaute Occasionnel
Re : Résolution équation non linéaire

Essaie au moins de nous expliquer correctement, on passe de G*taux à G*alpha_vitre à G*alpha_pv...
c'est pareil ? c'est différent.... je pense que pour comprendre, il faudrait (rien que par curiosité) nous expliquer à quoi correspond chaque terme et ne pas changer de notation en cours de route :)
 

mathi974

XLDnaute Nouveau
Re : Résolution équation non linéaire

Oui je pense que je devrais expliquer:

G= ensoleillement global
alpha_vitre= coefficient absorption de la vitre
sigma=5,67*10^-8 constante de boltzman
Tpv et Tvitre la température du panneau et de la vitre au dessus
ev= emissivité du verre 0,9
hair=coeficient de convection on peut mettre 1 pour essayer, il faut le calculer
taux_v = coeficient de transmission 0,83

Ces deux équations servent à déterminer la température pour un panneau photovoltaique. L'équation 1 la température de la vitre et l'équation 2 la température de panneau des cellules. C'est pour cela que les notations sont différentes, chacun à ces propres propriétés.
 

job75

XLDnaute Barbatruc
Re : Résolution équation non linéaire

Re,

Avec 2 équations, il faut obligatoirement le Solveur.

L'une des équations sera utilisée comme contrainte.

Mais d'abord donnez-nous les valeurs ou formules permettant de déterminer toutes les constantes des équations.

Edit : bon vous l'avez fait.

Pas le temps de m'en occuper pour l'instant, Carnage029 peut vous faire ça.

A+
 

mathi974

XLDnaute Nouveau
Re : Résolution équation non linéaire

Merci,

les valeurs sont:
G= ensoleillement global
alpha_vitre= coefficient absorption de la vitre
alpha_pv= 0,8
sigma=5,67*10^-8 constante de boltzman
Tpv et Tvitre la température du panneau et de la vitre au dessus
ev= emissivité du verre 0,9
hair=coeficient de convection on peut mettre 15 pour essayer, il faut le calculer
taux_v = coeficient de transmission 0,83

et G et Tamb en PJ

je pense qu'il y a toutes les variables
 

Pièces jointes

  • donnée.xlsx
    8.9 KB · Affichages: 32
  • donnée.xlsx
    8.9 KB · Affichages: 29
  • donnée.xlsx
    8.9 KB · Affichages: 25

job75

XLDnaute Barbatruc
Re : Résolution équation non linéaire

Bonsoir mathi974,

Vos 2 dernières équations laissaient à désirer : il y manquait des parenthèses, certaines étaient inutiles.

Je les ai corrigées et placées en A1 et A2 de la feuille "Solveur" : vérifiez qu'elles conviennent.

Par ailleurs vous n'aviez pas précisé alpha_vitre : je l'ai fixé à 0,1.

Sur Win XP - Excel 2003 cette macro fonctionne bien :

Code:
Private Sub CommandButton1_Click()
Dim r As Range
Application.ScreenUpdating = False
Range("D2:E" & Rows.Count).ClearContents 'RAZ
Set r = Range("A2", Cells(Rows.Count, 1).End(xlUp))
If r.Row = 1 Then Exit Sub 'sécurité
With Sheets("Solveur")
  .Activate
  SolverReset
  SolverOk SetCell:="$A$1", MaxMinVal:=3, ValueOf:="0", ByChange:="$A$3:$A$4"
  SolverAdd CellRef:="$A$2", Relation:=2, FormulaText:="0"
  For Each r In r
    If r(1, 3) = 0 Then
      r(1, 4) = r(1, 2)
      r(1, 5) = r(1, 2)
    Else
      .[D1] = r(1, 3)
      .[D2] = r(1, 2)
      .[A3] = .[D2]
      .[A4] = .[D2]
      SolverSolve True 'recalcul
      r(1, 4) = .[A3]
      r(1, 5) = .[A4]
    End If
  Next
End With
Me.Activate
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Equations - Solveur(1).xls
    130.5 KB · Affichages: 28
Dernière édition:

job75

XLDnaute Barbatruc
Re : Résolution équation non linéaire

Re,

Sur Excel 2010 il faut bien sûr avoir installé le Solveur :

1) Onglet Fichier => Options => Compléments => Gerer : Compléments Excel => Atteindre => cocher "Complément Solver".

2) Dans VBA => menu Outils => Références => cocher "Solver", et décocher toute référence manquante.

Je joins le fichier enregistré en .xlsm.

A+
 

Pièces jointes

  • Equations - Solveur(1).xlsm
    106 KB · Affichages: 30
  • Equations - Solveur(1).xlsm
    106 KB · Affichages: 39
  • Equations - Solveur(1).xlsm
    106 KB · Affichages: 38
Dernière édition:

Membres actuellement en ligne

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22