Répartition d'un entier - arithmétie

Bonjour à tous,

Je profite du confinement pour améliorer quelques outils Excel en me formant sur VBA sur votre site mais je bloque sur un problème

Enoncé :

Je travaille dans le solaire photovoltaïque et nous devons attribuer les panneaux solaires sur des onduleurs. Un onduleur regroupe un nombre d'entrées N sur lesquels il est possible de mettre des chaines de panneaux. Il peut y avoir plusieurs chaines par entrée. il faut que les chaines (appelées string) soient toutes de la même taille sur une entrée : entrée 1, ch 1 = entrée 1 ch2…

Il y a donc 3 inputs dans la simulation :

  • nombre de panneaux solaires total sur l'onduleur
  • nombre entrées sur l'onduleur
  • nombre de chaines par entrée

J'ai fait un petit schéma pour faciliter la compréhension dans l'excel en PJ.

Mon fichier fonctionne très bien mais uniquement pour 4 entrées. J'aimerais si possible qu'on m'aide à trouver une solution pouvant aller jusqu'à 20 entrées.

Merci d'avance pour votre aide très précieuse et qui me fait bien avancer !

D'ici là, portez vous bien et courage pendant le confinement.

Orianne

Bonjour Orianne tcl,

Merci pour ce sujet très intéressant, il me faudrait quelques précisions

Dans les résultats retenus en colonne B, il y a une constante, x2, à quoi sert elle?

Le critère de tolérance (% de différence) est donné par la case H6, et il s'applique comment?

+/- 1%; -2%; +2% ?

Le critère du nombre de modules est-il variable, 130 n’étant pas un multiple exact de 4, les multiples de 4 les plus proches sont 128 par défaut et 132 par excès, peut on passer à 128 ou 132?

Bonjour NJHUB,

tout d'abord merci pour ta réponse, je craignais que ce problème n'intéresse personne

La case H6 est un pourcentage de tolérance.

Dans mon fichier actuel, je cherche toutes les solutions possibles que j'écris en colonne A et j'indique celles qui ont les entrées réparties le plus homogènement en colonne B. Ce critère de tolérance (% de différence) s'applique entre les entrées :

Si toutes les entrées ont presque le même nombre de module attribué au pourcentage près, alors je les recopie en colonne B.

En fait, ca me permet de faire un tri car il existe de nombreuses solutions et mon but est de trouver les solutions les plus équilibrées.

(c'est mieux électriquement pour l'onduleur)

la constante "X2" signifie multiplié par 2, j'affiche le résultat sous forme de string, dans l'exemple je sais que 130 = 2*16 + 2*16+ 2*16 + 2*17

si tu as des pistes, ce serait super hihi

Orianne

Je me rends compte que je n'ai pas répondu à toute les questions (mea culpa)

Le nombre de modules est fixe et ne peut malheureusement pas changer

==> si cette valeur est impaire il est possible sur la dernière entrée d'avoir des chaines de tailles différentes à un module près.

(en gros, s'il reste à attribué 41 modules) on peut dire qu'on fait une chaine de 20 et une de 21 mais uniquement sur la dernière entrée.

Pour la tolérance %, le pourcentage peut s'appliquer en valeur absolue donc une erreur de x % serait +/- x%

Bonjour Orianne tcl,

Voyez si les solutions proposées peuvent vous aider

Attention à Q2 et Q12 dépassement de la tolérance

pour 130 modules ou 65 paires de modules

Bonjour Njhub,

Merci pour votre fichier.

Avec votre méthode, je ne peux malheureusement pas modifier le nombre d'entrées ni le nombre de string par entrée.

J'aimerais pouvoir changer 3 inputs :

  • nb modules
  • nb strings/entrée
  • nb entrées

C'est un cas complexe (mathématiquement), j'ai réussi avec ma macro à aller jusqu'à 4 entrées mais il y a déjà un grand nombre de boucle (cf mon code )

Pour lancer ma macro, il suffit de cliquer sur l'image avec les câbles dans le fichier.

Merci quand même pour votre proposition, pensez vous pouvoir m'aider ?

Bonjour Orianne tcl,

J'aimerais pouvoir changer 3 inputs :

  • nb modules
  • nb strings/entrée
  • nb entrées
Vous pouvez changer toutes les valeurs en colonne I

de I1 à I5, les calculs se font dans la foulée,

excepté les

nombre d'entrées qui est de 4

nombre strings/entrée

C'est modifiable il suffirait de donner les valeurs limites

Bonjour,

effectivement votre solution fonctionne pour 4 entrées.

J'aimerais dans l'idéal pouvoir modifier toutes les inputs et notamment ce nombre d'entrées...

C'est là où ça devient sport...

Déjà qu'avec 4 entrées, mon code n'est pas bien joli mais si je veux mettre 15 entrées, je ne sais pas comment faire

Bonjour Orianne tcl,

mais si je veux mettre 15 entrées, je ne sais pas comment faire

ça existe un onduleur avec 15 entrées?

Je vous demandais les valeurs limites des appareils qui sont à votre catalogue

Bonjour Orianne tcl,

Nous n'avons pas la même approche,

Voyez le poids de votre fichier épuré; qui est 20 fois plus léger

Bonjour njhub,

Je te remercie une nouvelle fois pour ta proposition.

Les onduleurs ont des entrées comprises entre 2 et 20 entrées. Ce paramètre important doit pouvoir varier.

Dans mon Excel VBA, j'ai la possibilité de chercher les solutions pour 2/3 ou 4 entrées mais pas au delà vu la complexité mathématiques.

Ta solution fonctionne bien mais uniquement pour 4 entrées. Serait-il possible de l'adapter ?

Merci d'avance et bonne journée,

Orianne

Bonjour Orianne tcl,

Les onduleurs ont des entrées comprises entre 2 et 20 entrées.

C'est comme les modules, toujours par paires?

Demandez à un technicien, un onduleur avec 20 entrées n'en a que 10 puisqu'elles vont par paires, un pôle positif et l'autre négatif pour fermer le circuit, excepté si l'un des pôles est relié à la terre.

Vous ne me dites rien non plus sur le calcul de la "tolérance"... Quand on est hors norme... Là il n'y a plus qu'un moyen de rentrer dans la tranche tolérable, par l'ajustement du nombre de modules

Rechercher des sujets similaires à "repartition entier arithmetie"