Évaluation de l’ensoleillement sur un modèle 3d claude parisel, 1990

7
Évaluation de l’ensoleillement sur un modèle 3D Claude Parisel, 1990

Upload: jules-legros

Post on 04-Apr-2015

110 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Évaluation de l’ensoleillement sur un modèle 3D Claude Parisel, 1990

Évaluation de l’ensoleillement sur un modèle 3DClaude Parisel, 1990

Page 2: Évaluation de l’ensoleillement sur un modèle 3D Claude Parisel, 1990

Pour étudier l’ensoleillement il existe beaucoup de méthodes et plusieurs outils y sont consacrés :

L’hélio-indicateur :

Petit abaque qui permet de connaitre la position du soleil en tout temps et toute latitude.

Un plastique transparent s’incline selon la latitude choisie et on peut alors lire:

1.L’heure de lever et de coucher du soleil à toute date.2.Sa hauteur et son azimut à toute heure et toute date.3.La durée du jour à toute date.4.La durée de l’ensoleillement au dessus d’un obstacle à tout moment.

Cet instrument très simple remplace les nombreuses feuilles nécessitées pour trouver la position du soleil en toutes latitudes, dates et heures.

Page 3: Évaluation de l’ensoleillement sur un modèle 3D Claude Parisel, 1990

Les diagrammes d’ombre:

Ce sont des diagrammes qui permettent d’éclairer une maquette selon une date et une heure donnée.

C’est un cadran solaire inversé. On éclaire le diagramme et donc la maquette de telle façon que l’ombre d’un stylet arrive sur la date et l’heure voulue.

Pour cela il faut avoir une maquette et un jeu de diagrammes de chaque latitude.

Le diagramme est fait en forme de cuvette pour pouvoir, contrairement à un cadran solaire, donner l’heure du lever au coucher du soleil.

Page 4: Évaluation de l’ensoleillement sur un modèle 3D Claude Parisel, 1990

Aujourd’hui, on dispose de modèle 3D et on peut générer des images de synthèse facilement.

Sur les logiciels utilisés, on a aussi la possibilité de générer facilement les ombres selon la latitude, la date et l’heure comme sur l’image ci-contre.

Cependant, quelque soit le point de vue, on ne peut voir TOUT l’éclairage sur une seule image. Des parties non visibles sont aussi à l’ombre ou au soleil.

La seule façon de noter l’ensemble de l’éclairage consiste à construire une « vue » axonométrique à partir de la position du soleil à ce moment là.

Ainsi, tout ce que l’on « voit » sur l’image est ensoleillé puisque l’on est à la place du soleil, et ce que l’on ne voit pas est à l’ombre.

Une seule image résume tout l’ensoleillement au moment choisi.

De plus, le rapport entre la surface éclairée sur l’axonométrique et la surface réelle donne un bon indice du rayonnement sur cette surface.

Ci-après, l’ensoleillement au solstice d’automne heure par heure.

Le calcul de la position requise se fait par une fonction lisp (sun.lsp) sur Autocad. Elle est décrite en annexe.

Elle fonctionne en boucle de la latitude à la date et à l’heure pour permettre de générer en succession les images de chaque heure et chaque jour.

Page 5: Évaluation de l’ensoleillement sur un modèle 3D Claude Parisel, 1990

21/09/07h – Lever du soleil

21/09/08h

21/09/09h

21/09/10h

21/09/11h

21/09/12h

Page 6: Évaluation de l’ensoleillement sur un modèle 3D Claude Parisel, 1990

21/09/13h

21/09/14h

21/09/14h

21/09/15h

21/09/16h

21/09/17h

Page 7: Évaluation de l’ensoleillement sur un modèle 3D Claude Parisel, 1990

;------------------------------------------------------------------------------------------------------------; ; Programme pour générer des vues du soleil ; ; par Claude Parisel 1990 ; ;------------------------------------------------------------------------------------------------------------; ; Ce programme sous Autocad permet de construire un axonométrique "VU" du ; ; soleil. Ainsi tout ce qui est vu est ensoleillé autrement c'est dans ; ; L'ombre que ce soit à l'extérieur ou l'intérieur ; ;------------------------------------------------------------------------------------------------------------; (defun c:sun() ;saisie des donnees et initialisation (setq message "le soleil est sous l'horizon à ce moment là") (setq pi 3.141632) (setq lad "lat") (setq nord (getstring "Donnez l'angle du Nord vs la verticale (axe OY): ")) (setq nord (atof nord)) ;boucle de la latitude (while (/= lad "") (setq lad (getstring "donnez la latitude du site (-90 @ +90): ")) (if (/= lad "") (progn (setq lat (atof lad)) (if (or (< lat -90)(> lat 90)) (progn (print "la latitude n'est pas dans les limites acceptables") (print) (= lad "lat") ) (progn (setq la (* lat (/ pi 180))) (setq mois "mois") ;boucle du mois (while (/= mois "") (setq mois (getstring "Donnez le mois de l'année (1 @ 12): ")) (if (/= mois "") (progn (setq mo (atof mois)) (if (or (< mo 1)(> mo 12)) (progn (print "le mois n'est pas dans les limites acceptables") (print) (= mois "mois") ) (progn (setq jour "jour") ;boucle du jour (while (/= jour "") (setq jour (getstring "Donnez le jour du mois (1@31): ")) (if (/= jour "") (progn (setq jo (atof jour)) (if (or (< jo 1)(> jo 31)) (progn (print "le jour du mois n'est pas dans les limites acceptables") (print) (= jour "jour") ) (progn ; calcul du nieme jour de l'annee (setq en (/ (- mo 1) 2.0)) (if (= (- en (fix en)) 0.5) (setq en (1+ (fix en)))) (setq nj (+ jo (* 30 (- mo 1)) en)) (if (or (= mo 9) (= mo 11)) (setq nj (1+ nj))) (if (> mo 2) (setq nj (- nj 2))) ; calcul de la declinaison (setq vard (* (/ (float (+ 284 nj)) 365) 360)) (setq var (* vard (/ pi 180)))

(setq deltad (* 23.45 (sin var))) (setq delta (* deltad (/ pi 180))) ;calcul du lever et coucher du soleil (if (/= lat 90) (progn (setq co_lev (* (- (/(sin la)(cos la))) (/ (sin delta)(cos delta)))) (setq sin_lev (sqrt (- 1 (* co_lev co_lev)))) (if (= co_lev 0) (setq lev 90) (progn (setq tan_lev (/ sin_lev co_lev)) (setq lev (* (atan tan_lev) (/ 180 pi))) ) ) (if (> lev 0) (setq h_lev (- 12 (/ lev 15))) (setq h_lev (- (/ lev 15))) ) ) ) (setq heure "heure") ;boucle de l'heure (while (/= heure "") (if (= lat 90) (print "Pas d'heure de lever du soleil !") (print (strcat "Lever du soleil: " (rtos h_lev 2 2) " Coucher: "(rtos (- 24 h_lev) 2 2))) ) (setq heure (getstring "Donnez l'heure de la journee (0@24): ")) (if (/= heure "") (progn (setq he (atof heure)) (if (or (< he 0)(> he 24)) (progn (print "l'heure de la journée n'est pas dans les limites acceptables") (print) (= heure "heure") ) (progn ; transformation de l'heure (he) en degres (od) (setq od (* (- 12 he) 15)) ;transformation des valeurs angulaires en radians (setq om (* od (/ pi 180))) ;calcul de la hauteur du soleil (el) (setq sinel (+ (* (sin la) (sin delta)) (* (cos la) (cos delta) (cos om)) ) ) (setq cosel (sqrt (- 1 (* sinel sinel)))) (setq tanel (/ sinel cosel)) (setq el (atan tanel)) (setq hauteur (angtos el 0 4)) ;calcul de l'azimuth du soleil (setq cosaz (* (- (* (sin la)(cos delta)(cos om)) (* (cos la)(sin delta)) ) (/ 1 (cos el)) ) ) (if (= 0 od) (progn (setq sinaz 0) (setq tanaz 0) (setq az 0) (setq azimuth "0.0000") ) (progn (setq sinaz (sqrt (- 1 (* cosaz cosaz)))) (setq tanaz (/ sinaz cosaz)) (setq az (atan tanaz)) (if (< cosaz 0) (setq az (+ pi az)) ) (setq azimuth (angtos az 0 8)) ) ) (if (> od 0)

(setq azimuth (strcat "-" azimuth)) (setq az (- az)) ) ; appel de la fonction de vue avec les bons parametres ; dans le cas ou le soleil est au-dessus de l'horizon (if (> sinel 0) (progn (command "vpoint" "r" (rtos (+ (* az (/ 180 pi)) (- 270 nord)) 2 8) (rtos (* el (/ 180 pi)) 2 6) ) (print (strcat " azimuth: " (rtos (* az (/ 180 pi))))) (print (strcat " elevation: " (rtos (* el (/ 180 pi))))) ;evaluation du point de visée vs origine (setq pt (getvar "VIEWDIR")) (setq pt (list (* (car pt) 100)(* (cadr pt) 100)(* (caddr pt) 100))) (print pt)(print) ) (progn (print message) ) ) (= heure "heure") ;calculs ) ) ) ) ) ;boucle de l'heure ) ) ) ) ) ;boucle du jour ) ) ) ) ) ;boucle du mois ) ) ) ) ) ;boucle de la latitude )