Matrices de rotation : Calcul de la position du soleil dans le ciel

Un problème, une question, un nouveau théorème ?

Messages : 2

Inscription : 13 mai 2014 21:12

Profil de l'utilisateur : Élève de lycée

Matrices de rotation : Calcul de la position du soleil dans le ciel

Message par Jay Olsen » 13 déc. 2020 17:45

Bonjour,

J'aimerais résoudre ce petit problème de géométrie afin de garder un minimum la main en mathématiques, mais force est de constater que je commence à rouiller.

J'aimerais donc calculer la position du soleil dans le ciel, en supposant une terre sphérique, une orbite circulaire, mais en tenant compte de l'inclinaison de l'axe de rotation de la terre par rapport à son orbite.
Le but étant ensuite de calculer la direction du lever et du coucher du soleil en fonction de la date.

Pour ça, l'idéal serait de :
Calculer la position du soleil dans le référentiel local, en fonction de la date (theta_soleil), l'heure (theta_terre), la longitude, la latitude, et l'inclinaison de l'axe de rotation terrestre (mu).
Résoudre l'expression pour une élévation (coordonnée en z = 0) et faire le ratio x,y pour en déduire l'angle.

Seulement, je bloque quelque peu, et quand je vois la tête des matrices de rotation qui me sont sorties par Maple, je me dis que c'est mathématiquement assez compliqué..

Pour vous, comment faudrait-il procéder ?
Un logiciel de calcul formel est-il obligatoire vu la taille des expressions ?
Je ne saisis plus comment s'utilisent les matrices de rotation, en tout cas quand on veut coupler une translation à une rotation.

Merci
Toujours en train de calculer des matrices de rotation

Messages : 2

Inscription : 13 mai 2014 21:12

Profil de l'utilisateur : Élève de lycée

Re: Matrices de rotation : Calcul de la position du soleil dans le ciel

Message par Jay Olsen » 13 déc. 2020 18:48

Pour donner plus de précisions :
Rien qu'en termes de longueur de formules, je ne comprends pas comment ça peut être gérable.
J'ai maple (calcul formel) et excel pour m'aider dans ce boulot
Je joue un peu avec différentes matrices pour essayer de faire une partie du travail.
Par exemple, j'aimerais déjà calculer la position du point de coordonnées (latitude,longitude) dans le référentiel d'axes solaires (mais centré sur la terre).
Pour ça, je vois plutôt bien ce qu'il faut faire dans maple, mais la simple taille des formules me décourage de poursuivre.
Ce que je fais :
Créer l'axe de rotation de la terre, il commence par être vertical, je le fais tourner d'un angle 23° (vous reconnaissez la valeur) nommé mu autour de x, et je le fais tourner d'angle theta_s (ce qui revient à faire tourner toute la terre autour du soleil) autour de z.
J'ai donc mon axe terrestre qui varie en fonction du temps.
Maintenant je vais faire tourner mon point de coordonnées lat,long = 0,0 d'un angle long+theta_t, pour obtenir le point de coordonnées 0,long à l'heure theta_t.
Jusque là c'est à peu près gérable :
https://i.gyazo.com/946d493cdc70abb21b7 ... 910e3a.png
Après ça se gâte.
Il faut maintenant faire tourner ce point d'un angle lat, autour d'un axe y correspondant.
Cet axe y se calcule par une rotation d'angle long+theta_t+90° .
Mais là, rien qu'écrire la formule devient une catastrophe.
Formule et résultat... :
Là c'est simple, le logiciel n'arrive plus à fournir le résultat.

Le mieux serait peut-être d'attaquer le problème avec excel.. Mais comment faire pour écrire une matrice de rotation autour d'un axe quelconque ?
Toujours en train de calculer des matrices de rotation

Messages : 2

Inscription : 13 mai 2014 21:12

Profil de l'utilisateur : Élève de lycée

Re: Matrices de rotation : Calcul de la position du soleil dans le ciel

Message par Jay Olsen » 13 déc. 2020 19:22

Je pense avoir résolu ces premiers problèmes :
- Accepter de ne pas travailler en calcul formel et utiliser le calcul matriciel d'excel pour avoir des formules qui varient comme il faut et qu'on pourra tout de même tracer
- La rotation autour d'un axe quelconque peut se coder dans excel en s'aidant du calcul formel de matlab pour créer le modèle

Cependant je ne suis toujours pas convaincu de ma stratégie globale.
Une fois que j'ai calculé les coordonnées de mon point à la surface terrestre, ce n'était que l'échauffement.
Celui-ci me donne les coordonnées du vecteur laboratoire-soleil dans le référentiel spatial.
Il faudrait ensuite convertir ces coordonnées dans le référentiel du laboratoire (ou maison)
C'est là que mes souvenirs de prépa s'arrêtent. Quelle matrice dois-je utiliser pour convertir mon vecteur en coordonnées stellaires dans le système de coordonnées du laboratoire ?

Merci
Toujours en train de calculer des matrices de rotation

Messages : 298

Inscription : 27 oct. 2017 10:55

Profil de l'utilisateur : Professionnel

Re: Matrices de rotation : Calcul de la position du soleil dans le ciel

Message par Hibiscus » 14 déc. 2020 07:24

J'ai pas le temps de rédiger ce matin, j'y reviendrai dans la soirée, mais une première piste : on utilise souvent des quaternions pour matrices de rotation, ça simplifie grandement les choses et permet de faire une partie des calculs "quasi à la main" ou avec des opérations plus simples que des produits matriciels partout
Masséna (PC*) -- X15 -- Spatial.

Messages : 62

Inscription : 18 juil. 2017 16:50

Profil de l'utilisateur : Professionnel

Re: Matrices de rotation : Calcul de la position du soleil dans le ciel

Message par Puffin » 14 déc. 2020 11:22

Regarde aussi du côté des coordonnées homogènes (et matrices de passage associées).
C'est très utile pour composer des transformations 3D complètes (position + rotation).

En numérique le problème me semble assez simple. En formel, les expressions sont peut-être un peu lourdes. Mais pourquoi vouloir du formel si c'est juste pour appliquer les expressions à des valeurs numériques ?

Messages : 779

Inscription : 01 juin 2020 16:26

Profil de l'utilisateur : Parent

Re: Matrices de rotation : Calcul de la position du soleil dans le ciel

Message par H2Fooko » 14 déc. 2020 11:38

Bonjour Jay Olsen,
Etant un peu plus rouillé que toi 😉 j'utiliserais xcos de scilab car cela permet de progresser par petits pas et de débugger individuellement chaque pas (boite fonctionnelle) de visualiser des valeurs intermédiaires avant de se lancer dans une résolution formelle.
отец (un autre père ENSICAENnais) сынок (& fils PCSI▸PC▸PC* 2020-23 à B.Pascal (63)EC Lille) и Дух мира :flag_ua: (& esprit de 🕊)

Messages : 2

Inscription : 13 mai 2014 21:12

Profil de l'utilisateur : Élève de lycée

Re: Matrices de rotation : Calcul de la position du soleil dans le ciel

Message par Jay Olsen » 14 déc. 2020 17:03

Je ne suis pas sûr que me former à un outil comme les quaternions soit ma solution la plus efficace...
J'ai réussi pour l'instant à faire quelques rotations qui fonctionnent plutôt bien.

Edit :
L'image précédente est maintenant supplantée.
https://i.gyazo.com/5bf634f63a6ce0b23d4 ... 871acf.png
Par
Image
En fait j'avais un mauvais ordre des rotations.
Je pense qu'il vaut mieux faire :
Rotation du point (0,0) autour de z d'un angle long + theta_t
Rotation du vecteur (0,0) autour de z d'un angle long + theta_t+90
Rotation du point précédent autour du vecteur précédent pour trouver le point à la surface de la terre.
Une fois le point placé à la surface de la terre, on peut appliquer les rotations de l'axe de la terre autour du soleil.
Rotation d'un angle mu autour de x
Rotation d'un angle thetas autour de z

La suite : convertir la base spatiale en base locale, en faisant les mêmes rotations mais à base d'un point différent (point=vecteur pour l'instant)
Prendre le vecteur terre soleil (OS), y retrancher le vecteur terre laboratoire (-OL = LO) : on obtient le vecteur laboratoire terre. Le convertir en coordonnées rotationnées en appliquant la matrice de passage ou son inverse.. C'est là que je vais m'amuser encore un peu.
Toujours en train de calculer des matrices de rotation

Messages : 62

Inscription : 18 juil. 2017 16:50

Profil de l'utilisateur : Professionnel

Re: Matrices de rotation : Calcul de la position du soleil dans le ciel

Message par Puffin » 15 déc. 2020 10:18

C'est surtout là que les matrices de passage homogène font le boulot pour toi.
Il suffit d'exprimer les transformations 3D (translation / rotation) élémentaires et elles se composent juste en multipliant les matrices.

Le concept de pose 3D est utilisé par tous ceux qui font de la géométrie 3D (robotique, vision par ordinateur, réalité virtuelle, jeux vidéos). L'utilisation de quaternions pour la rotation est plus efficace mais moins intuitif que des matrices de rotation.

Dans ton cas l'efficacité computationnelle des quaternions n'a pas grand intérêt car il doit y avoir en gros 4 repères d'intérêt : Soleil -> révolution (date + inclinaison de la Terre) -> rotation (heure) -> labo (longitude / latitude).

Messages : 2

Inscription : 13 mai 2014 21:12

Profil de l'utilisateur : Élève de lycée

Re: Matrices de rotation : Calcul de la position du soleil dans le ciel

Message par Jay Olsen » 15 déc. 2020 10:46

J'ai finalement réussi à résoudre la partie mathématique pure du problème :
Après avoir transformé avec succès un point de la terre pour le placer dans l'espace, me donnant automatiquement le premier axe de mon repère transformé que j'ai évidemment noté x, il a fallu transformer les deux autres axes.
J'ai créé ces transformations en réfléchissant, mais j'étais surpris de voir qu'il ne fallait pas d'appliquer les mêmes rotations.
Il y a une rotation de l'axe z qui ne fait rien et que j'ai donc sauté (jusque là c'est logique, je comprends), mais il y a une rotation de l'axe y qu'il ne faut pas faire et là je n'ai pas compris pourquoi.

La suite de mes problèmes est plutôt de nature physique et ingénierie, je vais peut-être faire un topic adapté.

En termes d'efficacité computationnelle, effectivement ça met un temps un peu trop long pour faire 3600 pauvres calculs (précision à t=24s environ, ça me permet d'afficher un jour à peine, j'aimerais afficher un an entier!) mais je pense que c'est lié aux écritures dans excel, je vais essayer de chronométrer pour savoir si c'est plutôt du aux matrices (qui sont dans des cellules) ou bien aux écritures des résultats.
Edit : comme je le soupçonnais, 85% du temps de calcul est lié aux écritures case par case dans excel... :o
Toujours en train de calculer des matrices de rotation

Messages : 62

Inscription : 18 juil. 2017 16:50

Profil de l'utilisateur : Professionnel

Re: Matrices de rotation : Calcul de la position du soleil dans le ciel

Message par Puffin » 15 déc. 2020 11:15

En même temps Excel n'est pas fait pour du calcul matriciel.
Maple, Matlab ou Python feront ça bien mieux. Les calculs numériques sont triviaux, bien que les formules analytiques paraissent lourdes.

Répondre