Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Recherche de X et Y selon dimensions L1 et L2

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Titi456

XLDnaute Junior
Bonjour,

Je recherche une formule à mettre en cellules H8 et H9 pour pouvoir trouver les dimensions X et Y selon les dimensions L1 et L2 (voir fichier joint).
Je conçois que ma question est plutôt orientée pour un ingénieur en calculs mais peut-être qu'il y en aurait qqn sur ce site qui pourrait m'aider.

Mes meilleures salutations,

Thierry
 

Pièces jointes

Bonjour,
C'est sympa comme question. Mais il manque des éléments à mon avis. Quelle est la valeur de R19 (rayon), et quelle relation peut on avoir pour trouver la valeur de X. Connait on la valeur de l'angle opposé à X. Les valeurs L1 et L2 comprennent elles les arcs de cercle R19.
 
Dernière édition:
Bonjour fcyspm30,

Merci pour votre message. Le rayon R19 équivaut à un rayon de 19mm. Effectivement les distances L1 et L2 comprennent les arcs de cercle. Les angles ne sont pas connu malheureusement; raison pour laquelle ma question relève plutôt d'un ingénieur calculateur.

Meilleures salutations,

Thierry

 

Pièces jointes

C'est la distance entre la hauteur (de longueur Y) par rapport au point central de mes deux poulies.

Si L1 = L2, X = 0
 

Pièces jointes

  • Recherche de X et Y selon dimensions L1 et L2.jpg
    50.6 KB · Affichages: 14
Dernière édition:
Bonjour Titi456, le forum,

Je reviens tardivement sur ce fil avec une solution qui je pense est assez complète.

Voyez le fichier joint, les formules trigonométriques devraient être comprises par un élève de terminale.

La ligne donnant le résultat est la ligne 521 colorée par une MFC, j'ai fait 2 extrapolations autour.

A+
 

Pièces jointes

Bonjour Titi456, le forum,

Ceci est plus simple, voyez le nom défini lig et les formules en J32 et J33 :
Code:
=PREVISION(0;DECALER(INDIRECT("C"&lig-4);;;4);DECALER(INDIRECT("G"&lig-4);;;4))
=PREVISION(0;DECALER(INDIRECT("D"&lig-4);;;4);DECALER(INDIRECT("G"&lig-4);;;4))
On voit mieux quelles sont les plages utilisées.

A+
 

Pièces jointes

Dernière édition:
Bonjour le forum,

Je viens terminer proprement ce fil.

Pour avoir une meilleure précision il faut utiliser un pas de 0,001 degré.

Mais avec les fichiers précédents il faudrait un tableau de 90 000 lignes et faire 8 100 000 000 itérations pour les calculs de la distance en colonne G, ce n'est pas envisageable.

Par contre en ajoutant la colonne H et en utilisant cette fonction VBA il n'y a pas de problème :
VB:
Function MaPrevision(Entraxe#, R#, L1#, L2#, lig1&, lig2&)
Dim p#, a(0 To 200, 1 To 4), b(0 To 200, 1 To 4), i&, min1#, min2#, j&, d#, X#, Y#
p = Application.Pi()
a(0, 1) = Cells(lig1 - 1, 1)
b(0, 1) = Cells(lig2 - 1, 1)
For i = 0 To 200
    a(i, 1) = a(0, 1) + i / 1000 'angle en degré, pas de 0.001
    a(i, 2) = a(i, 1) * p / 180 'angle en radian
    a(i, 3) = -Entraxe / 2 - R * Cos(a(i, 2)) + (L1 - R * a(i, 2)) * Sin(a(i, 2)) 'X1
    a(i, 4) = R * Sin(a(i, 2)) + (L1 - R * a(i, 2)) * Cos(a(i, 2)) 'Y1
    b(i, 1) = b(0, 1) + i / 1000 'angle en degré, pas de 0.001
    b(i, 2) = b(i, 1) * p / 180 'angle en radian
    b(i, 3) = Entraxe / 2 + R * Cos(b(i, 2)) - (L2 - R * b(i, 2)) * Sin(b(i, 2)) 'X2
    b(i, 4) = R * Sin(b(i, 2)) + (L2 - R * b(i, 2)) * Cos(b(i, 2)) 'Y2
Next i
min1 = 9 ^ 99
For i = 0 To 200
    min2 = 9 ^ 99
    For j = 0 To 200
        d = Sqr((a(i, 3) - b(j, 3)) ^ 2 + (a(i, 4) - b(j, 4)) ^ 2) 'distance des extrémités
        If d < min2 Then min2 = d
    Next j
    If min2 < min1 Then min1 = min2: X = a(i, 3): Y = a(i, 4)
Next i
MaPrevision = Array(X, Y) 'vecteur horizontal
End Function
On peut vérifier les résultats en faisant L1=L2 et en allant jusqu'à 800 000 mm...

A+
 

Pièces jointes

Dernière édition:
Bonjour le forum,

Ce n'était pas fini.

Avec ce code on peut atteindre la précision que l'on veut, ici 0,00001 degré :
VB:
Function MaPrevision(Entraxe#, R#, L1#, L2#, lig1&, lig2&)
Dim p#, pas#, inia#, inib#, N%, a(0 To 20, 1 To 4), b(0 To 20, 1 To 4)
Dim i&, min1#, min2#, j&, d#, temp#, X#, Y#
p = Application.Pi()
pas = 0.1 'pas initial
inia = Cells(lig1 - 1, 1)
inib = Cells(lig2 - 1, 1)
For N = 1 To 4 'pour atteindre une précision de 0,00001 degré
    pas = pas / 10
    a(0, 1) = inia
    b(0, 1) = inib
    For i = 0 To 20
        a(i, 1) = a(0, 1) + pas * i 'angle en degré
        a(i, 2) = a(i, 1) * p / 180 'angle en radian
        a(i, 3) = -Entraxe / 2 - R * Cos(a(i, 2)) + (L1 - R * a(i, 2)) * Sin(a(i, 2)) 'X1
        a(i, 4) = R * Sin(a(i, 2)) + (L1 - R * a(i, 2)) * Cos(a(i, 2)) 'Y1
        b(i, 1) = b(0, 1) + pas * i 'angle en degré
        b(i, 2) = b(i, 1) * p / 180 'angle en radian
        b(i, 3) = Entraxe / 2 + R * Cos(b(i, 2)) - (L2 - R * b(i, 2)) * Sin(b(i, 2)) 'X2
        b(i, 4) = R * Sin(b(i, 2)) + (L2 - R * b(i, 2)) * Cos(b(i, 2)) 'Y2
    Next i
    min1 = 9 ^ 99
    For i = 0 To 20
        min2 = 9 ^ 99
        For j = 0 To 20
            d = Sqr((a(i, 3) - b(j, 3)) ^ 2 + (a(i, 4) - b(j, 4)) ^ 2) 'distance des extrémités
            If d < min2 Then min2 = d: temp = b(j, 1)
        Next j
        If min2 < min1 Then min1 = min2: inia = a(i, 1) - pas: inib = temp - pas: X = a(i, 3): Y = a(i, 4)
    Next i
Next N
MaPrevision = Array(X, Y) 'vecteur horizontal
End Function
Pour L1 = L2 = 800000 mm on obtient X = -0,02162 mm.

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
2
Affichages
671
Réponses
3
Affichages
281
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…