Calcul par itération ou autre chose

Bonjour,

Je suis étudiant en conception horlogère en suisse.

Pour mon dernier travail, je doit réaliser un train d'engrenage avec 6 roues ou pignon pour lier un élément qui tourne à la vitesse d'un tour par 4 ans soit 1461 Jours à un autre élément qui lui tourne à la vitesse de 1 tour en 31 Jours.

Sois un rapport de 47.129 environ.

Pour ce faire j'ai réaliser un petite feuille excel. -->>> Pièce jointe

Les deux éléments Z1 et Z2 ne peuvent pas être modifié.

Il me reste donc les éléments Z3 à Z6 a modifié de 1 en 1 (les roues ne peuvent avoir de moitié de dents), bref vous comprenez que j'en ai pour la semaine a tester manuellement chaque possibilité.

Il y a encore 2 ou 3 conditions que je doit respecter:

Z4 doit être inférieur a 20 mais supérieur a 10

Z3 et Z5 doivent être supérieur a 40 et inférieur à 100

Z6 doit être supérieur a 20

J'ai entendu parler de calcul par itération, je comprend le principe mais je n'arrive pas à le mettre en œuvre..

Malgré quelques recherche infructueuse, je n'ai pas compris comment entrer ni quel seront les formules a insérer.

Quelqu'un aurais une idée

Merci beaucoup

Meilleurs salutations

Salut et bienvenue sur le Forum,

J’ai créé une petite macro qui permet de combiner des groupes de chiffres entre eux. Si tu cliques sur le bouton en place dans le fichier ci-joint, tu as environ 282'000 possibilités de combiner un chiffre de 41 à 99 avec un deuxième chiffre entre 11 et 19 avec un troisième chiffre entre 41 et 99 et avec un quatrième chiffre entre 21 et 29 qui s’inscrivent dans les colonnes D à G. Tout ça peut prendre jusqu’à 3 ou 4 minutes selon le PC sur lequel est lancée cette macro.

Le but de cette macro n’est que de voir si j’ai bien compris ton besoin. Par la suite, à chaque fois qu’une ligne est créée, on pourrait effectuer un calcul sur la base de la combinaison ainsi trouvée et éventuellement comparer le résultat avec une autre donnée. Je n’ai alors pas compris quel calcul devait être effectué à chaque fois et avec quoi son résultat devait être comparé.

Il est bien entendu qu’en lançant une telle macro on pourrait effectuer la dernière boucle (Z6) sur une base plus élargie que de 21 à 29 et stopper le processus dès que le bon résultat est trouvé (et tout ceci sans afficher les résultats de chaque calcul )

Ca nous permet d’avancer ?

Cordialement.

Bonjour,

DRIDRI a écrit :

Pour mon dernier travail, je doit réaliser un train d'engrenage avec 6 roues ou pignon pour lier un élément qui tourne à la vitesse d'un tour par 4 ans soit 1461 Jours à un autre élément qui lui tourne à la vitesse de 1 tour en 31 Jours.

Sois un rapport de 47.129 environ.

Pourquoi un mois de 31 jours ? Les mois sont variables, non ?

4 ans = 48 mois, avec un rapport de 48 c'est plus facile à calculer.

Le rapport de 48 est égal à (Z1/Z2)*(Z3/Z4)*(Z5/Z6).

Tu connais déjà le rapport Z1/Z2 (appelons le R1) : il est de 56/14=4

Donc R2*R3 = 48/4 = 12

Avec des entiers tu peux obtenir 12 avec 3*4, 4*3, 6*2 et 2*6.

Ce dernier (2*6) n'est pas possible avec les contraintes indiquées (Z6>20 et Z5<100).

Il ne te reste donc pas tant de possibilités que ça pour ne pas pouvoir les lister à la main.

Sinon, à partir de ta feuille, tu dois pouvoir utiliser le solveur.

Je l'ai fait avec LibreOffice Calc pour voir et ça marche. Mais je ne peux pas t'aider car je ne connais pas le solveur d'Excel.

A+

Hello

Yvouille -->>>

Ta solution me parait plutôt pas mal ta macro me sort effectivement toute les combinaisons possible.

Aurais tu une idée (je suis une brèle en macro) pour que EXCEL test une a une ces même possibilités et me sorte celle qui s'approche le plus du rapport demandé.

SI pour arriver au résultat "pil" je doit ajouter une ou deux roues ce n'est pas un problème.

SI les 6 roues me donne un résultat précis à 0.002 % de faux sa me va aussi

Merci bcp

OOoiste -->>>

Tu as toute a fait raison les mois sont variable de 28 à 31 jours.

Sur ma complication je dois faire tourner cet élément en 1 tour par 31 jours, pour les mois qui ont moins de jours j'utilise un système ON/OFF qui indique à la complication quand elle doit modifier l'indication sois le 28, le 29, le 30 ou le 31.

Tu as encore une fois raison 4 ans corresponde à 48 mois.

Dans mon cas la plus petite base de temps cyclique que j'utilise est le jours avec 24 H 00000000000 minute c'est pour cette raison que je calcul tous par rapport aux jours.

De plus si tu multiplie 48 mois de 31 jours = 1488 jours

ou 4* 365.25 = 1461 jours

Donc au final j'aurai un décalage dans mon système de 27 jours tous les 4 ans.

Salutation

Et bon dimanche

Re-bonjour,

DRIDRI a écrit :

Aurais tu une idée (je suis une brèle en macro) pour que EXCEL test une a une ces même possibilités et me sorte celle qui s'approche le plus du rapport demandé.

Il me semble que je t'ai déjà répondu
Yvouille a écrit :

Par la suite, à chaque fois qu’une ligne est créée, on pourrait effectuer un calcul sur la base de la combinaison ainsi trouvée et éventuellement comparer le résultat avec une autre donnée. Je n’ai alors pas compris quel calcul devait être effectué à chaque fois et avec quoi son résultat devait être comparé.

A te relire.

Autant pour moi ^^

(Dimanche matin)

Merci j'ai trouer quelque solution avec une erreur inférieur à 0.001 % ce qui est largement acceptable.

Merci bcp

Dans le but d'améliorer ta macro :

Comment coderais tu la formule (Z1*z3*z5)/(z2*z4*z6)

Dans la case suivant faire le pourcentage d'erreur

et ensuite la trier du plus petit au plus grand.

Pas besoin de me sortir une réponse toute faite, juste des pistes ou alors des tutos sur le VBA

Merci beaucoup

Salut,

Dans le fichier ci-joint, il y a comme tu l’as demandé un calcul complémentaire dans la colonne H ainsi que le calcul des % dans la colonne I.

Pour les % j’ai calculé Colonne H / Cellule K2. Aurait-il fallu calculer le contraire ?

Si tu cliques sur le Bouton 1, tu as tous les résultats possibles classés par ordre croissant et tu dois aller voir vers le milieu des lignes les meilleurs résultats. Avec les mêmes données que dans le dernier fichier – c’est-à-dire une roue Z6 entre 21 et 29 dents – il y a plusieurs résultats ex aequo proches de 100 %.

Avec ces données pour cette dernière roue, cette macro dure environ 4 minutes chez moi sur un PC assez lent.

J’ai placé un deuxième bouton avec une deuxième macro qui dure environ 3 minutes chez moi. Si tu fais un essai avec une roue Z6 avec des écarts de dents beaucoup plus grand, le gain de temps peut-être appréciable. Mais cette deuxième macro ne te présente que l’un des meilleures résultats possibles s’il y en a des ex aequo.

Je suis valaisan et j’habite Fribourg. Et toi, dans quel canton es-tu ?

A te relire.

Hello

C'est exactement ce dont j'avais besoin

Il me reste plus qu'a comprendre ce que tu a codé pour pouvoir l'appliquer dans d'autres cas.

Je posterai une photo de rouage quand il sera terminé...

Merci beaucoup

Pour ma part je suis Jurassien et j'habite au Locle.

A bientôt

Merci pour tes infos géographiques

Je pensais te dire encore que si tu préférais la deuxième macro, on aurait pu afficher tous les meilleures résultats et non seulement l'un d'eux au hasard.

Ceci pourrait peut être être utile si tu désires augmenter le nombre d'itérations dans tes calculs et que tu dépasses le nombre de lignes à disposition dans Excel (1'048'000 dès Excel 2007).

Si jamais, reviens à la charge sur ce fil. Et si c'est pour poster une photo de tes rouages, tant mieux.

A la prochaine.

Rechercher des sujets similaires à "calcul iteration chose"