Bonsoir,

je suis totalement débutant en vb.net (depuis avant hier...) et bidouille actuellement un programme tout fait permettant de simuler une diffusion thermique dans un matériau lambda, et ce pour un projet d'une association loi 1901 s'occupant d'autonomie énergétique et alimentaire. Un des projets concerne une solution innovante de stockage de l'énergie solaire dans le sol. Le soft développé en vb permet une approche visuelle en 2D ce qu'il se passerait dans le sol, mais il n'a pas été spécifiquement développé pour ça. J'ai le projet vb complet à disposition.

Pour se rapprocher de la réalité, il faudrait pouvoir simuler une charge solaire journalière, grâce à une sinusoïde dont on enlèverait la partie inférieure, ou une courbe de Gauss qu'on répèterait à intervalles réguliers. Ceci traduirait une charge solaire débutant le matin, montant en température au plus chaud de la journée pour redescendre à la température initiale au coucher du soleil. Mais pour être réaliste, il faudrait pouvoir "effacer" la partie basse de la sinusoïde, le soft l'interprétant comme "aucune charge", et laisse donc la chaleur du jour se diffuser dans le matériau.

Actuellement, il existe une fonction "température variable" dont j'ai isolé la ligne de code permettant le calcul. J'ai apporté une modification à la fonction sinus de base (f(t)=A+B Sin 2*Pi*t/T) pour tenter une courbe différente, mais on s'éloigne encore plus de la réalité, car la fonction ci dessous simulerait une charge nocturne plus importante que la sinusoide simple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
'Ici : on effectue un nombre de pas définis
        If radioNbrePas.Checked = True Then
            For i As Integer = 1 To CInt(txtNbrePas.Text)
                'On modifie la température instantanée des zones "conditions aux limites variables"
                Sim.CLTempératureVariable = (CInt(frmParamètres.txtA.Text) + CInt(frmParamètres.txtB.Text) * (Sin((2 * PI * i * Sim.PasTemporel) / CInt(frmParamètres.txtT.Text))) / Tan((PI * i * Sim.PasTemporel) / (2 * CInt(frmParamètres.txtT.Text))))
                'On avance le calcul d'un pas
                Sim.AvancerUnPas()
            Next
        End If
Si une telle fonction "filtre passe haut" existe, la période permettrait de régler la durée du jour/nuit, mais ne permet pas des jours plus courts/longs que les nuits. Une sorte de courbe de Gauss reproduite à intervalles réguliers permettrait de différencier ces durées, le pas entre début et fin de course=jour, le pas entre 2 courbes=nuit, le haut de la courbe=midi, pour schématiser.

Je ne suis pas sûr que mon message soit très clair et m'en excuse d'avance.

Un grand merci pour votre aide.
Bonne soirée