Suite

Comment ajouter plusieurs expressions python dans la calculatrice de champ


Comment ajouter plusieurs expressions python dans le calculateur de champs ArcMap si possible ?

J'ai essayé de séparer chaque expression sur une nouvelle ligne et également de séparer par un point-virgule, mais aucune n'a fonctionné.

Voici les expressions que j'essaie d'exécuter à la fois :

!field!.replace("+","") '_'.join(num.zfill(4) pour num dans !field!.split('_')) !field![:9]

Ai-je raison de supposer que vous souhaitez effectuer les opérations dans l'ordre, c'est-à-dire que la valeur finale du champ provient de l'opération !field![:9] ?

Si oui, j'aurais le bloc de code comme:

def field_calc(field): str1 = field.replace("+","") str2 = "_".join([num.zfill(4) for num in str1.split('_')]) str3 = str2 [:9] renvoie str3

Ensuite, appelez-le en utilisant :

champ_calc(!champ!)

Cela exécutera chaque processus dans l'ordre, en faisant avancer le résultat. Je n'ai pas testé cela car je n'ai pas les données mais je pense que cela devrait faire l'affaire.


Dans le bloc de code :

def calcField(field): f1 = field.replace("+","") f2 = '_'.join(num.zfill(4) for num in field.split('_')) f3 = field[: 9] retour f1+f2+f3

dans la ligne d'expression : calcField(!field!)


Créer un menu en Python [fermé]

Vous voulez améliorer cette question ? Mettez à jour la question afin qu'elle soit sur le sujet pour Stack Overflow.

Je travaille sur la création d'un menu en python qui doit :

  1. Imprimer un menu avec des options numérotées
  2. Laisser l'utilisateur saisir une option numérotée
  3. Selon le numéro d'option choisi par l'utilisateur, exécutez une fonction spécifique à cette action. Pour l'instant, votre fonction peut simplement afficher qu'elle est en cours d'exécution.
  4. Si l'utilisateur entre quelque chose d'invalide, il indique à l'utilisateur qu'il l'a fait et réaffiche le menu
  5. utilisez un dictionnaire pour stocker les options de menu, avec le numéro de l'option comme clé et le texte à afficher pour cette option comme valeur.
  6. L'ensemble du système de menus doit s'exécuter dans une boucle et permettre à l'utilisateur de faire des choix jusqu'à ce qu'il sélectionne exit/quit, moment auquel votre programme peut se terminer.

Je suis nouveau sur Python et je n'arrive pas à comprendre ce que j'ai fait de mal avec le code.

Voilà ce qu'il voulait apparemment :


1 réponse 1

. les meilleurs résultats proviennent d'un ensemble pondéré de techniques.

Peut-être qu'ils le font, selon l'application. Mais chacune des similitudes mentionnées, est équivalente à l'autre au moins lorsqu'il s'agit de signaux provenant de systèmes linéaires.

La corrélation croisée fournit de très bons résultats, surtout si vous essayez de déterminer si un signal est du bruit ou non et une très bonne application de cela est dans le récepteur Rake. Et via le lien de la corrélation avec la transformée de Fourier discrète (DFT) qui nous permet de l'effectuer dans le domaine fréquentiel, nous pouvons commencer à voir les équivalences entre les énoncés donnés.

Une division plus informative serait entre les « métriques » linéaires et les métriques non linéaires. Mais, le domaine de « métriques de similitude » est vaste, il est donc préférable de commencer par ce qui est connu du problème, puis de rechercher une solution.

Ce que je vais faire ici, c'est parler un peu de certaines métriques de similitude que vous pourriez trouver utiles, mais aussi écrire un peu sur d'autres façons de faire la même chose qui ne nécessitent pas l'évaluation de la similitude comme je le pense que cette deuxième partie est plus proche de ce que vous essayez d'atteindre (mais pas de ce que vous demandez directement).

Sur les métriques de similarité :

La corrélation croisée fonctionnera bien si vos signaux ont été systématiquement échantillonnés les uns par rapport aux autres. C'est-à-dire que la fréquence d'échantillonnage de chaque appareil reste absolument stable, mais les moments relatifs auxquels l'enregistrement a commencé peuvent être modifiés. Cela insérera un délai entre les formes d'onde qui est très facile à récupérer en effectuant plusieurs corrélations croisées à différents délais.

Si vous souhaitez examiner des fréquences spécifiques, vous pouvez soit filtrer les signaux avant la corrélation croisée, soit utiliser la cohérence.

Une autre chose que vous pouvez essayer est l'analyse en composantes principales. Pour ce faire, regroupez tous les signaux que vous recevez des appareils $N$ dans une matrice et envoyez-les à PCA. L'ACP essaiera de décomposer ces signaux en un ensemble plus petit de "principaux" (non corrélé) et renverra une matrice avec ces signaux élémentaires et leurs forces. Pour ce faire, il utilise la covariance, qui est très étroitement liée à la corrélation. Le point ici est que si tous les signaux sont les mêmes, il n'y a pas de "composants" et le vecteur des forces sera nul. Mais, s'il y a une variation significative dans les signaux, le vecteur des forces commencera à présenter une certaine structure. Vous pouvez ensuite utiliser le vecteur des forces dans un simple classificateur qui discrimine si la variation indiquée est négligeable ou mérite une alarme.

Maintenant, il se peut que la période d'échantillonnage de chaque appareil GPS ne soit pas stable (très probable). Et cela signifie maintenant que si vous deviez mettre "un signal au-dessus d'un autre" (comme s'ils étaient imprimés sur des diapositives de transparence), il serait possible d'aligner certains sommets, mais pas les autres.

Dans ce cas, vous pouvez utiliser Dynamic Time Warping (DTW). Imaginez que vous écoutez un disque vinyle avec beaucoup de wow. Vous pouvez supprimer ce wow, en accélérant l'enregistrement lorsque le tourne-disque ralentit et vice versa. C'est exactement ce que fait DTW. Vous lui transmettez deux signaux et il renvoie une matrice qui vous indique où ralentir et où accélérer. Après avoir appliqué cette transformation à l'un des signaux, les pics s'aligneraient parfaitement. Le montant total de l'écart dans cette matrice est une métrique de similarité. Mais, DTW n'est pas exactement rapide. surtout si vous devez considérer $frac<2>$ combinaisons uniques (car toutes ces métriques sont symétriques) entre les 2 signaux sur $N$.

Sur l'application spécifique :

Ainsi, l'application est une alerte d'interférence GPS. Il y a deux scénarios de cas d'utilisation que je peux voir pour le moment :

  1. Brouillage GPS
    • Où le récepteur ne peut pas accéder aux signaux des satellites parce qu'une source locale « inonde » son entrée de « bruit ».
  2. Usurpation GPS
    • Où le récepteur pense ils écoutent un satellite, mais en réalité ils écoutent une boîte noire bruyante qui se comporte comme un satellite.

Puisqu'il est impossible de déclencher une alarme d'interférence basée uniquement sur les informations disponibles sur un appareil, l'idée est d'incorporer des informations provenant d'autres sources de données (appareils / données à proximité) afin de confirmer l'"histoire" que le récepteur GPS de cet appareil est écouter.

Comment peut-on avoir une jauge sur la qualité du correctif sur un appareil donné ?

Il y a deux choix évidents :

Entre ces deux, la Dilution de la Précision est un indicateur "plus doux" (plage de valeurs plus large) de la qualité de la correction.

Ainsi, en supposant qu'il existe une infrastructure pour collecter des données GPS à partir d'un ensemble d'appareils (comme Waze ou Glypmse par exemple), les alarmes suivantes peuvent être déclenchées :


Tkinter fournit divers contrôles, tels que des boutons, des étiquettes et des zones de texte utilisés dans une application GUI. Ces contrôles sont communément appelés widgets.

Il existe actuellement 15 types de widgets dans Tkinter. Nous présentons ces widgets ainsi qu'une brève description dans le tableau suivant &moins

Le widget Bouton est utilisé pour afficher des boutons dans votre application.

Le widget Canvas est utilisé pour dessiner des formes, telles que des lignes, des ovales, des polygones et des rectangles, dans votre application.

Le widget Checkbutton est utilisé pour afficher un certain nombre d'options sous forme de cases à cocher. L'utilisateur peut sélectionner plusieurs options à la fois.

Le widget Entrée est utilisé pour afficher un champ de texte sur une seule ligne pour accepter les valeurs d'un utilisateur.

Le widget Frame est utilisé comme widget conteneur pour organiser d'autres widgets.

Le widget Label est utilisé pour fournir une légende sur une seule ligne pour d'autres widgets. Il peut également contenir des images.

Le widget Listbox est utilisé pour fournir une liste d'options à un utilisateur.

Le widget Menubutton est utilisé pour afficher les menus dans votre application.

Le widget Menu est utilisé pour fournir diverses commandes à un utilisateur. Ces commandes sont contenues dans Menubutton.

Le widget Message est utilisé pour afficher des champs de texte multilignes pour accepter les valeurs d'un utilisateur.

Le widget Radiobutton est utilisé pour afficher un certain nombre d'options sous forme de boutons radio. L'utilisateur ne peut sélectionner qu'une seule option à la fois.

Le widget Échelle est utilisé pour fournir un widget de curseur.

Le widget Scrollbar est utilisé pour ajouter une capacité de défilement à divers widgets, tels que les zones de liste.

Le widget Texte est utilisé pour afficher du texte sur plusieurs lignes.

Le widget Toplevel est utilisé pour fournir un conteneur de fenêtre séparé.

Le widget Spinbox est une variante du widget Tkinter Entry standard, qui peut être utilisé pour sélectionner parmi un nombre fixe de valeurs.

Un PanedWindow est un widget conteneur qui peut contenir un nombre quelconque de volets, disposés horizontalement ou verticalement.

Un labelframe est un simple widget conteneur. Son objectif principal est d'agir comme un espaceur ou un conteneur pour les dispositions de fenêtres complexes.


Comment ajouter plusieurs expressions python dans la calculatrice de champ - Systèmes d'information géographique

Prenons un mot de passe comme une combinaison de caractères alphanumériques et de caractères spéciaux, et vérifions si le mot de passe est valide ou non à l'aide de quelques conditions.

  1. Doit avoir au moins un numéro.
  2. Doit avoir au moins un caractère majuscule et un caractère minuscule.
  3. Doit avoir au moins un symbole spécial.
  4. Doit comporter entre 6 et 20 caractères.

Nous pouvons vérifier si une chaîne donnée est éligible pour être un mot de passe ou ne pas utiliser plusieurs manières.

Méthode n°1 : Méthode naïve (sans utiliser Regex).

Ce code utilisait des fonctions booléennes pour vérifier si toutes les conditions étaient remplies ou non. On voit que si la complexité du code est basique, la longueur est considérable.

Méthode n°2 : Utilisation de l'expression régulière

La méthode compile() du module Regex crée un objet Regex, permettant d'exécuter des fonctions regex sur le tapoter variable. Ensuite, nous vérifions si le motif défini par tapoter est suivi de la chaîne d'entrée mot de passe. Si c'est le cas, la méthode de recherche renvoie vrai, ce qui permettrait au mot de passe d'être valide.


Conversions de types personnalisés

Si vous souhaitez que les champs correspondants soient automatiquement convertis dans votre propre type, vous pouvez transmettre un dictionnaire d'informations de conversion de type à analyser () et compiler().

Le convertisseur recevra la chaîne de champ correspondante. Tout ce qu'il rendra sera substitué dans le Résultat exemple pour ce champ.

Vos conversions de types personnalisés peuvent remplacer les types intégrés si vous en fournissez un avec le même identifiant :

Si le convertisseur de type a l'option modèle attribut, il est utilisé comme expression régulière pour une meilleure correspondance de modèle (au lieu de celui par défaut) :

Vous pouvez également utiliser le avec_motif(motif) decorator pour ajouter ces informations à une fonction de conversion de type :

Un exemple plus complet d'un type personnalisé pourrait être :

Si le convertisseur de type modèle utilise regex-grouping (avec parenthèse), vous devez l'indiquer en utilisant l'optionnel regex_group_count paramètre dans le avec_motif() décorateur:

Sinon, cela peut entraîner des problèmes d'analyse avec des paramètres sans nom/fixes.


Scénarios de test plus avancés

Avant de commencer à créer des tests pour votre application, rappelez-vous les trois étapes de base de chaque test :

  1. Créez vos entrées
  2. Exécuter le code, capturer la sortie
  3. Comparer la sortie avec un résultat attendu

Ce n'est pas toujours aussi simple que de créer une valeur statique pour l'entrée comme une chaîne ou un nombre. Parfois, votre application nécessitera une instance d'une classe ou d'un contexte. Que faites-vous alors?

Les données que vous créez en entrée sont appelées fixation. C'est une pratique courante de créer des appareils et de les réutiliser.

Si vous exécutez le même test et passez des valeurs différentes à chaque fois et attendez le même résultat, cela s'appelle paramétrage.

Gestion des échecs attendus

Plus tôt, lorsque vous avez dressé une liste de scénarios pour tester sum() , une question s'est posée : que se passe-t-il lorsque vous lui fournissez une mauvaise valeur, telle qu'un seul entier ou une chaîne ?

Dans ce cas, vous vous attendriez à ce que sum() renvoie une erreur. Lorsqu'il renvoie une erreur, cela entraînerait l'échec du test.

Il existe une manière spéciale de gérer les erreurs attendues. Vous pouvez utiliser .assertRaises() comme gestionnaire de contexte, puis à l'intérieur du bloc with exécuter les étapes de test :

Ce cas de test ne réussira désormais que si sum(data) lève une TypeError . Vous pouvez remplacer TypeError par n'importe quel type d'exception que vous choisissez.

Isoler les comportements dans votre application

Plus tôt dans le didacticiel, vous avez appris ce qu'est un effet secondaire. Les effets secondaires rendent les tests unitaires plus difficiles car, chaque fois qu'un test est exécuté, il peut donner un résultat différent, ou pire encore, un test peut impacter l'état de l'application et faire échouer un autre test !

Il existe des techniques simples que vous pouvez utiliser pour tester des parties de votre application qui ont de nombreux effets secondaires :

  • Code de refactorisation pour suivre le principe de responsabilité unique
  • Se moquer de tout appel de méthode ou de fonction pour supprimer les effets secondaires
  • Utilisation de tests d'intégration au lieu de tests unitaires pour cette partie de l'application

Si vous n'êtes pas familiarisé avec la moquerie, consultez Python CLI Testing pour d'excellents exemples.

Rédaction de tests d'intégration

Jusqu'à présent, vous avez principalement appris sur les tests unitaires. Les tests unitaires sont un excellent moyen de créer un code prévisible et stable. Mais en fin de compte, votre application doit fonctionner lorsqu'elle démarre !

Le test d'intégration est le test de plusieurs composants de l'application pour vérifier qu'ils fonctionnent ensemble. Les tests d'intégration peuvent nécessiter d'agir comme un consommateur ou un utilisateur de l'application en :

  • Appel d'une API REST HTTP
  • Appel d'une API Python
  • Appeler un service Web
  • Exécuter une ligne de commande

Chacun de ces types de tests d'intégration peut être écrit de la même manière qu'un test unitaire, en suivant le modèle Input, Execute et Assert. La différence la plus significative est que les tests d'intégration vérifient plus de composants à la fois et auront donc plus d'effets secondaires qu'un test unitaire. De plus, les tests d'intégration nécessiteront la mise en place de plus de dispositifs, comme une base de données, un socket réseau ou un fichier de configuration.

C'est pourquoi il est de bonne pratique de séparer vos tests unitaires et vos tests d'intégration. La création d'accessoires requis pour une intégration comme une base de données de test et les cas de test eux-mêmes prennent souvent beaucoup plus de temps à s'exécuter que les tests unitaires.

Un moyen simple de séparer les tests unitaires et d'intégration consiste simplement à les placer dans des dossiers différents :

Il existe de nombreuses façons d'exécuter uniquement un groupe sélectionné de tests. L'indicateur de spécification du répertoire source, -s , peut être ajouté à unittest Discover avec le chemin contenant les tests :

unittest vous aura donné les résultats de tous les tests dans le répertoire tests/integration.

Tester les applications basées sur les données

De nombreux tests d'intégration nécessiteront l'existence de données backend comme une base de données avec certaines valeurs. Par exemple, vous pouvez souhaiter effectuer un test qui vérifie que l'application s'affiche correctement avec plus de 100 clients dans la base de données, ou que la page de commande fonctionne même si les noms de produits sont affichés en japonais.

Ces types de tests d'intégration dépendront de différents appareils de test pour s'assurer qu'ils sont reproductibles et prévisibles.

Une bonne technique à utiliser consiste à stocker les données de test dans un dossier de votre dossier de test d'intégration appelé fixtures pour indiquer qu'il contient des données de test. Ensuite, dans vos tests, vous pouvez charger les données et exécuter le test.

Voici un exemple de cette structure si les données étaient constituées de fichiers JSON :

Dans votre scénario de test, vous pouvez utiliser la méthode .setUp() pour charger les données de test à partir d'un fichier de fixation dans un chemin connu et exécuter de nombreux tests sur ces données de test. N'oubliez pas que vous pouvez avoir plusieurs cas de test dans un seul fichier Python et que la découverte unittest exécutera les deux. Vous pouvez avoir un scénario de test pour chaque ensemble de données de test :

Si votre application dépend de données provenant d'un emplacement distant, comme une API distante, vous voulez vous assurer que vos tests sont reproductibles. L'échec de vos tests parce que l'API est hors ligne ou qu'il y a un problème de connectivité peut ralentir le développement. Dans ces types de situations, il est recommandé de stocker les appareils distants localement afin qu'ils puissent être rappelés et envoyés à l'application.

La bibliothèque de requêtes contient un package gratuit appelé réponses qui vous permet de créer des montages de réponse et de les enregistrer dans vos dossiers de test. En savoir plus sur leur page GitHub.


Puissant Python One-Liners

Cette page est consacrée aux programmes courts qui peuvent effectuer des opérations puissantes appelées Python One-Liners.

Vous pouvez demander : pourquoi devrais-je m'en soucier ? La réponse est profonde : si vous ne pouvez pas lire et écrire des extraits de code d'une seule ligne, comment pouvez-vous jamais espérer lire et écrire des bases de code plus compliquées ? Les one-liners Python peuvent être tout aussi puissants qu'un programme long et fastidieux écrit dans un autre langage conçu pour faire la même chose. Dans d'autres langages (pensez : Java), ce serait presque impossible, mais en Python, c'est beaucoup plus facile à faire. L'astuce est de penser à quelque chose qui " fera beaucoup avec peu ". Plus important encore, lire et écrire sur les one-liners Python (par exemple, dans cet article) est très amusant ! Il existe même toute une sous-culture autour de qui peut écrire le code le plus court pour un problème donné.

Ce serait génial si cette page s'agrandissait au point de nécessiter une sorte de système d'organisation. (Éditer: Les one-liners sont maintenant triés plus ou moins par facilité de compréhension - du simple au difficile. Veuillez utiliser un " insert trié" pour votre nouveau one-liner.)

Le code source est fourni par différents codeurs Python --- Merci à tous ! Un merci spécial au premier contributeur JAM.

Bien sûr, il y a un débat sur la question de savoir si les one-liners sont même Pythonique. En règle générale : si vous utilisez des lignes simples qui prêtent à confusion, sont difficiles à comprendre ou pour montrer vos compétences, elles ont tendance à être Non pythonique. Cependant, si vous utilisez des astuces bien établies telles que la compréhension de liste ou l'opérateur ternaire, elles ont tendance à être Pythonic.

Alors, utilisez judicieusement votre super-pouvoir unique !


Frais de points multiples

Le potentiel électrique (tension) en tout point de l'espace produit par un nombre quelconque de charges ponctuelles peut être calculé à partir de l'expression de charge ponctuelle par simple addition puisque la tension est une quantité scalaire. Le potentiel d'une distribution de charge continue peut être obtenu en additionnant les contributions de chaque point de la charge source.

Le calcul du potentiel est intrinsèquement plus simple que la somme vectorielle requise pour calculer le champ électrique.

Le champ électrique à l'extérieur d'une distribution de charge à symétrie sphérique est identique à celui d'une charge ponctuelle comme le montre la loi de Gauss. Ainsi, le potentiel en dehors d'une distribution de charge sphérique est identique à celui d'une charge ponctuelle.


Comment ajouter plusieurs expressions python dans la calculatrice de champ - Systèmes d'information géographique

Le logiciel CYMCAP est dédié au calcul des calculs de courant admissible et d'échauffement pour les installations de câbles d'alimentation. La précision du logiciel offre une confiance accrue lors de la mise à niveau des installations de câbles d'alimentation et de la conception de nouvelles, maximisant les avantages de l'investissement en capital considérable qui leur est associé. Il contribue également à augmenter la fiabilité du système et prend en charge la bonne utilisation de l'équipement installé.

Le logiciel CYMCAP est dédié aux calculs de courant admissible et d'échauffement pour les installations de câbles d'alimentation. La détermination du courant maximal que les câbles d'alimentation peuvent supporter sans détérioration d'aucune de leurs propriétés électriques est importante pour la conception des installations électriques.

Il traite les caractéristiques thermiques des câbles en régime permanent et transitoire selon les techniques analytiques décrites par Neher-McGrath et les normes internationales IEC 287 et IEC 853 .

Ce logiciel a été développé conjointement par Ontario Hydro (Hydro One), l'Université McMaster et CYME International, sous les auspices de l'Association canadienne de l'électricité.

La validation des résultats obtenus avec le logiciel CYMCAP offre une confiance accrue lors de la mise à niveau des installations de câbles électriques existantes et de la conception de nouvelles, maximisant ainsi les avantages de l'investissement en capital considérable qui leur est associé.

Capacités d'analyse

  • Techniques itératives basées sur les méthodes Neher-McGrath et IEC-60287©
  • Conformité totale aux pratiques nord-américaines et conformité aux normes IEC IEC 60287 , IEC 60228 , , IEC 60853 , etc.
  • Représentation graphique détaillée de pratiquement tout type de câble d'alimentation. Cette fonction peut être utilisée pour modifier les données de câbles existantes et enrichir la bibliothèque de câbles avec de nouveaux. Cela comprend les câbles unipolaires, tripolaires, ceinturés, tubulaires, sous-marins, gainés et blindés
  • Différentes conditions d'installation de câbles telles que directement enterré, remblai thermique, conduits souterrains ou bancs de conduits
  • Câbles de type tuyau directement enterrés ou dans un remblai thermique
  • Bibliothèques et bases de données indépendantes pour les câbles, les faisceaux de gaines, les courbes de charge, les sources de chaleur et les installations
  • Modélisation de câbles dans l'air sur poteaux de colonnes montantes, groupes de câbles dans l'air, migration d'humidité, sources de chaleur et radiateurs à proximité, etc.
  • Différents types de câbles au sein d'une même installation
  • Modélisation de la surface terrestre non isotherme
  • Modèles de chargement cyclique selon IEC-60853©
  • Plusieurs câbles par phase avec une modélisation précise des inductances mutuelles de la gaine qui influencent grandement les pertes de courant de circulation et déclassent ainsi le courant admissible des câbles
  • Tous les types d'arrangements de liaison de gaine pour les formations plates et triangulaires sont pris en charge avec une modélisation explicite des longueurs de section mineures, de l'espacement inégal des câbles, etc.
  • Courant admissible en fonction du temps et de la température
  • Analyse de la température en fonction du temps et de l'intensité admissible
  • Temps pour atteindre une température donnée, compte tenu du courant admissible
  • Analyse de l'intensité et de la température en fonction du temps
  • Profils de charge définis par l'utilisateur par circuit
  • Plusieurs câbles par installation
  • Les circuits peuvent être chargés simultanément ou un à la fois

Les modules supplémentaires CYMCAP offrent des capacités étendues au logiciel CYMCAP, permettant de modéliser plus d'installations, en particulier les installations non standard. Cela comprend la modélisation d'installations avec plusieurs faisceaux et remblais chacun avec une résistivité thermique différente le calcul de l'intensité admissible et de la température des câbles dans des tunnels non ventilés le classement des câbles dans les goulottes remplies et non remplies et le classement des câbles dans un ou plusieurs non magnétiques boîtiers.

Les modules supplémentaires CYMCAP permettent d'effectuer plusieurs analyses d'intérêt pour les installations de câbles, comme évaluer la densité de flux magnétique en tout point sur ou au-dessus du sol d'une installation de câbles souterraine, déterminer les impédances et les admittances homopolaires et homopolaires pour tous les câbles présents dans une installation , effectuer des évaluations de câbles de court-circuit, déterminer le placement optimal de plusieurs circuits dans un faisceau de conduits compte tenu des contraintes spécifiées et calculer l'intensité admissible de deux circuits qui se croisent.

Le module complémentaire (MDB) Multiple Duct Banks and Backfills (MDB) est conçu pour déterminer l'intensité admissible en régime permanent des câbles installés dans plusieurs rangées de conduits et/ou remblais voisins avec une résistivité thermique différente. Le module présente une solution unique combinant des méthodes de calcul standard et non standard. Le module calcule les valeurs de T4 (la résistance thermique externe au câble) à l'aide de la méthode des éléments finis, puis le courant admissible (ou température de fonctionnement) de l'installation du câble est obtenu à l'aide de la méthode de solution normalisée CEI.

Les capacités suivantes sont mises en évidence :

  • Modélisation d'un nombre illimité de zones rectangulaires avec des résistivités thermiques différentes
  • Modélisation jusqu'à trois rangées de conduits en une seule installation
  • Modélisation d'une source de chaleur ou d'un dissipateur de chaleur dans l'installation
  • Calcul du courant admissible ou de la température en régime permanent
  • L'analyse transitoire, le chargement cyclique et les évaluations d'urgence sont pris en charge
  • Calcul de l'indice thermique des câbles installés dans des goulottes remplies

Le module optionnel Câbles dans les tunnels permet à l'utilisateur de déterminer la température et l'intensité admissible en régime permanent, la charge cyclique, la cote d'urgence et l'analyse transitoire pour les câbles installés dans des tunnels non ventilés. Notez que seuls les câbles également chargés ayant le même type et la même charge sont pris en compte. Ce module complémentaire prend en charge une grande variété d'arrangements de câbles pour les câbles à un seul conducteur (formations plates ou trèfles) et à trois conducteurs. Les principales caractéristiques sont :

  • Modélisation d'une grande variété de méthodes d'installation : pose au sol suspendue à un mur dans des racks de type échelle ou dans des chemins de câbles
  • Les câbles et groupes de câbles peuvent être unipolaires ou tripolaires. Les câbles unipolaires peuvent être disposés en formations plates (verticalement ou horizontalement) ou en trèfle
  • Calcul de l'intensité admissible ou de la température en régime permanent. Charge cyclique utilisant des facteurs de charge quotidiens, hebdomadaires et annuels. Calcul des cotes d'urgence

La valeur thermique des câbles installés dans des goulottes non remplies ou remplies est déterminée à l'aide des modules CYMCAP/UNF et CYMCAP/MDB respectivement.

Dans ces modules, une auge (ou une tranchée) est définie comme une longue excavation de forme rectangulaire peu profonde, où les murs, le fond et la couverture sont en béton. Les câbles peuvent être installés au sol, suspendus à des supports sur les murs ou sur des racks. L'auge peut être remplie d'un matériau avec de bonnes propriétés thermiques ou elle peut être laissée vide (remplie d'air). Le mécanisme de transfert de chaleur est différent pour les auges remplies et non remplies et, par conséquent, elles sont traitées indépendamment.

Initialement, la seule option pour évaluer les installations en auge non remplies était d'utiliser la norme CEI. Dans cette approche, les valeurs nominales des câbles sont calculées comme pour les câbles à l'air libre, mais la température à l'intérieur de la goulotte est calculée conformément à la norme CEI 60287-2-1 . Le module a été considérablement amélioré et comprend trois options en plus de la norme IEC pour modéliser une installation en auge donnée : Méthode Slaninka 1, Méthode Slaninka 2 et Méthode Anders-Coates.

Avec la norme CEI, les résistivités thermiques du sol et du couvercle de la goulotte sont ignorées. Avec la méthode Slaninka 1, la résistivité thermique du couvercle de la goulotte est prise en compte. La méthode Slaninka 2 considère à la fois les résistivités thermiques de la couverture et du sol entourant la gouttière. Avec la méthode Anders-Coates, en plus des résistivités thermiques du sol et de la couverture, la vitesse du vent au-dessus du creux est prise en compte. Dans toutes les options, l'utilisateur peut choisir si l'auge est exposée au rayonnement solaire ou ombragée. Les approches sont toutes basées sur des recherches de terrain menées par des parties indépendantes et publiées dans des revues scientifiques.

Les auges remplies sont traitées dans le module CYMCAP/MDB comme des remblais multiples. Les câbles dans les goulottes remplies sont évalués dans le logiciel CYMCAP à l'aide de :

  • Méthode des éléments finis pour calculer la résistance thermique externe au câble T 4
  • Procédures des normes IEC pour effectuer efficacement des calculs de courant admissible
  • Calcule la température et l'intensité admissible en régime permanent inégalement chargées comme d'habitude
  • Facilités pour déplacer les auges vers le bas et modéliser les auges asymétriques
  • Capacité d'effectuer une évaluation de charge cyclique grâce à l'utilisation de facteurs de charge

Le module complémentaire de boîtiers multiples (MCAS) permet à l'utilisateur de déterminer l'intensité admissible et/ou la température nominale de charge inégale en régime permanent des câbles installés dans un ou plusieurs boîtiers non magnétiques. Dans le logiciel CYMCAP, un boîtier est défini comme un grand conduit non magnétique rempli d'air, à l'intérieur duquel peuvent être installés des câbles en gaine et des câbles hors gaine. Les tubages peuvent être immergés dans l'eau, placés sur le fond marin ou enterrés sous terre. Aucun autre matériau de remplissage autre que l'air n'est pris en compte dans le(s) caisson(s) ou dans le(s) conduit(s).

Le module dispose de nombreuses fonctionnalités de modélisation parmi lesquelles les capacités suivantes peuvent être mises en évidence :

  • Différents milieux d'enfouissement sont autorisés : aquatique ou souterrain
  • Modélisation d'un nombre quelconque de boîtiers en parallèle dans la même installation
  • Modélisation d'un nombre quelconque de conduits à l'intérieur d'un ou plusieurs caissons en même temps
  • Capable de modéliser un nombre quelconque de circuits à l'intérieur d'un boîtier et d'un conduit
  • Les circuits dans les gaines et dans les boîtiers peuvent être plusieurs câbles par phase
  • Plusieurs matériaux sont disponibles pour modéliser les gaines et les caissons, dont les matériaux métalliques amagnétiques (PVC, Polyéthylène, Faïence, métal amagnétique, etc.)
  • Les tailles des conduits et des boîtiers ne sont pas limitées

Le module complémentaire Duct Bank Optimizer permet à l'utilisateur de déterminer le placement optimal de plusieurs circuits dans un groupe de conduits. Plus précisément, le module peut recommander diverses configurations de circuits au sein d'un groupe de conduits afin que :

  • Le courant admissible global du banc de gaines, c'est-à-dire la somme des courants admissible pour tous les circuits, est maximisé
  • Le courant admissible global du banc de gaines, c'est-à-dire la somme des courants admissible pour tous les circuits, est minimisé
  • Le courant admissible d'un circuit donné est maximisé
  • Le courant admissible d'un circuit donné est minimisé

Pour un banc de 3 par 4 avec trois trèfles et un circuit triphasé (une phase par conduit), il y a jusqu'à 665 280 combinaisons possibles. L'algorithme mathématique élaboré du module empêche le calcul répétitif de cas équivalents, donc la solution est obtenue très efficacement. La condition présentée sur le côté droit de l'illustration montre les emplacements des câbles pour une intensité maximale.

Le module de champs magnétiques (EMF) est un module complémentaire au logiciel CYMCAP. Après une simulation de courant admissible ou de température en régime permanent, le module calcule la densité de flux magnétique en tout point sur ou au-dessus du sol d'une installation de câbles souterrains. La sortie est un tracé (ou un tableau) de la densité de flux magnétique en fonction de la position. Les fonctionnalités de modélisation incluent :

  • Approche bidimensionnelle à fil mince de longueur infinie
  • Prise en compte des courants variables dans le temps produisant un vecteur magnétique tournant à polarisation elliptique
  • Les courants dans un circuit triphasé peuvent être déséquilibrés (en amplitude et en phase)
  • Tous les milieux sont supposés homogènes, isotropes et linéaires
  • Les courants induits sont négligés

Le module complémentaire Cables Impedance Calculation (ZMat) calcule les paramètres électriques des câbles nécessaires à la réalisation d'études de flux de charge et de court-circuit à la fréquence industrielle (50/60 Hz). Le calcul des impédances est effectué après qu'une simulation de courant admissible ou de température en régime permanent a été effectuée avec succès. Les résultats finaux sont les impédances et les admittances homopolaires et homopolaires pour tous les câbles présents dans l'installation.

Toutes les matrices d'impédance et d'admittance sont affichées dans le rapport : à partir des matrices primitives par section par composant métallique, les matrices de liaison, puis les matrices de phase et de circuit et enfin les matrices de composants symétriques résultantes. Les fonctionnalités suivantes sont prises en charge :

  • Calcul des impédances de séquence pour tous les câbles présents dans une installation
  • Calcul des admittances de séquence pour tous les câbles présents dans une installation
  • Plusieurs câbles par phase sont pris en charge
  • Un ou plusieurs neutres peuvent être représentés et sont pris en compte dans les calculs
  • La résistivité du sol peut être modifiée

Le module complémentaire d'évaluation des câbles de court-circuit (SCR) est dédié à l'évaluation des câbles pour les courants de court-circuit. La méthode mise en œuvre est basée sur la norme CEI 60949 (1988) « Calcul des courants de court-circuit thermiquement admissibles, en tenant compte des effets de chauffage non adiabatiques ». The CYMCAP program computes both adiabatic and non-adiabatic ratings. The module offers two possibilities according to the known input data.

  • Compute the maximum short-circuit current that a cable component can carry given the short-circuit time together with the initial and final temperatures
  • Compute the final temperature that a given cable component will reach for a specified short-circuit current, initial temperature, and time interval

Short-circuit ratings can be computed for all metallic layers supported in CYMCAP:

  • Conductor
  • Sheath
  • Sheath Reinforcement
  • Concentric Neutral / Skid Wires
  • Armour

The Circuits Crossing (Xing) add-on module allows the user to determine the steady-state ampacity of two circuits crossing each other.

When two circuits cross each other, each of them behaves as a heat source for the other one. The amount of generated heat, the vertical distance between the crossing circuits and the crossing angle are the main parameters that influence the crossing rating. In the absence of crossing calculations, the general practice is to use the conservative result where the circuits are assumed to be parallel. When the circuits are parallel, the thermal interaction is maximum. It goes to a minimum when they cross each other at a right angle. The conservative approach unnecessarily de-rates both circuits. By using the Circuits Crossing module, one can achieve ratings up to 20% higher than the conservative ampacities that are obtained based on the parallel installation scenario. Modeling features include:

  • Modeling of two circuits crossings each other in the same installation
  • Circuits crossing directly buried underground, in buried ducts and in buried pipes underground
  • Rating approach as per the IEC standard 60287-3-3©

  • CYMCAP
  • Additional Modules: Installations
  • Additional Modules: Analyses