Aéromodélisme RC

Techniques et conception

logo2.jpg

Aérocalc

Logiciel de calcul des aéromodèles

Lien vers « Sauver un animal »

 

Sommaire général

Auteur : Philippe Kauffmann

Début d’écriture : mai 2009

Dernière mise à jour : 18 juillet 2012

 

Photos : constructeur ou auteur, sauf mention contraire

 

N. B. : double-cliquer sur les images permet souvent d’obtenir une version agrandie.

 

Etat actuel d’Aérocalc : tous les panneaux sont opérationnels et tous les graphismes sont actifs.

 

Le logiciel :

·         permet d’esquisser un modèle,

·         calcule les masses et leur répartition,

·         calcule et visualise les caractéristiques aérodynamiques,

·         calcule le centrage et visualise la stabilité dynamique

·         optimise le choix des moteurs,

·         dessine les caractéristiques des moteurs,

·         optimise et dessine les caractéristiques des hélices,

·         calcule et visualise les contraintes et flexions dans les ailes,

·         permet le calcul des clefs d’aile

 

Téléchargement de la dernière version d’Aérocalc : aerocalc069.zip

 

Sommaire

 

Objectif et fonctionnalités d’Aérocalc                                                                 

Installation et prise en main d’Aérocalc

Calcul d’un aéromodèle avec Aérocalc

Domaine d’utilisation

Configuration générale

Définition du type de modèle et ses caractéristiques principales

            Les maquettes

            Les planeurs

            Les moto-planeurs

            Les modèles réduits d’avion

Définition de la motorisation et ses caractéristiques principales

Le panneau géométrie

Le panneau aérodynamique

            Polaire d’aile

            Coefficient de section du fuselage

            Coefficient de propreté du fuselage

Cx (coefficient de traînée) du train d’atterrissage

            Czmax des ailes

Le panneau propulsion thermique

Le panneau propulsion électrique

Le panneau construction – stabilité - autonomie

Définition de la technique de construction

Réalisation du centrage

Calcul de l'autonomie

Le panneau technique de construction - RDM

Le panneau caractéristiques - réglages

Les outils de création d’Aérocalc

Installation des outils

Tcl/Tk

Visual Tcl

Free Wrap

Codage en Tcl/Tk sous Visual-Tcl

Micro galop d’essai

Galop d’essai de Visual-Tcl

Petite application élémentaire

Aérocalc

Le cadre visuel

L’aide en ligne

Chargement et sauvegarde des modèles

Chargement et sauvegarde de la configuration

Le panneau géométrie

Les autres panneaux

Références

 

 

Ce chapitre un peu particulier présente le logiciel Aérocalc permettant de déterminer les caractéristiques principales de nos aéromodèles. Ce logiciel bien qu’étant encore en phase alpha (développement) est presque totalement opérationnel. Il est fourni sous forme d’un script en code source d’environ 10000 lignes ; le but étant autant l’initiation à l’informatique que la fourniture d’un logiciel de prédétermination des aéromodèles. Le propos peut paraître hors sujet, mais l’informatique peut rendre de nombreux services au modéliste et en rendra de plus en plus. Être capable d’écrire des petits programmes simples est bien agréable pour résoudre les divers problèmes que le modéliste rencontre ça et là. Comme disait Lao Tseu (老子), "donne un poisson à un homme, tu le nourriras pour un jour, apprends lui à pêcher, tu le nourriras pour la vie".

 

 

Objectifs et fonctionnalités d’Aérocalc

 

Aérocalc permet de prévoir et calculer de nombreux paramètres des modèles en cours de conception ou déjà construits :

 

·         caractéristiques géométriques : forme et dimension des surfaces, aspect visuel,

·         caractéristiques aérodynamiques (domaine de vol, plage de vitesse, finesse, etc.),

·         dimensionnement et choix de la propulsion (moteur à explosion ou électrique),

·         détermination et étude approfondie de l’hélice,

·         calcul de la masse et optimisation du centrage,

·         comportement face à une perturbation,

·         estimation de l’autonomie,

·         étude fine de la technique de construction (matériaux, recouvrement,…),

·         étude des contraintes et déformations des ailes, optimisation des longerons et clefs d’aile,

·         détermination des réglages (dièdre et V longitudinal) et vérification de paramètres importants (répartition des masses, surfaces…).

 

Le panneau d’accueil (Géométrie) du  logiciel est présenté sur la figure 1.  Le logiciel est décomposé en six panneaux, chaque panneau étant activé par un onglet :

 

·         Géométrie : on entre dans ce panneau les cotes principales du modèle ou futur modèle, ce qui permet d’obtenir l’aspect par une esquisse en deux vues ainsi que les grandeurs géométriques (surfaces, etc.) utiles pour la suite.

·         Aérodynamique : ce panneau permet de visualiser l’incidence de vol, la finesse et les diverses traînées des aéromodèles. Il montre aussi le taux de chute des planeurs, courbe constituant leur caractéristique de performance.

·         Propulsion thermique : ce panneau sert à définir les caractéristiques du moteur à explosion le mieux adapté et visualiser ses courbes de couple et puissance. Il permet aussi de trouver l’hélice la mieux adaptée et dessiner ses caractéristiques ; soit en interne, soit avec le concours de JAVAPROP pour un résultat plus précis.

·         Propulsion électrique : panneau similaire au précédant pour la caractérisation d’un moteur électrique. L’existence de deux panneaux permet de comparer les résultats en fonction du type de motorisation.

·         Construction –stabilité - autonomie : le rôle de ce panneau est la détermination automatique en fonction de la technique de construction des masses, positions et inerties des divers éléments de l’aéromodèle étudié. Il permet aussi d’imposer tout ou partie des éléments pour ne rechercher que la masse globale, la position du centre de masses et les inerties. Accessoirement, ce panneau sert en association avec NURFUGEL à optimiser la position du centre de masse et l’autonomie (taille du réservoir ou de l’accumulateur de propulsion). Il permet également d’étudier et visualiser le comportement dynamique face à une perturbation : temps de réaction et degré d’amortissement.

·         Technique de construction - RDM : ce panneau permet une analyse fine de la technique de construction pour obtenir dans le cas d’une conception ab nihilo le résultat exactement recherché. Il permet aussi de parfaitement dimensionner les clefs d’ailes et longerons en établissant de façon graphique la répartition des contraintes dans les ailes et leur déformation.

·         Caractéristiques - réglages : ce dernier panneau permet d’extraire les informations des autres panneaux pour mettre en évidence les problèmes potentiels (par exemple hélice tournant trop vite, etc.) et de définir quelques réglages comme le dièdre et le V longitudinal optimal.

 

 

aerocalc.gif

Figure 1 : Panneau « Géométrie »  d’ Aérocalc

 

 

Installation et prise en main d’ Aérocalc

 

            L’installation d’Aérocalc implique d’abord d’installer Tcl/Tk (voir la méthode au paragraphe « Installation des outils »). Il faut ensuite télécharger  la version actuelle archivée du logiciel (voire au tout début de ce chapitre) qui contient tous les panneaux : Géométrie, Aérodynamique, Propulsion thermique, Propulsion électrique et Construction – stabilité - autonomie, la désarchiver dans un répertoire de son choix (par exemple C:\Aerocalc), et enfin lancer le script en double-cliquant sur aerocalc.tcl.

 

            On notera que l’utilisation du logiciel − en principe intuitive − est explicitée dans le menu déroulant « Aide » par un fichier nommé aide_aerocalc.htm fourni avec l’archive d’Aérocalc. Ce fichier est lisible directement par n’importe quel navigateur internet en dehors d’Aérocalc. Pour tous les détails d’exploitation des panneaux d’Aérocalc, c’est à dire du logiciel lui même, on se réfèrera donc à ce manuel, ouvert dans un navigateur ou la fenêtre d’aide d’Aérocalc.

 

On notera aussi que deux exemples : mini-milan.dat (un petit planeur de performance de Multiplex) et extana.dat (un petit avion d’acrobatie de Telink en EPP) sont fournis avec l’archive afin de permettre d’expérimenter avec des exemples concrets et ainsi faciliter la compréhension du fonctionnement du logiciel.

 

Aérocalc s’appuie sur la soufflerie numérique JAVAFOIL pour l’obtention de la polaire des ailes, sur la soufflerie numérique JAVAPROP pour l’obtention de la polaire des hélices, ainsi que sur le logiciel Nurflügel pour l’obtention de la portance réduite maximale et le foyer aérodynamique. Il sera donc utile d’également installer ces logiciels en se reportant aux chapitres correspondants et se familiariser avec eux.

 

N. B. : étant donné qu’Aérocalc est en cours d’élaboration, on va certainement rencontrer des bugs. Les rapports de bugs venant des lecteurs sont bien sûr les bienvenus. De plus, au stade actuel les entrées ne sont pas protégées, ce qui permet d’entrer des valeurs abherrantes ou d’en oublier, ce qui conduit inévitablement à des messages d’alarme ; il faut donc bien réfléchier avant d’entrer des valeurs.

 

 

Calcul d’un aéromodèle avec Aérocalc

 

Domaine d’utilisation

 

On peut distinguer trois cas d’utilisation d’Aérocalc

·         Aéromodèle en état de vol pour déterminer ses caractéristiques, et éventuellement découvrir des défauts de réglage ou des choix erronés (moteur, hélice, centrage…).

·         Aéromodèle ARF, pour le choix et le positionnement des éléments de radiocommande et de la propulsion (sauf pour les planeurs) ; ainsi que pour le réglage du centrage et du V longitudinal, comme pour le choix de l’hélice.

·         Aéromodèle conçu et construit soi-même. Dans ce dernier cas Aérocalc servira plusieurs fois  lors des étapes successives de la réalisation :

o   aide au dessin des plans :

§  aide au choix des matériaux et techniques de construction,

§  choix de la propulsion et des éléments de radiocommande,

§  choix du positionnement des éléments.

o   aide à la construction :

§  reconsidération des choix des matériaux et des dimensions,

§  remise en cause des positionnements des divers éléments de l’appareil,

o   aide à la mise au point :

§  remise en cause de la propulsion

§  affinage du positionnement des éléments et réglages finaux

 

 

Configuration générale d’Aérocalc

 

            Pour la majorité des utilisateurs, il n’y a rien à configurer dans Aérocalc, mais pour certains qui vivent à la montagne, il sera peut être utile de tenir compte de l’altitude et d’adapter la valeur de la densité de l’air donnée à 1,22 kg/m3 par défaut en fonction de l’altitude où évoluera l’aéromodèle. C’est utile à partir de 1000 m d’altitude car la densité de l’air est diminuée de 10 % à cette altitude (densité de l’air 1,1 kg/ m3), très utile à 2000 m (densité de l’air 1 kg/ m3) et absolument indispensable à 4000 m car la densité de l’air n’est plus que de 0,78 kg/m3 à cette altitude (voir chapitre « Aérologie »), ce qui modifie profondément le comportement des aéromodèles. L’altitude de 4000 m concerne quelques vélivoles en France, mais aussi quelques chanceux qui peuvent voler sur l’altiplano sud-américain ou un autre endroit à haute altitude.

 

 

Définition du type de modèle et ses caractéristiques principales

 

            Si on part sur une conception, il faut choisir le type d’aéromodèle qu’on désire réaliser ainsi que sa taille (voir chapitre « Types d’aéromodèles »). Il faut aussi choisir la charge alaire donnant la bonne plage de vitesse (voir chapitre « Domaine de vol des aéromodèles »), ce qui définit finalement le poids à retenir, donc la technique de construction à choisir.

 

Dans le domaine des charges alaires il y a plusieurs choses à savoir. D’une part :

·         la charge alaire obtenue est fonction du type de construction, mais pour un type de construction donné, la charge alaire tend à augmenter proportionnellement avec la taille car la surface alaire augmente avec le carré de la taille tandis que la  masse augmente avec le cube de la taille, ce qui implique que si un modèle de 1,2 m d’envergure à une charge alaire de 30 g/dm2, le modèle similaire de 2,4 m d’envergure construit en utilisant la même technique tendra vers une charge alaire de 60 g/dm2.

 

D’autre part :

·         la vitesse de vol réelle augmente avec la racine carrée de la charge alaire, tandis que la vitesse de vol apparente (perçue par nos yeux) diminue à l’inverse de la taille (voir chapitre « Domaine de vol des aéromodèles »). Ceci implique que le modèle de 2,4 m d’envergure qui vient d’être cité volera 1,4 fois plus vite que celui d’ 1,2 m d’envergure, mais aura l’air de voler 1,4 fois moins vite !

 

Enfin :

·         on est habitué en modélisme à raisonner en terme de charge alaire, ce qui est à la fois une bonne et une mauvaise chose. Bonne, car ça donne une référence ; mauvaise, parce qu’elle peut être trompeuse. Mais si on a comme référence un modèle de même type et taille que celui qu’on envisage, le mieux est de retenir la même charge alaire que cette référence. Par ailleurs, les catalogues de modélisme regorgent de modèles de tous types dont les charges alaires peuvent parfaitement servir de référence pour éviter de se tromper.

 

 

Les maquettes

 

Le plus simple est le cas de la maquette, car toutes les proportions sont définies à l’avance. On n’a plus alors qu’à choisir l’échelle. Si on veut être rigoureux il faut aussi choisir une charge alaire donnant une vitesse vol réaliste, mais c’est bien souvent impossible.

 

Par exemple : la maquette de P38 Lightning très belle de Roger Niéto de 3 m d’envergure à l’échelle 1/5,47 devrait avoir une charge alaire de 58 g/dm2 et donc peser 6 kg au lieu des 18 kg obtenus pour avoir une vitesse d’évolution correcte (voir chapitre « Domaine de vol des aéromodèles »). La masse de 6 kg est malheureusement impossible à tenir, ce qui impose d’accepter une vitesse apparente 1,7 fois trop forte. En effet, la construction en structure bois avec de nombreux coffrages balsa comme l’exige une maquette conduit invariablement à une charge alaire de l’ordre de 75 g/dm2 pour une maquette de 1,5 m d’envergure, et donc 150 g/dm2 pour une maquette deux fois plus grande.

 

 

Les planeurs

 

Le critère le plus important pour un planeur est le taux de chute car il définit la capacité à tenir dans les petites ascendances.

·         Pour un lancer main il faut viser un taux de chute minimum de l’ordre de 0,2 m/s afin de pouvoir monter dans les petites bulles près du sol, ce qui impose une charge alaire de l’ordre de 15 g/dm2 pour des planeurs d’environ 1,5 m d’envergure.

·         Pour un planeur de vol thermique plus classique, un taux de chute en dessous 0,4 m/s sera acceptable, ce qui conduit à des charges alaires de l’ordre de 20 g/dm2 pour les petits planeurs et 30 g/dm2 pour ceux d’environ 3,5 m d’envergure.

·         Dans le cas d’un planeur de vol de pente on pourra accepter un taux de chute encore plus élevé, tout étant fonction de la qualité de la pente. Mais dans certaines pentes qui donnent peu on est toutefois conduit à utiliser des planeurs prévus pour le vol thermique ! D’une façon générale, une charge alaire de 30 g/dm2 pour un petit planeur (1,5 m d’envergure) est classique alors qu’elle peut monter à 80 g/dm2 pour les planeurs de plus de 4 m d’envergure très fins avec des profils d’ailes à Czmax très élevé.

 

Il faut savoir que lorsqu’on augmente la taille d’un planeur, on tend en général à augmenter l’allongement des ailes pour augmenter la finesse, ce qui en corollaire permet de diminuer le taux de chute et ainsi conserver une valeur acceptable malgré l’augmentation inévitable de la charge alaire. Il ne faut donc pas s’étonner d’observer un allongement d’autant plus grand que l’envergure du planeur est grande.

 

La charge alaire obtenue est directement fonction de la taille du planeur (voir plus haut) et de la technique de construction retenue. Le fuselage en principe très petit et en fibre de verre intervient peu et c’est la technique de construction des ailes définit en fin de compte la charge alaire. Pour un planeur d’1,5 m d’envergure on peut retenir les valeurs moyennes suivantes :

·         structure balsa non coffré : 15 g/dm2

·         structure balsa coffré : 20 g/dm2

·         matériau expansé (EPP et variantes) : 20 g/dm2

·         matériau composite (fibre de verre, carbone ou Kevlar) : 25 g/dm2

·         sandwich polystyrène/balsa : 30 g/dm2

 

Pour améliorer la finesse, les planeurs utilisent en général un profil d’aile assez galbé améliorant Czmax et permettant donc de limiter la corde et la surface. Mais ce n’est par toujours le cas, car il y a quelques autres contraintes spécifiques à respecter en fonction de chaque utilisation :

·         lancer main : empennage en croix centré sur la tige de carbone servant de fuselage afin qu’il n’entraîne aucune action en roulis durant le lancer SAL.

·         acrobatie : profil d’aile peu galbé pour le vol inversé, allongement diminué pour augmenter le taux de roulis.

·         planeur de vitesse : profil d’aile mince ayant une faible traînée à faible Cz (grande vitesse), tringlerie avec caches de profilage.

 

 

Les moto-planeurs

 

Les moto-planeurs sont des planeurs auxquels on a ajouté un moteur. Ce qui les distingue des avions, c’est donc un fuselage très aérodynamique réduit au minimum, l’absence de train d’atterrissage et des ailes à fort allongement.

 

Les charges alaires des moto-planeurs dépendent de leur utilisation car on se retrouve avec la même contrainte de taux de chute qu’avec les planeurs purs. Typiquement, on se contente d’une motorisation légère, juste pour pouvoir décoller et se tirer de quelque « descendance »  imprévue. Avec une technique de construction donnée on obtient donc une charge alaire un peu supérieure à celle d’un planeur pur équivalent du fait de la masse de la motorisation.

 

Mais on trouve aussi des « hot liner », très fortement motorisés dont le comportement s’approche de celui d’un racer et dont la charge alaire assez forte est de l’ordre de 50 g/dm2. Les racers électriques sont bien souvent semblables aux « hot liners », mais avec une envergure plus faible, en général légèrement inférieure à 1 m.

 

 

Les modèles réduits d’avion

 

            Le paramètre principal pour les aéromodèles motorisés est la vitesse de référence (voir au chapitre « Domaine de vol des aéromodèles »). Plus elle sera faible, plus le modèle pourra voler dans un espace réduit et sera facile et contrôler, mais plus elle sera forte, mieux le modèle pourra encaisser les perturbations et le vent.

 

Ceci conduit à choisir une charge alaire − représentant approximativement la vitesse de référence − de l’ordre de 10 g/dm2 pour les modèles indoor d’environ 1 m d’envergure, 25 g/dm2 pour les park flyers d’environ 1,3 m d’envergure et 30 à 60 g/dm2 pour les autres modèles d’une envergure typique de 1,5 m en fonction de la technique de construction.

 

Bien entendu, en vertu de l’augmentation de la charge alaire proportionnelle à la taille, un modèle 3D de 3 m d’envergure construit léger aura une charge alaire d’environ 100 g/dm2, au lieu de 50 g/dm2 pour le même modèle d’1,5 m d’envergure.

 

Dans le cas des aéromodèles à moteur, la charge alaire obtenue est liée à la technique de construction comme dans le cas des planeurs, mais avec une corrélation plus faible que dans le cas des planeurs en raison des écarts entraînées par le fuselage, le train d’atterrissage et surtout la propulsion. On peut malgré tout prendre comme point de départ les valeurs suivantes pour un modèle d’1,5 m d’envergure :

·         structure balsa légère : 25 g/dm2

·         matériau expansé (EPP et variantes) : 30 g/dm2

·         structure bois/balsa classique : 40 g/dm2

·         structure bois/balsa, ailes fortement coffrées et fuselage en bois plein: 50 g/dm2

·         fuselage plastique, ailes sandwich polystyrène/balsa : 60 g/dm2

 

On obtient bien évidemment une charge alaire plus forte que dans le cas d’un planeur, mais on pourra « tricher » pour obtenir celle que l’on désire en augmentant ou en diminuant la corde des ailes. L’allongement des ailes tournant typiquement autour de 5,5 pourra donc varier considérablement.

 

Par exemple : dans le cas des modèles 3D utilisant une motorisation puissante et donc lourde, on est conduit à se contenter d’un allongement de 4 et à utiliser un profil d’aile symétrique très épais de l’ordre de 18 % à fort Czmax afin de maintenir une vitesse de référence faible.

 

Au demeurant, une grosse différence entre une maquette et une semi maquette est l’augmentation de la corde des ailes pour diminuer la charge alaire et obtenir ainsi une vitesse de vol plus adaptée aux contraintes du modélisme.

 

En plus de la charge alaire, il y a quelques contraintes à respecter pour obtenir un comportement adapté en fonction du type de modèle :

·         avion de début : profil d’aile plat à l’intrados pour faciliter la construction et obtenir un bon Czmax, ailes hautes avec dièdre pour améliorer la stabilité longitudinale et latérale, train tricycle pour faciliter les atterrissages et décollages, fuselage caisse pour faciliter la construction éventuelle et surtout les  réparations.

·         avion d’entraînement : comme un avion de début, mais utilisant un profil d’aile moins dissymétrique et adoptant des ailes perchées moins haut.

·         avion d’acrobatie : forte motorisation pour permettre des montées en forte pente, fuselage le plus long possible pour maximiser l’amortissement longitudinal, fuselage mince et haut pour faciliter le vol tranche, profil d’aile symétrique pour le vol inversé, dérive basse pour diminuer son action parasite en roulis, moteur, ailes et empennage sur le même axe pour éviter les perturbations en tangage, absence de dièdre.

·         avion 3D : comme un modèle d’acrobatie, mais motorisation suffisante pour pouvoir monter en chandelle, gouvernes agrandies et à fort débattement pour augmenter leur efficacité à faible vitesse, ailes à très faible allongement et forte épaisseur.

·         racer : profil d’aile mince optimisé pour les faibles Cz, fuselage le plus réduit possible et train caréné pour limiter sa traînée.

 

 

Définition de la motorisation et ses caractéristiques principales

 

            Un aéromodèle motorisé a besoin d’un moteur plus ou moins puissant, donc lourd, en fonction de son type. Plus la puissance retenue est élevée, plus la masse finale de l’aéromodèle sera élevé. Cet effet est d’autant plus sensible qu’on envisage une forte autonomie ; au moins dans le cas de l’utilisation d’une propulsion électrique, à cause de la masse considérable des accumulateurs de propulsion.

 

            Ce dernier fait conduit, au demeurant, à accepter des autonomies très faibles pour les aéromodèles fortement motorisés (acrobatie et racers) en propulsion électrique ; de l’ordre de 5 mn, alors qu’on visera souvent plutôt 10 mn à 15 mn dans les mêmes conditions avec une propulsion thermique.

 

            Comme le besoin de puissance est directement lié au taux de montée désiré qui varie de très faible (pente de montée de l’ordre de 10 %) à très fort (montée en chandelle à l’infini) et à la plage de vitesse, on est conduit en général aux choix suivants en fonction du type d’aéromodèle :

 

·         Avion indoor : taux de montée maximal (équivalent 3D) pour pouvoir faire du vol stationnaire pendu à l’hélice, mais plage de vitesse faible de l’ordre de deux en raison de l’espace limité disponible  pour le vol. Autonomie limitée à 5 mn afin de limiter de trop pénaliser la charge alaire.

·         Maquette : tout dépend de la maquette. Dans le cas d’une maquette d’avion de tourisme ou de transport (définition maquette d’Aérocalc) le taux de monté restera très faible, la plage de vitesse se limitera à deux ou guère plus afin de rester réaliste.

·         Avion de début : le taux de montée sera choisi faible comme la plage de vitesse (de l’ordre de deux), afin de limiter l’effet des ordres maladroits de gaz. L’autonomie sera aussi choisie délibérément faible car un débutant se fatigue vite et il est inutile d’augmenter la fragilité du modèle et sa charge alaire à cause d’un accumulateur surdimensionné.

·         Avion d’entraînement : cette fois il faut un taux de montée au moins moyen pour que le modèle soit suffisamment manœuvrant. La plage de vitesse pourra atteindre trois et on visera une autonomie de 10 mn en vol électrique et plus avec une  propulsion thermique afin d’augmenter de temps d’entraînement.

·         Avion d’acrobatie : un avion d’acrobatie style F3A devra pouvoir monter presque à la verticale sans ralentir, avoir une plage de vitesse moyenne (de l’ordre de 2,5 à 3). Pour limiter le handicap du à la masse de l’accumulateur on se contentera d’une autonomie de 7 mn avec une propulsion électrique.

·         Avion 3D : dans ce cas, la traction de l’hélice à vitesse nulle doit dépasser nettement la masse de l’avion. Comme on ne peut pas trop surdimensionner le moteur on se contentera d’une plage de vitesse de deux et on limitera l’autonomie. La valeur de 5 mn peut en général être considérée comme suffisante.

·         Motoplaneur : un motoplaneur devant rester avant tout un planeur, on se contentera donc d’un taux de montée faible, d’une plage de vitesse de deux et d’une autonomie de 5 mn pour ne pas trop augmenter la charge alaire qui dénaturerait le modèle.

·         Racer : un racer n’a besoin que d’un très faible taux de montée. Par contre, la plage de vitesse devra être maximale, au moins quatre. En fait, c’est le taux de motorisation accepté qui définira la vitesse maximale. L’autonomie devra être strictement celle des courses auxquelles on se prépare. Il faudra toutefois faire attention à ne pas trop augmenter la plage de vitesse, c'est-à-dire trop diminuer la vitesse minimale, donc la charge alaire, car lorsque la plage de vitesse augmente, l’accélération radiale maximale augmente. Avec une plage de vitesse de quatre, les ailes peuvent déjà être soumises à 16 G, ce qui impose de bien calculer leur résistance mécanique.

 

 

Le panneau géométrie

 

            La première étape d’une étude consiste à compléter le panneau « Géométrie » pour définir l’aspect visuel de l’aéromodèle. Les détails pratiques concernant l’entrée des valeurs sont explicités dans l’aide en ligne (consultable aussi hors ligne). Il ne sera pas toujours possible de restituer la forme exacte de la géométrie du fait des limitations du panneau, mais on pourra en général se contenter d’une forme approximative comme à la figure 2 pour restituer les caractéristiques du modèle.

 

aero-milan.gif

Figure 2 : géométrie simplifiée du Mini-Milan de Multiplex

 

Si on veut étudier un modèle existant, il n’y a qu’à reporter les mesures selon les trois directions de l’espace ainsi que la masse. Si on ne connaît pas la masse il faut malgré tout donner une valeur estimée car sinon il est impossible de faire les calculs aérodynamiques.

 

Si on veut concevoir un modèle ab nihilo, il suffit de choisir forme, dimension et proportions selon son inspiration car dans l’absolu presque n’importe forme peut voler du moment qu’on y met un moteur devant de puissance suffisante et qu’on place le centre de masse au bon endroit. Donc, à moins de vouloir obtenir des caractéristiques de vol bien précises (racer ou avion d’acrobatie) le choix de la forme est avant tout une affaire de goût et la taille une affaire de coût. Si on cherche la forme idéale, on gagnera à consulter les sites internet marchands car ils sont une source inépuisable d’inspiration.

 

Une fois les choix proposés par les boutons radios faits (en premier) et les cotes entrées, on doit obtenir un aspect visuel normal de l’aéromodèle dans la zone graphique, et surtout l’ensemble des informations ci-après (voir figures 3 et 4). Dans le cas d’un modèle sans train, l’information de la section du train sera absente, et dans le cas d’un modèle à empennage en V l’information de la surface de la dérive sera aussi absente (voir figure 4a). Mais dans tous les cas les deux dernières lignes d’information : charge alaire et corde moyenne des ailes devront être présentes, car sans elles il n’est pas possible de réaliser les calculs aérodynamiques. Si l’une ou les deux informations manquent, c’est que le champ masse n’a pas été rempli ou qu’une cote est absente ou aberrante.

 

ext-info.gif    mini-info.gif

Figure 3 : infos Extana   Figure 4 : infos Mini-Milan

 

 

Le panneau aérodynamique

 

            Le panneau «Aérodynamique » donne les courbes des caractéristiques aérodynamiques de l’aéromodèle dont on a préalablement rentré les caractéristiques géométriques dans le panneau « Géométrie »  à condition d’y ajouter :

·         une polaire d’aile

·         un coefficient de section de fuselage

·         un coefficient de propreté du fuselage

·         un Cx (coefficient de traînée) du train d’atterrissage

·         le Czmax des ailes

 

 

Polaire d’aile

 

La polaire d’aile doit être fournie par le logiciel JAVAFOIL en utilisant son onglet « Avion », ou plus exactement « Aircraft » (voir chapitre « Javafoil »), car il vaut mieux utiliser le logiciel en langue anglaise (voir la raison plus bas).

 

N. B. : JAVAFOIL possède maintenant une archive d’installation automatique javafoilinstaller.msi récupérable à l’adresse http://www.mh-aerotools.de/airfoils/jf_applet.htm tout en bas de la page.

 

La figure 4a montre la polaire du profil S4083 pour planeur de vol thermique. Comme on peut le remarquer il a un très fort Czmax. Par contre à faible Cz son comportement est mauvais, les grandes vitesses ne sont donc pas faites pour ce profil. Le panneau « Avion » de Javafoil permet d’obtenir les polaires à nombre de Reynolds variable dont Aérocalc à besoin. Mais pour que Javafoil (voir figure 5) fournisse une polaire adéquate il faut prendre plusieurs précautions (voir figure 5) :

·         utiliser JavaFoil en langue US (au moins pour la sauvegarde de la polaire), car en langue française comme dans la majorité des langues le séparateur décimal est la virgule alors qu’Aéerocalc écrit en Tcl d’origine américaine exige le point comme séparateur décimal. Toute polaire fournie avec des virgules au lieu de points ne pourra donc pas être interprétée par Aérocalc.

·         Générer la polaire pour la charge alaire et la corde moyenne du modèle étudié (valeurs fournies par le panneau « Géométrie » d’Aérocalc).

·         Commencer la polaire à partir d’un Cz légèrement positif comme sur la figure 4a en ajustant l’incidence de départ (first angle of attack). En effet, le Czmin de la polaire détermine la vitesse maximale utilisée pour les courbes qui vont être dessinées. Cette valeur doit donc être parfaitement choisie pour obtenir les courbes sur la plage de vitesse désirée. Un Czmin un peu inférieur à 0,1 donne en général un résultat satisfaisant. Si on commence avec un Cz nul (donc vitesse infinie) ou négatif, la polaire ne sera pas dessiné.

·         Utiliser un pas angulaire de 0,5°. On peut prendre d’autres valeurs, mais le pas par défaut de 1° de JavaFoil donne une courbe grossière et un pas nettement plus fin que 0,5° donne trop de points.

·         Sauvegarder le fichier pour Aérocalc avec un nom ayant une extension .jfpol, car une autre extension risque de poser des problèmes (changement de format de sauvegarde ou masquage dans la fenêtre de choix d’Aérocalc à cause des filtres de fichier). N. B. : pour sauvegarder une polaire sous JavaFoil, il suffit de cliquer sur le bouton « Save… ».

·         Bien faire attention que la charge alaire dans Javafoil s’exprime en kg/m2 comme en aviation grandeur, valeur dix fois plus faible qu’en g/dm2. La corde doit également être convertie de décimètres en mètres par une division par dix.

 

polaire.gif

Figure 5 : polaire du profil S4083 pour planeur de vol thermique

 

 

Coefficient de section de fuselage

 

            Ce coefficient est déterminé automatiquement dans le panneau « Géométrie » par les boutons radio « oval », « oval dessus » et « rectangulaire ». Mais il peut être affiné si on le désire dans le panneau « Aérodynamique ». Il s’agit du rapport entre le périmètre du fuselage du modèle considéré divisé par le périmètre d’un fuselage rectangulaire de même hauteur et largeur. Lorsque le fuselage est oval dessus, mais avec une très faible ou très forte partie ovalisée, la valeur donnée par Aérocalc n’est pas tout à fait exacte. Aérocalc n’est pas non plus capable de trouver automatiquement ce coefficient pour un fuselage en losange ; technique utilisée sur de nombreux planeurs de vol libre d’avant le second conflit mondial, car cette solution donne la valeur très faible de 0,7 pour un fuselage carré tourné à 45°, ce qui diminue la traînée du fuselage.

 

 

Coefficient de propreté du fuselage

 

            Il s’agit d’un coefficient qui définit la turbulence de la couche limite du fuselage en fonction de son état de surface. On retrouve ce coefficient pour la polaire sous JavaFoil dans l’« entry » Surface finish. Pour un fuselage en composite parfaitement fini et lisse sans parties dépassantes (vis, interrupteur, tringlerie, chapes…) la valeur est de 1. Si l’état de surface est rugueux (EPP et variantes) on peut prendre 2, mais la valeur atteint 3 si en plus du mauvais état de surface de nombreux éléments comme des vis, interrupteurs, tringlerie et chapes dépassent.

 

 

Cx (coefficient de traînée) du train d’atterrissage

 

            Le calcul de la traînée du train d’atterrissage se fait en fonction de la section droite (perpendiculaire à la direction d’avancement) du train. La valeur typique de ce Cx est de 0,6 pour un train non caréné porté par une corde à piano de 3 mm de diamètre. Ce coefficient descend à 0,1 si les roues comme les jambes de train sont parfaitement carénées, mais monte à 1 dans le cas de jambes de train maquette avec de nombreuses protubérances.

 

 

Czmax des ailes

 

            Le Czmax des ailes est inférieur au Czmax du profil utilisé sauf dans le cas d’ailes elliptiques ou avec un vrillage parfaitement étudié. Pour trouver l’écart entre les deux (qui peut modifier significativement la vitesse minimale d’un aéromodèle) on a recours au logiciel Nurflügel (voir chapitre « Nurflügel »). Il faut donc fournir le dessin des ailes à Nurflügel sous forme de cotes numériques. La méthode de définition est différente de celle d’Aérocalc car les exigences ne sont pas les mêmes. Globalement, Nurflügel permet une définition plus précise des ailes, ce qui est indispensable pour pouvoir calculer correctement le foyer, mais n’est pas capable de prendre en compte les arrondis. La figure 6 montre la définition des ailes du Mini-Milan. La figure 7 montre un dessin plus conforme à l’apparence réelle que celui d’Aérocalc. Mais l’utilisation n’est pas la même, puisqu Aérocalc ne recherche que la surface et la corde moyenne, tandis que Nurflügel calcule la répartition de la portance et le foyer aérodynamique différent du foyer géométrique.

 

nurflugel-data.gif

Figure 6 : Nurflügel, entrée des paramètres

 

nurflugel-dessin.gif

Figure 7 : Nurflügel, dessin des ailes du Mini-Milan

 

 

            Pour trouver le Czmax des ailes, il suffit d’augmenter graduellement cette valeur dans l’onglet de définition des ailes (voir figure 5a) jusqu’à ce que le Cz local le plus élevé tangente le Czmax du profil (voir figure 8). Sur la partie droite de la figure 7a on observe un fort dépassement, mais il n’existe pas dans la réalité. C’est simplement un artéfact provenant du fait qu’on n’a pas pu introduire l’arrondi au saumon des ailes dans Nurflügel. La valeur du Czmax des ailes est ici de 1,17 pour un Czmax du profil de 1,23, soit une perte d’efficacité de 5% par rapport à une aile  parfaitement elliptique.

 

rep-Cz.gif

Figure 8 : Nurflügel, évolution de Cz le long de l’aile du Mini-Milan

 

 

            Nurflügel fournit aussi d’autres informations qui ne sont pas utilisées ici, hormis la position du foyer aérodynamique qui servira ultérieurement au calcul du centrage. On pourra remarquer en particulier que la surface des ailes trouvée par Nurflügel est un peu supérieure à celle trouvée par Aérocalc, ce qui est tout à fait normal car Aérocalc déduit la surface occupée par le fuselage, ce qui n’est pas le cas de Nurflügel qui suppose a priori qu’on étudie une aile volante.

 

aero-aero.gif

Figure 9 : taux de chute d’un planeur par Aérocalc

 

ext-trainee.gif

Figure 10 : courbe de traînées de l’Extana

 

 

Une fois tous les paramètres introduits, il suffit de demander les courbes désirées par un clic sur l’un des quatre boutons de dessin aux choix :

·         courbes de traînées

·         courbe d’incidence qui sera utile pour la détermination du V longitudinal

·         courbe de finesse, reflet de la qualité globale de l’aérodynamique

·         courbe de taux de chute, mesure de performance d’un planeur (voir figure 9)

 

On peut remarquer que le Mini-Milan a été affublé à la figure 8a (pour l’expérimentation uniquement) d’un profil pour planeur de vol thermique alors que c’est un planeur de vol de pente et d’une charge alaire de lancer main. Le résultat est correct sans être optimal.

 

On peut observer sur la partie gauche de la figure 10 concernant l’EXTANA que la traînée induite n’est significative qu’à faible vitesse, et sur la partie droite qu’à haute vitesse la traînée des ailes est prépondérante, mais que celle du train d’atterrissage et de l’empennage sont loin d’être négligeables. Une nette amélioration pourrait donc être obtenue en carénant le train. Par contre, il n’y a pas grand-chose à faire pour diminuer la traînée du fuselage, car un fuselage haut et important est indispensable à un avion d’acrobatie pour une tenue correcte du vol tranche.

 

 

Le panneau propulsion thermique

 

Le panneau Propulsion thermique sert à choisir le moteur et l’hélice dans le cas d’une propulsion par moteur à explosion. La figure 11 montre l'écran du panneau Propulsion thermique.

Prop_therm.gif

Figure 11 : panneau « propulsion thermique »

 

Définition du taux de montée et de la plage de vitesse

 

Le taux de montée comme la plage de vitesse devront être définis en fonction des critères du paragraphe Définition de la motorisation et ses caractéristiques principales.

 

Définition du moteur

 

Une fois la puissance nécessaire connue, il faut choisir un moteur dont la puissance est la plus proche possible de celle indiquée par Aérocalc. Le type retenu sera une question de goût, de budget, etc.. Il sort du cadre de ce chapitre.

 

Calcul de l'hélice

 

Une fois le moteur connu, sa vitesse de rotation l’est aussi, ce qui permet d’obtenir le diamètre et le pas optimal de l’hélice. Toutefois le calcul fait par Aérocalc est une estimation. Mais lorsque le dessin des courbes du moteur et de l’hélice sont obtenues, il est possible de demander le dessin de la courbe du domaine de vol en fonction de l’hélice choisie, ce qui permet de lire la vitesse du modèle en fonction de l’angle de montée et donc de connaître la plage de vitesse et le taux de montée dans toutes les conditions (fonction non implémentée dans la version 0.69 d’Aérocalc).

 

Toutefois, à pas et diamètre donné, toutes les hélices ne sont pas équivalentes. Pour obtenir des résultats plus précis, il est possible de charger et utiliser des polaires d’hélices établies par JAVAPROP. Il suffit de précéder comme avec JAVAFOIL. Le programme peut être téléchargé à l’adresse http://www.mh-aerotools.de/airfoils/jp_applet.htm

 

N. B. : JAVAPROP possède maintenant une archive d’installation automatique javapropinstaller.msi comme JAVAFOIL tout en bas de la page de l’applet. Mais il est encore ici plus important d’utiliser une version récente que pour JAVAFOIL, car les versions antérieures à la 1.5 génèrent des polaires d’hélice incompatibles avec Aérocalc. Pour obtenir une polaire avec JAVAPROP, il faut après avoir fait calculer ou introduit une forme d’hélice sélectionner le panneau « Multi analysis » et cliquer successivement sur les boutons « Analyse ! », « Copy text » et « Save… ». Comme avec JAVAFOIL, il faut générer les fichiers à partir d’une exécution du programme en langue anglaise et non française, car en langue française comme dans la majorité des langues, le séparateur décimal est la virgule alors qu’Aéerocalc écrit en Tcl d’origine américaine exige le point comme séparateur décimal. Toute polaire fournie avec des virgules au lieu de points ne pourra donc pas être interprétée par Aérocalc.

 

 

Le panneau propulsion électrique

 

Le panneau Propulsion électrique propose les mêmes services que le panneau Propulsion thermique. La présence de deux panneaux permet de traiter les deux cas simultanément et donc de comparer les deux types de propulsion. Lorsqu’on clique sur un bouton radio de type de moteur thermique on désactive automatiquement le moteur électrique, et a contrario lorsqu’on clique sur un bouton radio de moteur électrique on désactive le moteur thermique. Toutefois, aucun moteur ne sera pris en compte si on n’a pas pris soin d’activer l’option « Présence d’hélice » dans le panneau Géométrie.

 

La figure 12 montre l'écran du panneau Propulsion électrique.

 

Prop_elec.gif

Figure 12 : panneau « propulsion électrique »

 

Définition du taux de montée et de la plage de vitesse

 

Le taux de montée comme la plage de vitesse devront être définis en fonction des critères du paragraphe Définition de la motorisation et ses caractéristiques principales. Le cadre correspondant du panneau « Propulsion électrique » est un dédoublement de celui du panneau « Propulsion thermique ». Il n’est pas possible d’avoir des valeurs différentes dans les deux panneaux.

 

Définition du moteur

 

Une fois le courant maximal nécessaire connu, il faut choisir un moteur dont le courant maximal est le plus proche possible de celui indiqué par Aérocalc. On notera bien toutefois que comme précisé dans le chapitre « Propulsion » qu’un moteur électrique fournit d’autant plus de puissance qu’il est alimenté sous tension élevée, et qu’il est donc toujours dommage d’alimenter un moteur sous une tension inférieure à la tension maximale qu’il peut accepter, car on aura alors un moteur plus lourd avec un rendement moins bon.

 

Calcul de l'hélice

 

            Le calcul de l’hélice se passe comme dans le panneau « Propulsion thermique ». On notera toutefois que les deux panneaux sont indépendants, ce qui permet d’étudier une hélice dont les caractéristiques n’ont rien avoir avec celles des besoins du modèle ; donc de faire une étude dans un cadre indépendant de celui du modèle chargé dans le logiciel.

 

 

Le panneau construction – stabilité - autonomie

 

Ce panneau permet d'obtenir de façon automatique, semi-automatique ou manuelle les masses et positions dans l'espace de tous les éléments de l'aéromodèle étudié.

A partir de ces valeurs et du foyer aérodynamique fourni par Nurflügel il permet aussi d'optimiser le centrage et le placement des éléments internes.

Enfin, une fois la taille du réservoir ou de l'accumulateur de propulsion fournis, la propulsion déterminée et toutes les masses calculées, il permet aussi de déterminer l'autonomie de l'aéromodèle étudié. A contrario, si on lui fournit l'autonomie désirée, il peut en déduire la taille du réservoir ou de l'accumulateur de propulsion à retenir.

Il permet accessoirement de visualiser le comportement dynamique du modèle en présence d'une perturbation.

La figure 13 montre l'écran du panneau
Construction - stabilité – autonomie.

 

Construction.gif

Figure 13 : panneau « Construction – stabilité – autonomie »

 

Définition de la technique de construction

 

            Pour pouvoir respecter la charge alaire qu’on s’est imposé, il faut impérativement respecter la masse prévue pour les ailes, le fuselage et l’empennage ; ce qui impose de parfaitement choisir la masse spécifique (poids en gramme par décimètre carré de surface) de chaque élément de la cellule et donc sa technique de construction. Aérocalc connaît les masses spécifiques en fonction des techniques de construction ; mais ces valeurs sont assez approximatives.

 

Par exemple : des ailes construites en expansé (typiquement de polystyrène) coffré (typiquement avec du balsa ou du samba) vont avoir une masse spécifique variant de 10 g/dm2 à plus de 20 g/dm2. La variation étant bien sur liée aux différentes densités de polystyrène expansé et de bois, mais aussi fonction de l’allongement des ailes car l’augmentation de l’allongement diminue l’épaisseur du matériau expansé, mais aussi à la surface des ailes car l’augmentation de surface fait augmenter l’épaisseur du matériau expansé comme du coffrage. De plus, le matériau de recouvrement représente une masse spécifique variant de 0,8 g/dm2  (Oralight translucide) à plus de 2,3 g/dm2 (Oratex argenté). C’est le panneau Technique de construction – RDM qui permet de déterminer toutes les masses spécifiques avec une bonne précision en tenant compte des détails de conception.

 

Le chapitre Utilisation du panneau "Construction - stabilité - autonomie" du manuel en ligne traite de façon détaillée de l’utilisation du cadre Type de construction et de l’utilisation du tableau central des masses et position des éléments de l’aéromodèle.

 

 

Réalisation du centrage

 

            Le centrage est un point délicat. Sur un modèle déjà construit on est en général contraint à ajouter du plomb à l’avant ou à l’arrière, et pour limiter sa quantité on essaie de placer aux mieux les éléments internes déplaçables, à savoir les servos, le récepteur et le ou les accumulateurs.

 

            Sur un modèle qu’on conçoit on cherchera en général à éviter le plomb, poids mort qui diminue l’autonomie, fragilise la cellule et diminue les performances générales, sauf cas particulier (planeur). D’une façon générale on cherchera bien souvent aussi à diminuer l’inertie longitudinale du modèle pour augmenter sa réactivité.

 

Dans ce contexte, la queue du modèle, c’est-à-dire l’arrière du fuselage additionné à l’empennage est l’élément critique qui définit l’inertie du modèle qui sera typiquement le double de celle de la queue, car l’avant du modèle sert à équilibrer la queue. Ceci signifie que pour avoir un modèle réactif il faudra réaliser un fuselage arrière et un empennage très léger, et éviter de déporter les servos d’empennage à l’arrière. Comme dans ce cas c’est le moteur et ses accessoires (hélice, support, contrôleur, servo de gaz, réservoir, accumulateur de propulsion) qui sert de contrepoids, on sera amené à choisir une longueur de nez juste suffisante pour que le centre de masse se place naturellement au bon endroit.

 

Le chapitre Utilisation du panneau "Construction - stabilité - autonomie" du manuel en ligne traite de façon détaillée de l’utilisation du cadre Eléments de stabilité.

 

Calcul de l'autonomie

 

Le chapitre Utilisation du panneau "Construction - stabilité - autonomie" du manuel en ligne traite de façon détaillée de l’utilisation du cadre Autonomie.

 

Attention :

 

 lorsqu’on change la masse d’un élément, lorsqu’on augmente l’autonomie désirée, etc., la masse totale du modèle change, ce qui impose en général  une augmentation de la taille de l’accumulateur de propulsion ou du réservoir de carburant et impose éventuellement le renforcement de la cellule ; ce qui augmente à nouveau la masse totale. On a donc un effet « boule de neige » qui ne pourrait être résolu que par un calcul récursif. Toutefois, cette option a été rejetée dans Aérocalc, car il appartient au concepteur de décider ce qui doit être modifié ou non lorsque la masse change.

 

Pour cette raison, la masse prise en compte pour les calculs aérodynamiques et de puissance n’est pas la somme des masses du tableau de masse, mais la masse entrée manuellement dans la ligne d’état en bas au centre de l’écran du logiciel. Il appartient donc à l’utilisateur de modifier cette valeur pour la maintenir en cohérence avec le total affiché dans le tableau de masse.

 

Lorsqu’on change quelque chose (par exemple l’autonomie), il faut recommencer le calcul plusieurs fois en actualisant à chaque itération la masse totale de la ligne d’état jusqu’à ce que le total du tableau des masses ne change plus de façon significative. Ce résultat est obtenu en général après quatre itérations manuelles ou moins, donc très rapidement.

 

Etude de la stabilité dynamique

 

            Lorsqu’on clique sur un des boutons « Lacet », « Roulis » ou « Tangage » du cadre « Eléments de stabilité » on obtient le comportement dynamique après une perturbation de chacun de ces axes. Le logiciel tient compte de l’effet du fuselage et des ailes comme de la position verticale du centre de masse par rapport au point équivalant de portance des ailes. Par contre, il ne tient pas compte de l’interaction entre ces axes.

 

            On peut noter sur la figure du panneau que l’amortissement et souvent plutôt faible sur les axes de tangage et lacet alors qu’il est par contre très élevé selon l’axe de roulis. Si le centre de portance des ailes est très bas (ailes basses) un ou deux axes peuvent devenir instables, ce qui est affiché sur la courbe correspondante. Sur l’axe de roulis ce n’est pas très important du fait de l’amortissement.

           

            Pour augmenter l’amortissement il faut augmenter la longueur de la queue (voir chapitre « Contrôlabilité et stabilité »). Augmenter la surface de l’empennage horizontal et de la dérive aide aussi, mais est moins efficace. On peut également améliorer l’amortissement en diminuant les inerties, ce qui s’obtient en recentrant autant que possible tous les éléments vers les centre de masse.

 

N. B. : comme les perturbations sont étudiées à la vitesse maximale définie par la plage de vitesse donnée dans un des panneaux de propulsion, il faut modifier ce paramètre pour voir l’évolution du comportement de l’aéromodèle en fonction de la vitesse.

 

 

Le panneau technique de construction – RDM

 

         Ce panneau figure 14 sert à réaliser une prédétermination fine des divers éléments de la cellule d’un aéromodèle en cours de conception après la première approche réalisée avec le panneau « Construction – stabilité – autonomie ». Grâce à ce panneau, il est possible d’estimer les masses en tenant compte de la densité des divers matériaux simplement en fournissant le nombre d’éléments (couples, nervures), les sections des profilés (bords d’attaque, de fuite, etc.), les épaisseurs des divers panneaux (coffrage d’aile, de fuselage, etc.) ; le logiciel faisant alors les calculs en utilisant les données de surface et de longueur extraites du panneau « Géométrie ».

 

N. B. : il est recommandé de commencer par le cadre finition qui sert à déterminer la masse de la peinture, de l’entoilage et du marouflage éventuel. Cela permet de s’apercevoir en général que cette étape de finition alourdit considérablement le modèle. Après avoir pris connaissance de la masse induite, on sera peut être amené à revoir la technique de finition ou décoration.

 

tech_construction.gif

Figure 14 : panneau « Technique de construction – RDM »

 

 

Le panneau permet aussi de visualiser les contraintes dans les longerons et la flexion correspondante des ailes en cliquant sur le bouton « Dessine contrainte et flexion » à condition d’avoir rempli les champs du cadre « Longerons ». Si l’aile n’est pas construite à partir d’une structure comportant deux longerons, on pourra malgré tout obtenir la flexion des ailes en entrant dans le champ « section, densité longeron » du cadre « Ailes » une section générant la même inertie quadratique que celle de l’aile réelle.

 

            Le panneau permet aussi de calculer les clefs d’ailes rectangulaires pleines et circulaires. Des informations plus précises sont données dans l’aide en ligne d’Aérocalc.

 

 

Le panneau caractéristiques - réglages

 

Le rôle du panneau « Caractéristiques – réglages » (figure 15) est d’extraire des données des autres panneaux et mettre en évidence les grandeurs principales qui caractérisent l’aéromodèle en cours de conception. Les calculs sont effectués lorsqu’on ouvre le panneau.

 

Le panneau informe de la répartition des masses afin de vérifier qu’il n’y a pas eu de déséquilibre introduit par quelque choix malheureux. Il permet aussi de vérifier que la surface de l’empennage horizontal et de la dérive sont suffisants ainsi que de contrôler le choix d’un bras de levier adéquat pour l’empennage.

 

 

caracteristiques.gif

Figure 15 : panneau « Caractéristiques - réglages »

 

 

Accessoirement, le panneau permet de vérifier :

·         l’allongement des ailes et de l’empennage,

·         le dièdre des ailes,

·         l’incidence des ailes et de l’empennage,

·         le choix du V longitudinal,

·         le nombre de Mach maximal en bout de pale de l’hélice,

·         le taux de décharge maximal de l’accumulateur de propulsion.

 

 

N. B. : le calcul du nombre de Mach n’est exact que si la vitesse du son introduite à l’extrême droite de la ligne d’état est correct. La valeur fournie par défaut est correcte, mais elle doit être modifiée dans le cas de vol en montagne, par froid ou chaleur extrême (voir chapitre « Aérologie »).

 

Le mode d’emploi détaillé du panneau est précisé dans l’aide en ligne d’Aérocalc.

 

 

Les outils de création d’ Aérocalc

 

            Programmer est une activité beaucoup plus laborieuse que ne l’imagine le commun des mortels. Trop pour la majorité d’entre eux. Heureusement, il existe quelques langages hors normes dits de  « prototypage rapide » qui permettent de diviser par environ un ordre de grandeur (10) aussi bien la quantité de lignes de code à écrire que de notions techniques à acquérir. Ces outils sont parfaitement efficaces pour les petites applications qui nous concernent. Cerise sur le gâteau, on trouve ces outils logiciels dans le monde de l’informatique libre et en plus multi plateformes ; ce qui signifie qu’ils permettent de créer des applications fonctionnant aussi bien sous Windows, qu’Unix, Linux ou Macintosh (moyennant quelques adaptations).

 

            Aérocalc utilise ces outils dans le but d’inciter le modéliste ordinaire à regarder à l’intérieur du logiciel. Ceci lui permettra avec un peu d’effort à acquérir les bases de la technique de programmation. Il pourra ainsi modifier Aérocalc à sa guise, créer ses propres utilitaires pour ses besoins modélistes, voire écrire un logiciel de comptabilité pour gérer ses dépenses de loisir…

 

 

AeroCalc utilise trois outils :

 

·         Visual-Tcl : générateur d’interface graphique interactif qui permet de générer automatiquement la partie « aspect visuel » d’un programme. Il génère du code Tcl/Tk qu’il suffit de compléter pour obtenir une application opérationnelle.

·         Tcl, le langage que nous utiliserons pour définir les parties « non visuelles » de notre programme avec sa librairie graphique Tk utilisée par Visual-Tcl. Ce langage très dense est extrêmement simple (de façon relative aux autres…). C’est le cœur du dispositif de programmation.

·         FreeWrap, intégrateur, c’est-à-dire outil de regroupement de tous les fichiers composant l’application. Grâce à lui, l’application tiendra en un seul fichier de programme, un fichier de documentation, un fichier de configuration et autant de fichiers de données qu’on a de modèle au lieu d’une pléthore de fichiers répartis dans de nombreux répertoires. Ainsi, FreeWrap facilitera considérablement la diffusion de l’application.

 

 

            Tous ces outils sont sous licence LGPL, c'est-à-dire « Light GPL ». Cela signifie que vous pouvez récupérer et utiliser librement ces outils, écrire et distribuer librement le code que vous avez créé avec, moyennant quelques restrictions insignifiantes [1].

 

 

Installation des outils

 

            Le premier outil à installer est Tcl/Tk. Il est fourni par ActiveState [2]. Il faut charger une version gratuite 8.4.19.x  (les versions 8.5 et 8.6 ont des librairies graphiques non compatibles avec Visual-Tcl). Les versions professionnelles payantes sont inutiles. Si vous vous perdez dans les méandres du site vous pouvez toujours charger une version 8.4.19 ici (le fichier fait environ 25 Mo). Une fois le fichier chargé à n’importe quel endroit (vous pourrez l’effacer à la fin de l’installation si vous voulez), il suffit de double-cliquer dessus et de se laisser guider par les fenêtres en prenant les options par défaut, sauf pour la fenêtre de la figure 1 ci-après. Dans cette fenêtre, le mieux est de s’en tenir aux options proposées. Si on n’est pas administrateur de sa machine, on devra toutefois utiliser le mode d’installation « simple utilisateur ». Le répertoire proposé : Tcl juste sous la racine du disque système est le choix le plus courant et posant le moins de problèmes potentiels (surtout avec Windows Vista et Windows7). Mais en cas de besoin, on pourra être amené à choisir un autre répertoire, voire un autre disque (une clef USB par exemple qui évite toute intervention sur la machine courante). Il faut toutefois savoir que si vous faites un autre choix que celui de la figure 16, il faudra parfois adapter les exemples donnés.

 

tcl.gif

Figure 16 : configuration de Tcl/Tk

 

 

Dans le répertoire principal de Tcl on trouvera plusieurs sous-répertoires importants :

·         bin -> contient les exécutables. Wish.exe étant le point d’entrée de l’interpréteur de Tcl.

·         doc -> contient un didacticiel et la documentation complète de référence AcitveTclHelp8.4.chm au format html comprimé (internet).

·         demo -> contient un certain nombre de démonstrations.

·         licences -> contient les termes exacts de la licence gratuite en anglais.

 

 

            Il faut encore installer Visual-Tcl [3], FreeWrap [4], un didacticiel (comme celui d’Anne Possoz de l’EPFL [5]) et définir un répertoire de travail. Tous ces éléments sont facilement récupérables sur internet, mais pour accélérer l’opération, comme pour obtenir une installation standard immédiatement opérationnelle, l’ensemble comprimé placé dans le fichier vtcl.zip lisible directement par Windows est téléchargeable en cliquant sur son nom. En double-cliquant sur l’archive de 3,5 Mo téléchargée, le dossier s’ouvre et il n’y a plus qu’à saisir à la souris le dossier Vtcl et le placer sous la racine du disque principal c: (ou ailleurs en cas de nécessité).

 

Le dossier vtcl contient plusieurs fichiers et sous-répertoire importants :

·         LICENCE contient les termes exacts de la licence du générateur d’application Visual-Tcl,

·         vtcl.tcl est le script de lancement de Visual-Tcl,

·         sample et demo contiennent des exemples,

·         freewrap contient l’intégrateur installé avec sa licence,

·         possoz contient le didacticiel en français d’Anne Possoz,

·         projects est vide et est destiné à vos futurs projets informatiques.

 

Au terme de cette seconde installation, votre ordinateur est prêt au développement d’applications informatiques en Tcl/Tk. Il ne reste plus qu’à apprendre !

 

 

Tcl/Tk

 

            Tcl est un langage interprété, créé par John Ousterhout qui ne nécessite pas d’outil de développement de plusieurs gigaoctets comme Visual Studio et consorts, mais se contente d’un interpréteur avec sa bibliothèque de moins de 60 Mo sur votre disque dur, permettant le développement à partir d’un simple éditeur de texte comme notepad. Les scripts écrits peuvent être immédiatement exécutés sans compilation préalable. La syntaxe est épurée au maximum ; l’apprentissage de base se fait en une dizaine d’heures à partir d’un des très nombreux didacticiels disponibles sur internet en tapant des commandes sur la console, elle même ouverte en double-cliquant sur wish.exe (figure 17). Il est suggéré ici d’utiliser le didacticiel d’Anne Possoz, installé en même temps que Visual-Tcl avec la méthode du paragraphe précédant. Ce didacticiel est ancien, mais en français, bien organisé, clair et concis.

 

Figure 17 : console de l’interpréteur Tcl

Avec cette commande elle ouvre une fenêtre graphique vous saluant

 

 

L’apprentissage se fait en deux temps :

·         la syntaxe et les concepts Tcl,

·         les fonctions graphiques Tk.

 

 

Visual Tcl

 

            Visual-Tcl est lui-même un script Tcl/Tk qui s’active en double-cliquant sur vtcl.tcl. Ceci ouvre le tableau de bord de création d’applications de la figure 18. Lors de la première ouverture les fenêtres ne sont pas organisées comme il faut ; il convient alors de les organiser une fois pour toutes comme montré sur la figure 3. Les fenêtres non ouvertes par défaut peuvent s’activer une fois pour toutes en les sélectionnant dans le menu déroulant Window. On en profitera pour configurer comme il faut l’outil à partir du menu déroulant file -> Preferences -> project. Les choix à modifier le cas échéant sont : Project type -> single file project et Default manager -> Pack.

 

vtcl.gif

Figure 18 : Tableau de bord du générateur d’application Visual-Tcl

 

 

Le tableau de bord est organisé de la façon suivante :

·         Au dessus, le bandeau principal servant aux configurations, à ouvrir et sauvegarder les projets.

·         A gauche, la bibliothèque de widgets, les éléments graphiques qui vont composer la partie visuelle de  l’application. On les prend et on les colle au fur et à mesure dans les fenêtres de l’application créée, à l’aide de la souris

·         A droite, le tableau des propriétés. Lorsqu’un widget est actif, ce tableau permet de définir et modifier ses propriétés : disposition, taille, couleurs, aspect…

·         En bas à gauche, la hiérarchie des widgets définissant l’aspect visuel de l’application en cours de construction.

·         En bas au centre, la liste des procédures qui définissent le comportement de l’application. Ces procédures contiennent les scripts en langage Tcl qui font que l’application « tourne ». C’est la face cachée, non graphique, de l’application. Ces procédures contiennent tout le code de l’application écrit à la main ; procédures qui rendent l’application « vivante », c’est-à-dire capable de régir au clic d’un bouton, à l’introduction d’une valeur, etc..

·         En bas à droite, la liste des fenêtres principales autonomes (mais qui peuvent être invisibles (cachées) une partie du temps) de l’application en cours de développement.

·         Au centre, l’application développée. Il s’agit ici d’un petit utilitaire capable de mesurer en temps réel des grandeurs d’un système distant (ça aurait pu être un modèle réduit d’avion), de les présenter graphiquement et les mémoriser dans un fichier pour les rejouer ultérieurement. Avec un peu d’habitude une application comme celle là se réalise entièrement en moins d’une matinée.

 

 

FreeWrap

 

            Les scripts Tcl/Tk peuvent être exécutés sur n’importe quelle machine disposant de l’outil Tcl/Tk (premier outil installé). Par contre, une machine n’en disposant pas ne pourra pas exécuter de script Tcl/Tk, ce qui pose un problème si on veut diffuser son code. Face à ce problème il y a trois solutions :

 

·         Fournir tous les fichiers nécessaires aux destinataires et leur expliquer où les mettre et comment installer tout ça. C’est parfaitement faisable mais un peu rebutant pour les non informaticiens.

·         Créer un fichier d’installation à partir d’un outil spécialisé (c’est comme ça que vous avez installé Tcl/Tk). C’est aussi parfaitement faisable, mais nécessite l’apprentissage d’un outil supplémentaire.

·         Utiliser un intégrateur, en ce qui nous concerne freewrap. Cet outil va tout mettre dans un même et unique fichier (excepté les fichiers de données, modifiables a posteriori). C’est nettement moins compliqué qu’un installateur mais demande quand même un peu de travail. De leur coté, les destinataires se retrouvent avec un seul fichier exécutable qu’ils peuvent placer où ils veulent. Rien n’est modifié sur leur machine. Comme dans les temps anciens de l’informatique on double-clique sur le nom du programme pour le lancer, quand on en veut plus on l’efface ; pas de bibliothèque modifiée pour d’autres applications, pas de base de registre modifiée, aucune « crotte » nulle part qu’il faudra un jour nettoyer. C’est de l’informatique simple et propre, sans virus ni fenêtre publicitaire importune et sans prise en main discrète du réseau par l’application. C’est comme vous l’avez compris la solution que je vous propose, même si elle impose quelques contraintes à l’utilisateur final qui devra :

o   choisir et créer un répertoire pour son application,

o   choisir et créer un répertoire pour ses données de modèles,

o   créer les raccourcis pour faciliter l’accès à l’application.

 

N. B. : ce programme a un point faible : il intègre mal certaines librairies utilisées par Aérocalc, ce qui le rend inutilisable avec ce script.

 

 

Codage en Tcl/Tk sous Visual-Tcl

 

 

Micro galop d’essai

 

         Pour ce dérouiller les doigts (le modélisme comme l’informatique sont des sports des doigts) je vous suggère votre première micro-application, surtout pour vérifier que votre nouvel outil informatique fonctionne bien.

·         Lancez wish (on aura au préalable créé un raccourci sur le bureau ou dans le menu de démarrage ou dans la barre de démarrage rapide…),

·         Tapez la commande suivante : Label .a –text bonjour ; pack .a

·         Après avoir vérifié la fenêtre graphique figure 19, entrez : Label .b –text "des tréfonds du PC" ; pack .b

·         Entrez sur une troisième ligne : button .c –text "quitter cette application" –command exit ; pack .c

·         Vérifiez que vous obtenez bien la fenêtre de la figure 20 et observez que Tk adapte la taille de la fenêtre de façon dynamique en fonction de ce qu’on y met.

 

essai1.gif                                              essai2.gif

Figure 19 : 1er programme                    Figure 20 : 2ème application minimaliste

 

 

            La console permet de vérifier la justesse du code au fur et à mesure de son écriture, mais une fois la console fermée, le code est perdu. Il est donc opportun de copier le code écrit dans un éditeur de texte comme notepad (cliquer : Démarrer -> Exécuter et entrer notepad) et de le sauver sous un nom de la forme mon_code.tcl. Une fois le script dans un fichier on pourra l’exécuter en double-cliquant sur le nom du fichier ou en le chargeant dans la console. Le symbole de la grenouille dans l’icône du fichier prouve que Windows a bien reconnu le script comme étant un script Tcl/Tk et qu’il est prêt à l’exécuter.

 

            Il est temps maintenant de passer quelques heures avec le didacticiel d’Anne Possoz en faisant les exemples proposés, de tester quelques démonstrations et commencer à découvrir la documentation AcitveTclHelp8.4.chm de Tcl/Tk et ses diverses bibliothèques.

 

La documentation de Tcl/Tk est exhaustive et contient plusieurs centaines de pages. Il est essentiel de se familiariser avec en regardant au-moins :

·         Tcl manual : description de toutes les commandes Tcl

·         Tk manual : description de toutes les commandes Tk

·         Tutorial : didacticiel officiel de Tcl/Tk (on trouve assez facilement sur internet des traductions en français)

 

            Le reste constitue principalement les librairies les plus connues et fournies avec l’interpréteur (widgets, math, gestion des sons et des images, etc.) qu’il sera intéressant à un moment ou un autre de survoler pour découvrir tout ce qui a déjà été fait et éviter de refaire ce que d’autres ont déjà fait, peut être beaucoup mieux. En cas de besoin il ne faut pas hésiter à consulter le forum Tcl/Tk [6].

 

 

Galop d’essai de Visual-Tcl

 

            De nombreux programmes sont écrits de bout en bout à la main. Pourtant, certains programmeurs préfèrent laisser la partie graphique de leur programme à un générateur automatique de code. C’est la fonction de Visual-Tcl. Afin de démontrer son fonctionnement, nous allons créer ici une petite calculette à quatre opérations dont le script peut être téléchargé ici pour référence : calculette.tcl. Il y a mieux, mais vous pouvez faire cette calculette vous-même, la perfectionner et l’adapter à vos désirs !

 

La première chose à faire est de lancer Visual-Tcl configuré comme recommandé plus haut, puis de créer un nouveau projet par File -> new (figure 21).

 

nouv_calc.gif

Figure 21 : création d’un nouveau projet Visual-Tcl

 

 

            Il faut maintenant donner une fenêtre principale à l’application (Toplevel dans la librairie standard) en double-cliquant sur l’icône de la Toplevel. Il ne reste plus qu’à y placer les divers widgets. Comme il est difficile de placer des widgets non alignés, nous allons d’abord placer une Entry, puis en-dessous un Frame (cadre) qui contiendra les boutons de la calculette alignés horizontalement (figure 22).

 

calculette0.gif

Figure 22 : placement des widgets dans la Toplevel

 

 

            Pour avoir assez de place pour placer tous les widgets, la taille de la Toplevel n’est pas réduite tout de suite. Pour avoir de la place pour tous les boutons, le Frame sera agrandi au maximum en utilisant Geometry -> fill = both. Les boutons "égal" et des quatre opérations sont enfin placés les uns après les autres et alignés horizontalement en utilisant Geometry -> side = left.

 

Une fois tous les widgets placés il ne reste plus qu’à régler les propriétés de chacun :

·         Bouton égal : text -> =, x pad -> 5, command -> set input [expr $input $oper $tempo]

·         Boutons operations : text +, -,* ou /, x pad -> 5, command -> entree + (ou – ou * ou / selon le bouton)

·         Frame : expand -> no

·         Entry : width -> 15, text variable -> input

·         Toplevel : set size -> no, resize heigh -> no, resize width -> no, title -> Calculette

 

N. B. : le plus simple pour faire afficher dans la fenêtre de droite du tableau de bord les propriétés d’un widget est de le sélectionner avec la souris dans la fenêtre "widget tree".

 

 

Après avoir sauvegardé le projet, puis fermé, puis rouvert le projet en sélectionnant : File -> Projects -> calculette.tcl, on obtient l’aspect final de la figure 23.

 

calculette.gif

Figure 23 : application calculette.tcl

 

 

            Pour que l’application devienne opérationnelle, il faut encore rajouter le code dans des procédures. Visual-Tcl fournit deux procédures : init qui est exécutée juste avant la création de l’interface graphique et main qui est exécutée juste après. Nous n’avons pas besoin de main, et dans init nous allons simplement mettre :

 

global input

 

set input 0

 

afin que l’Entry contienne 0 au départ (ce n’est pas une nécessité).

 

N. B. : les variables utilisées dans les procédures sont typiquement les variables associées à des widgets. Il faut déclarer ces variables comme globales en début de procédure car sinon la procédure créerait de nouvelles variables à champ strictement local à la procédure et votre script ne fonctionnerait pas correctement.

 

 

Dans la liste des procédures nous allons ajouter une procédure unique entree actionnée par les boutons d’opération (figure 24) :

 

entree2.gif

Figure 24 : procédure entree de l’application calculette.tcl

 

 

            Le fonctionnement de l’application est simple. Lorsqu’un des boutons d’opération est cliqué, entree est exécuté. Il en résulte que le nombre entré juste avant dans l’Entry (variable input) est sauvé dans la variable tempo en même temps que l’Entry est remise à zéro pour le second nombre, tandis que l’opération à réaliser après l’entrée du second nombre est mémorisée dans la variable oper. Lorsque le bouton « égal » est cliqué, la commande "set input [expr $input $oper $tempo]" est exécutée ; elle fait le calcul et l’affiche dans l’Entry via sa variable input.

 

 

Petite application élémentaire

 

            L’application "calculette" est vraiment minimaliste, mais elle permet de comprendre le comportement des widgets et leurs propriétés, comme de se familiariser avec le tableau de bord de Visual-Tcl. Il est bien, une fois le code de la calculette tapé soi-même et compris, d’observer les quelques démonstrations de Visual-Tcl et de s’exercer à faire quelques petites applications du type calculette très simples en laissant aller son imagination. Une fois les principes de base assimilés, il est temps de construire une petite application, toujours simple, mais néanmoins plus complète. On se propose dans ce paragraphe de faire un programme appelé "Dessin de profils" capable de lire un fichier de profil d’aile, de modifier ce fichier et dessiner le profil. Son aspect sera celui de la figure 25. Il faut compter une bonne heure pour réaliser l’interface graphique et une autre pour écrire les procédures (compter plutôt deux heures si on tape seulement avec deux doigts). Pour permettre la consultation du code source, il est disponible ici : profil.tcl.

 

top_level_5.gif

Figure 25 : interface graphique de l’application "Dessin de profils"

 

 

Ce programme bien que très simple, contient la majorité des éléments standards d’un programme classique :

·         tout en haut un menu déroulant, ici limité aux deux cascades Fichier et aide,

·         juste en dessous, des boutons graphiques de raccourci (ouvrir et sauvegarder),

·         tout en bas une ligne d’état,

·         au milieu, les widgets spécifiques de l’application :

o   quatre Entry pour entrer et/ou lire des valeurs,

o   une Listbox avec son ascenseur pour sélectionner, enlever ou ajouter un point au profil,

o   sept boutons pour réaliser les diverses actions,

o   un canevas (fenêtre graphique) pour dessiner le profil.

 

 

            Le programme dispose de deux fenêtres principales, celle de la fenêtre de la figure 25 et celle de l’ « à propos » de la figure 26. Cette dernière est créée en même temps que le reste de l’interface graphique et détruite lorsqu’on quitte l’application, mais reste masquée tant qu’elle n’est pas sollicitée. Le programme dispose aussi de trois fenêtres modales (fenêtres qui exigent une réponse avant de pouvoir continuer) secondaires créées dynamiquement lorsqu’on en a besoin :

·         une fenêtre de sélection d’un fichier de profil à visualiser,

·         une fenêtre de sauvegarde du fichier de profil créé ou modifié,

·         une fenêtre pour quitter proprement le programme.

 

A_propos.gif

Figure 26 : fenêtre Toplevel de l’ « A propos »

 

 

La partie code du programme est composée de cinq procédures spécifiques en plus de init et main (voir figure 27) :

·         open_file : permet de sélectionner un fichier et d’en afficher le contenu dans la Listbox

·         insert : permet d’insérer une nouvelle ligne dans la Listbox (et donc de générer un fichier de profil)

·         save_file : permet de sauvegarder le contenu de la Listbox dans un fichier de profil

·         draw : permet de dessiner dans le canevas le contenu de la Listbox

·         quit : permet de sortir du programme en demandant si on veut sauvegarder son travail

 

procedures.gif

Figure 27 : liste des procédures de l’application "dessin de profil"

 

 

N. B. : lorsqu’on associe une commande à un widget ou un menu, il faut que la commande tienne sur une ligne, ce qui impose le plus souvent d’inclure les commandes dans des procédures. Ces procédures activées par ce qu’on appelle les « évènements » (déclenchés par une action clavier ou souris sur un widget ou menu) constituent la partie code de l’application. Pour cette raison, le type de programmation présenté ici est fréquemment qualifié de « programmation évènementielle ».

 

 

Création du programme

 

            Le programme est crée comme tous les programmes à l’aide de la fenêtre de création de la figure 28. On l’atteint soit par le menu déroulant comme cela a été fait avec l’application "calculette", soit par le raccourcinew.gif.

 

nouv_proj.gif

Figure 28 : fenêtre de création du projet "dessin de profil"

 

 

Important :    ce programme, bien que simple, est déjà suffisamment conséquent pour justifier de prendre des précautions afin de ne pas perdre tout son travail en cours. Lorsqu’on crée un programme,  le risque de perdre son travail est beaucoup plus important que lorsqu’on écrit un texte ordinaire, car une faute de frappe ou une erreur de syntaxe peut empêcher le code de s’exécuter. Lorsque le code est compilé, le compilateur génère alors des messages d’erreur (souvent abscons pour le profane) jusqu’à ce qu’on ait corrigé la ou les erreurs. Dans le cas d’un langage interprété comme Tcl, le problème est pire car l’interpréteur est bloqué. Avec Visual-Tcl, c’est encore plus grave, car comme il est lui-même un script Tcl, il va lui-même se bloquer et vous ne pourrez plus charger votre application avec la très désagréable sensation d’avoir tout perdu. Face à ça Visual-Tcl offre deux aides : indication de certaines fautes de syntaxe à la sauvegarde et possibilité de revenir à l’avant dernière version avec File -> restore from backup, qui seront très utiles si vous respectez la méthodologie ci-dessous :

·         toujours tester préalablement les commandes douteuses sur la console intégrée (mise en avant en cliquant sur le raccourci tconsole.gif de la fenêtre principale de Visual-Tcl)

·         sauvegarder régulièrement son travail (toutes les 5 mn par exemple) avec save suivi de File -> Projects -> [nom du projet],

·         tester régulièrement son code avec le bouton à bascule EDIT/TEST,

·         tester régulièrement son script avec wish en double-cliquant sur le nom du script dans l’explorateur Windows (sans fermer Visual-Tcl),

·         ne jamais écrire plus d’une procédure à la fois sans avoir vérifié son bon fonctionnement,

·         incrémenter régulièrement le nom du projet avec save as (par exemple en ajoutant un numéro de version à la fin du nom),

·         revenir à la version précédente dès la détection d’une anomalie sans sauvegarder la version bugée.

 

Si malgré tout plus aucune version de votre script ne se charge, il reste un dernier recours :

·         ouvrir le script avec notepad ou wordpad,

·         chercher le nom de la procédure en cours d’écriture et donc fautive avec ^F ou Edition -> rechercher,

·         mettre le contenu de la procédure fautive dans un fichier temporaire pour pouvoir récupérer ultérieurement le contenu par morceaux,

·         éliminer le contenu de la procédure fautive du script (ne pas supprimer la procédure elle même),

·         relancer Visual-Tcl et réécrire plus progressivement et avec plus d’attention la procédure en cause (pour gagner du temps on pourra exploiter des morceaux sains du fichier où le corps de la procédure est sauvegardée avec des copier/coller ou ^c/^v).

 

 

Interface graphique principale

 

            La première chose à faire est de réaliser l’interface graphique par étapes. La première étape est montrée à la figure 29. Elle consiste à créer d’abord une Toplevel avec en bas une Entry aux propriétés suivantes : state -> readonly, text var -> status, Fill -> x, side -> bottom.

 

top_level_1.gif

Figure 29 : première phase de création de l’interface graphique de profil.tcl

 

 

     La première phase inclut aussi la mise en place du menu déroulant. La fenêtre de création (figure 30) peut être activée lorsque la Toplevel est le widget actif (à sélectionner dans "widget tree" ou en double-cliquant sur son bandeau), puis en choisissant : widget -> Edit menu, soit de la fenêtre principale, soit de celle du clic de bouton droit de souris (menu contextuel) lorsqu’on est dans la fenêtre "widget tree". Pour que le menu déroulant soit opérationnel il faut associer la commande "Ouvrir" à open_file, "Sauvegarder" à save_file, "Quitter" à quit et "A propos" à Window show $widget(About); grab set $widget(About).

 

menu_der.gif

Figure 30 : fenêtre de création du menu déroulant

 

 

            L’étape suivante montrée à la figure 31 consiste à ajouter en haut juste sous les menus déroulants un Frame avec les boutons de raccourcis. Ces boutons sont comme des boutons ordinaires, mais on remplace le texte par une image à l’aide de la propriété image (Vtcl fournit les icônes en cliquant à droite de l’Entry image). Les deux premiers boutons sont bien sûr associés à open_file et save_file (on ajoutera par la suite les autres raccourcis désirés). Il faut encore ajouter en bas le canevas. Sa taille sera donnée comme 700 pixels de largeur et 150 pixels de hauteur.

 

top_level_2.gif

Figure 31 : seconde phase de dessin de l’interface graphique

 

 

            La troisième et avant dernière phase est la plus longue, elle consiste à mettre en place les éléments centraux de l’interface graphique. Elle est composée de cinq sous étapes. Dans chaque sous-étape on place des widgets alignés verticalement dans un Frame. On aura donc cinq Frames arrangés de gauche à droite :

 

·         Le Frame de gauche ─ à remplir nécessairement en premier ─ définit une Entry avec comme propriétés : text var = name, width = 30, ext. x pad = 5, ext. Y pad = 5 et une Listbox avec comme propriétés principales heigh = 20 et list var = points_list.

·         Le Frame des boutons (obligatoirement réalisé en second) contient les boutons associés à open_file et save_file (on aura donc trois moyens pour ouvrir et sauver un fichier), le bouton dessiner un profil associé à la procédure draw et le bouton d’effacement associé à la commande : $widget(Canvas1) delete all.

·         Le troisième Frame (obligatoirement réalisé en troisième) ne contient que des Labels.

·         Le quatrième Frame (obligatoirement réalisé en quatrième) contient les deux Entry dans lesquelles on donnera le résultat du calcul de l’épaisseur relative (variable thickness) et du comptage du nombre de points (variable points).

·         Le dernier Frame se limite aussi à des Labels. Pour qu’il prenne la place restante il ne faudra pas oublier de sélectionner la propriété fill = both.

 

 

            La difficulté dans cette partie tient au fait qu’il faut absolument ajouter les Frames et les widgets dans l’ordre car si on oublie un élément il est difficile, voire impossible, de revenir en arrière sans avoir à effacer les derniers widgets. Il faut aussi jouer astucieusement avec la propriété fill pour que les Frames gardent une taille suffisante pour pouvoir y insérer les futurs widgets. Il est bien aussi de jouer avec les différentes valeurs de pad pour que l’aspect à l’œil soit agréable. Au début ce n’est pas trivial, mais devient évident avec le temps (il vous faudra probablement vous y reprendre à plusieurs fois et effacer pas mal de widgets avant d’y arriver correctement).

 

top_level_4.gif

Figure 32 : troisième phase de construction de l’interface graphique

 

 

            La dernière étape montrée à la figure 32 consiste à ajouter ce qu’on a oublié (les éléments oubliés ne deviennent évidents que lorsqu’on essaie d’utiliser le programme). Ici (pour le principe) ont été oubliés deux raccourcis pour redessiner le profil et l’effacer, ainsi que l’ascenseur et les commandes pour modifier le contenu de la Listbox.

 

L’ajout des raccourcis manquants ne justifie pas de commentaire.

 

            L’ajout de l’ascenseur oblige à effacer la Listbox, ajouter l’ascenseur à droite puis à remettre la Listbox avec l’option fill = x. Pour que l’ascenseur fonctionne il faut encore l’associer à la Listbox par la méthode suivante : activer l’ascenseur, cliquer sur le bouton droit et sélectionner widget -> attach to widget, puis cliquer sur la Listbox.

 

L’ajout des boutons de contrôle de la Listbox doit se faire de la manière suivante :

·         effacer les deux boutons du bas,

·         ajouter un Label avec un texte contenant quatre caractères espace (donc invisibles) pour aérer la présentation,

·         ajouter le bouton "récupérer la ligne" avec comme commande : set profil_line [$widget(Listbox1) get active],

·         ajoutez l’Entry avec comme variable : profil_line,

·         ajouter le bouton "insérer la ligne" avec comme commande la procédure insert,

·         ajouter le bouton "effacer la ligne" avec comme commande : $widget(Listbox1) delete active,

·         ajouter un second Label avec un texte contenant quatre caractères espace,

·         recréer enfin les deux boutons qu’on a été contraint de supprimer au début du processus.

 

 

Raccourcis de l’Entry

 

            Lorsqu’on clique sur le bouton "insérer la ligne", elle est insérée grâce à la procédure insert. Il serait intéressant d’obtenir le même résultat en pressant la touche entrée du clavier lorsqu’on entre une nouvelle valeur. Lorsqu’un widget est activé, certaines actions clavier ou souris provoquent une réaction prédéfinie relative au widget ; mais il est parfaitement possible d’ajouter d’autres réactions en fonction de ses désirs. Pour activer insert lorsqu’on presse "entrée" il suffit d’ajouter un lien (binding en anglais). Ceci se fait simplement lorsque l’Entry est active en cliquant sur le bouton droit de la souris pour activer le menu contextuel. On choisit alors "Bindings…" qui ouvre la fenêtre des bindings (figure 33). Il suffit alors de cliquer sur insert pour ouvrir un menu déroulant de la liste des possibilités et choisir dans notre cas Advanced , ce qui ouvre la fenêtre de la figure 34. Dans l’Entry "Type keystrokes" on tape alors sur la touche "entrée" du clavier, ce qui fait apparaître l’évènement <Key-Return> en bas de la fenêtre. Il ne reste plus qu’à valider pour revenir à la figure 19 et ajouter la commande insert à l’évènement <Key-Return> du widget.

 

binding1.gif

Figure 33 : fenêtre de génération d’un lien dynamique (binding)

 

binding2.gif

Figure 34 : affectation d’une commande à un lien dynamique (binding)

 

 

Toplevel "A propos"

 

            La Toplevel secondaire est un simple widget Message au dessus d’un bouton OK contenant la commande : Window hide $widget(About); grab release $widget(About). Deux remarques doivent être formulées ici :

 

·         Dans le cas du message on utilise la propriété justify = center, ce qui génère un bug, heureusement sans conséquence : un fantôme du message planant dans la fenêtre de la hiérarchie des widgets.

·         Pour que la fenêtre secondaire soit cachée au lancement du programme, il faut qu’elle soit masquée au moment de la sauvegarde du script, ce qui s’obtient en cliquant sur l’icône hide.gif de la fenêtre de liste des Toplevels lorsque la fenêtre correspondante est activée.

 

 

Procédures de l’application

 

            Les contenus commentés des procédures sont donnés ici sans autre artifice (se référer à la documentation pour comprendre la signification exacte de chaque commande).

 

N. B. : il convient de toujours bien commenter son code, car quand on le relit après l’écriture ou qu’on le donne à quelqu’un d’autre, les commentaires constituent l’unique moyen de garantir la compréhensibilité et donc réutilisabilité du code.

 

 

init :

 

global status points_list thickness points

 

# Définition des valeurs initiales de quelques variables,

# surtout pour l'esthétique.

set status Prêt

set points_list ""

set thickness 0

set points 0

 

 

main :

 

global widget

 

# Procédure exécutée juste après la création de l'interface graphique.

# Dans le cas présent, presque rien n'est fait.

 

# Définition de la procédure à exécuter lorsqu'on clique sur la

# croix de fermeture de la fenêtre principale

wm protocol $widget(Toplevel1) WM_DELETE_WINDOW quit

 

 

open_file :

 

N. B. : le répertoire par défaut doit être adapté au lieu où se trouvent les fichiers de profils. Des fichiers de profils « bien connus » peuvent êtres récupérés ici sous forme archivée : profils.zip.

 

global widget status FileId name points_list profil_line thickness points

 

# Procédure d'ouverture d'un fichier de profil.

# Cette procédure ouvre une fenêtre de choix de fichier,

# puis ouvre le fichier et place son contenu dans l'Entry

# de nom et la Listbox des points.

# Accessoirement, la procédure compte le nombre de points

# de profil et son épaisseur maximale.

 

# Définition des types de fichiers acceptés

set type {

{ "profile files" { .txt .dat } }

}

 

# Définition du répertoire par défaut 

set directory {c:\Program Files\Nurflügel\coord_MM}

 

# Ouverture de la fenêtre de sélection

set filename [tk_getOpenFile -filetypes $type -initialdir $directory]

 

# Ouverture du fichier choisi

if [catch {open $filename r} FileId] {

    # Abandon si le fichier n'existe pas

    set  status "Ouverture de $filename impossible"

    } else {

    # indication que le fichier est ouvert avec succès

    set status "$filename ouvert"

    # lecture de la première ligne (nom du profil)

    gets $FileId name

    # initialisation de toutes les variables de profil

    set min 0

    set max 0

    set points_list ""

    set points 0

    set profil_line "0.0000 0.0000"

    # transfert de chaque ligne du fichier dans chaque

    # chaque ligne de la Listbox, une à une. 

    while {[gets $FileId ligne] >= 0} {

        # Mise à jour de la valeur max de l'épaisseur

        if {$max < [lindex $ligne 1]} {

            set max [lindex $ligne 1]

            }

        # Mise à jour de la valeur min de l'épaisseur

        if {$min > [lindex $ligne 1]} {

            set min [lindex $ligne 1]

            }

        # incrémentation du nombre de points   

        incr points

        # ajout de la ligne courante du fichier dans

        # la Listbox

        lappend points_list "$ligne"

        }

    # calcul de l'épaisseur maximale du profil en %

    set thickness [expr ($max - $min) * 100]

    # Fermeture du fichier

    catch {close $FileId}

    }

 

 

save_file :

 

global widget status FileId name points_list

 

# Procédure de sauvegarde du profil en mémoire.

# Après le choix du nom de fichier,

# cette procédure lit et sauve le nom du profil,

# puis lit ligne à ligne chaque point du profil à sauvegarder.

 

# Définition des types de fichiers acceptés

set type {

{ "profile files" { .txt .dat } }

}

 

# Choix du répertoire par défaut

set directory {c:\Program Files\Nurflügel\coord_MM}

 

 

insert :

 

global widget profil_line

 

# Procédure d'insertion d'un nouveau point dans la liste de

# coordonnées du profil. Le nouveau point est pris dans

# l'Entry prévue à cet effet.

 

# Récuparation du numéro de la ligne active dans la Listbox

set pointeur [expr [$widget(Listbox1) index active] + 1]

# Insertion du nouveau point juste sous la ligne active

$widget(Listbox1) insert $pointeur $profil_line

 

 

draw :

 

# Procedure de dessin du profil

 

# Le profil est dessiné segment par segment du 1er au dernier point.

# Un segment est défini par un point de départ Coorddep (liste contenant

# x et y de départ) et un point de d'arrivée Coordfin (liste contenant

# x et y d'arrivée).

 

global widget points_list

 

# Activation du booléen start qui définit une exception

# car à la récupération de la première coordonnée on ne

# peut pas dessiner de segment, on se contente de récupérer

# les coordonnées de départ du premier segment.

set start 1

# Effacer l'ancien dessin en cas de besoin

$widget(Canvas1) delete all

 

# dessin segment par segment     

foreach ligne $points_list {

# A la première boucle, récupération du point de départ

if {$start == 1} {

    # Lecture du point de départ

    set depart [lindex $points_list 0]

    # transformation des coordonnées en coordonnées "pixels"

    set Coorddep "[expr [lindex $depart 0]*600 + 50]  [expr 75 - [lindex $depart 1]*600]"

    set start 0

    } else {

    # transformation des coordonnées en coordonnées "pixels"

    set Coordfin "[expr [lindex $ligne 0]*600 + 50]  [expr 75 - [lindex $ligne 1]*600]"

    # dessin du nouveau segment

    set CoordList [concat $Coorddep $Coordfin]

    $widget(Canvas1) create line $CoordList -width 2 -fill blue

    # Le point de fin du segment actuel est transformé en point

    # de départ du prochain segment

    set Coorddep $Coordfin

    }

}

 

 

quit :

 

global widget FileId

 

# Procédure de fermeture du programme.

# On se contente ici de proposer de sauvegarder le profil en mémoire

 

# Ouverture de la fenêtre modale de proposition de sauvegarde

set reponse [tk_messageBox -message "Voulez vous sauver le profil ?" -type yesno -icon question]

# Sauvegarde en cas de réponse positive

if {$reponse == "yes"} {save_file}

# Quitter définitivement

exit

 

 

Diffuser le programme

 

            Le petit programme que l’on vient d’écrire n’est pas très utile, mais si on l’améliore et qu’on désire le diffuser sans Tcl/Tk il suffit de sélectionner dans Visual-Tcl File -> Save as with binary. Après cette action un exécutable d’environ 2 Mo sera généré par Freewrap et vous pourrez facilement diffuser votre application.

 

 

Aérocalc

 

         La phase actuelle d’élaboration du logiciel dont le développement est presque achevé est visible sur la figure 1. L’auscultation du script avec Visual-Tcl permet d’analyser l’arborescence des widgets et de comprendre leur organisation. L’observation des diverses procédures permet de comprendre la technique de codage et d’exploitation des widgets. Comme il y a très peu de calculs à faire, tout est codé en Tcl, mais comme les procédures sont assez nombreuses, elles sont regroupées par panneau et présentées dans le paragraphe correspondant, excepté celles d’ordre général décrites ici.

 

Procédures générales :

·         init : met une valeur initiale dans les variables de l’application au démarrage de l’application, juste avant la création des widgets.

·         main : configure certains widgets au démarrage, notamment les tableaux, juste après la création des widgets (et donc de l’interface graphique). Main récupère aussi la dimension antérieure de la fenêtre de l’application est les répertoires par défaut. La procédure redirige également les évènements de sortie du logiciel et de l’aide vers les procédures concernées.

·         new_modele : efface toutes les données du modèle en cours pour repartir d’une feuille vierge. Invoqué en cliquant sur « Nouveau modèle » ou son bouton de raccourci.

·         open_modele : procédure de chargement d’un modèle. Invoquée en cliquant sur « Ouvrir » ou son bouton de raccourci.

·         open_helice1 : procédure de chargement d’une courbe d’hélice invoquée dans le panneau « Propulsion thermique ».

·         open_helice2 : procédure de chargement d’une courbe d’hélice invoquée dans le panneau « Propulsion thermique ».

·         save_modele : procédure de sauvegarde du modèle en cours d’étude. Invoquée en cliquant sur « Enregistrer » ou son bouton de raccourci.

·         open_polar : précédure de chargement d’une polaire d’aile en cliquant sur le bouton « Charger polaire » du panneau « Géométrie »

·         ecrit_repertoire : procédure de mis en forme des données pour permettre la sauvegarde du répertoire courant dans un fichier script.

·         erreur : procédure qui affiche un message d’erreur si on clique sur un bouton qui lance une commande à qui il manque des paramètres.

·         quadrillage : procédure qui dessine un quadrillage à la demande dans les canevas.

·         aide : procédure qui ouvre la fenêtre html de l’aide en ligne.

·         quit_aide : procédure de sortie de la toplevel du menu d’aide en ligne.

·         quit : procédure du sortie de l’application. La procédure sauve la dimension de la fenêtre de l’application et les répertoires par défaut et suggère de sauvegarder les données de l’aéromodèle étudié avant la fermeture.

 

 

Le cadre visuel

 

Le cadre visuel reprend les principes courants et surtout strictement l’aspect du logiciel de dessin de profil en l’étendant, à savoir du haut vers le bas :

·         menu déroulant

·         ligne de raccourcis

·         fenêtre principale

·         ligne d’état.

 

            Comme il y a beaucoup plus de données à entrer ainsi que données et dessins à sortir, on utilise les onglets pour répartir les données sur plusieurs écrans (widget Notebook de la librairie Bwidgets). L’onglet Géométrie requiert beaucoup de nombres (coordonnées x, y et z des points significatifs du modèle), aussi on utilise des tableaux (widget Table de la librairie Tk Table), ce qui est plus facile et rapide à mettre en œuvre que les entry. De plus, cette technique permet de limiter le nombre de variables car chaque tableau n’utilise qu’une variable (array avec en paramètre la ligne et la colonne de la cellule concernée du tableau).

 

            Contrairement au petit programme de dessin de profil, et conformément aux usages, cette fois-ci la Toplevel d’AeroClac et redimensionnable. Ceci implique typiquement qu’un et un seul widget principal par onglet soit redimensionnable et muni d’ascenseurs. Le widget redimensionnable est typiquement un canevas ou une fenêtre texte pour lequel on a précisé l’option –fill both. Il ne faudra pas omettre d’activer l’option redimensionnable dans la Toplevel principale, ainsi que de définir des tailles minimum et maximum correctes (voir figure 35) car les widgets essentiels de l’application ne doivent pas pouvoir être masqués.

 

redimensionnement.gif

Figure 35 : définition du redimensionnement d’une Toplevel

 

 

L’aide en ligne

 

            L’aide des logiciels est de moins en moins lue car les interfaces sont de plus en plus intuitives. Néanmoins une aide est indispensable. Il y a de nombreuses techniques pour éditer le texte d’aide. La méthode retenue ici est de mettre toute l’aide dans un fichier de type internet (html) aide_aerocalc.htm ; ainsi l’aide peut être lue du logiciel lui-même dans une fenêtre texte de type html (Scrolledhtml dans la librairie Incr Widget) ou de l’extérieur à l’aide d’un navigateur quelconque (ce qui est assez pratique pour le chapitre installation…).

 

            Il y a malheureusement un petit problème. Le widget de lecture html utilisé vient d’une librairie ancienne et ne lit que de l’html de version 3.2 alors que de nombreux éditeurs génèrent de l’html incompatible avec cette version. Un éditeur qu’on trouve sur internet et qui génère un script parfaitement compatible est Kompozer version 0.8.b3. On peut le télécharger à l’adresse suivante :  http://kompozer.net/ [7].

 

Procédures de l’aide :

·         aide : procédure d’ouverture de la fenêtre html d’aide. Invoquée du menu déroulant d’aide.

·         quit_aide : procédure de fermeture de la fenêtre d’aide. Invoquée lorsqu’on clique sur le bouton OK de la fenêtre d’aide.

 

 

Chargement et sauvegarde des modèles

 

On peut sauvegarder des données ─ en ce qui nous concerne les données de chaque modèle ─ dans des fichiers de trois façons différentes :

·         en binaire : méthode compliquée à programmer, mais la plus efficace en terne de taille de fichier.

·         en ASCII (nombres traduits en caractères imprimables). C’est la méthode utilisée avec le petit programme de dessin de profil. L’avantage est de pouvoir lire et modifier directement les données dans un éditeur de texte.

·         Sous forme de script tcl (succession de commandes set var valeur). C’est une méthode spécifique aux langages script. Les données prennent un peu plus de place qu’en mode ASCII, mais la lecture est extrêmement simple car il suffit de sourcer le fichier de données avec une commande du type source mon_fichier.dat. C’est cette dernière méthode qui a été utilisée ici. Le code de sauvegarde des données reprend celui du programme de dessin de profil adapté avec un code du type de celui montré ci-après :

 

foreach {indice mesure} [array get aile] {

if {[llength $mesure] == 1} {puts $FileId "set aile($indice) $mesure"}

}

 

 

Chargement et sauvegarde de la configuration

 

            A chaque fois qu’on quitte Aérocalc, la position et la taille de la fenêtre principale sont sauvegardées, en même temps que le dernier répertoire utilisé pour charger un modèle, et que celui utilisé pour charger une polaire d’aile ou d’hélice. La sauvegarde est faite dans un fichier nommé config.tcl créé et sauvegardé dans le répertoire d’où a été lancé Aérocalc.

 

 

Le panneau géométrie

 

La zone des tableaux à gauche permet de d’introduire les dimensions du modèle, élément par élément, dans l’ordre :

·         les ailes,

·         le fuselage,

·         l’empennage horizontal,

·         la dérive,

·         le train d’atterrissage et l’hélice.

 

Le canevas de droite permet d’obtenir une esquisse de chaque élément, dessiné à partir des valeurs introduites dans les tableaux. Le canevas reçoit aussi l’affichage des surfaces de chaque élément.

 

Procédures utilisées :

·         GEOinit_tab_aile : définit l’aspect visuel du tableau des ailes

·         GEOinit_tab_empennage : définit l’aspect visuel du tableau de l’empennage horizontal

·         GEOinit_tab_derive : définit l’aspect visuel du tableau de la dérive

·         GEOinit_tab_fuselage : définit l’aspect visuel du tableau du fuselage

·         GEOinit_tab_train_helice : définit l’aspect visuel des tableaux du train de et de l’hélice

·         GEOinit_legendes_tab : génère les légendes de l’ensemble des tableaux (1ère ligne et 1ère colonne)

·         GEOdessin_aile : dessine les ailes et calcule leur surface

·         GEOdessin_empennage : dessine l’empennage et calcule sa surface

·         GEOdessin_derive : dessine la dérive et calcule sa surface

·         GEOdessin_fuselage : dessine le fuselage et calcule sa surface

·         GEOdessin_train_helice : dessine le train et l’hélice et calcule la surface projetée de traînée du train

·         GEOdessiner : dessine l’ensemble du modèle en calculant tous les paramètres

·         GEOchgt_type_aile : modifie l’aspect du tableau « fuselage » lorsqu’on change de type d’aile

·         GEOchgt_type_derive : modifie l’aspect du tableau « dérive »  lorsqu’on change de type de dérive

·         GEOchgt_type_empennage : modifie l’aspect du tableau « dérive » lorsqu’on change de type d’empennage

 

 

Les autres panneaux

 

            Le code des autres panneaux est à découvrir par soi-même, arborescence des widgets comme les diverses procédures. Pour permettre de trouver les procédures de chaque panneau, les trois premières lettres du nom du panneau ont été ajoutées en majuscule devant chaque procédure concernant le panneau.

 

La liste des procédures liées au panneau « Aérodynamique » est donnée ci-après :

·         AERopen_polar : permet de télécharger une polaire générée par JAVAFOIL et mise dans un fichier.

·         AERquadrillage : dessine un quadrillage pour le canevas des courbes de caractéristiques de l’aéromodèle.

·         AERcalcule_courbes : crée un une array contenant les courbes d’incidence, de traînée, de finesse et de taux de chute u modèle.

·         AERdessine_incidence : dessine la courbe d’incidence dans un canevas à partir des valeurs calculées en faisant une mise à l’échelle automatique.

·         AERdessine_trainee : dessine les cinq courbes de traînée à partir des valeurs calculées en faisant une mise à l’échelle automatique.

·         AERdessine_finesse : dessine la courbe de finesse en faisant une mise à l’échelle automatique.

·         AERdessine_taux_chute : dessine la courbe du taux de chute de l’aéromodèle sans motorisation en faisant une mise à l’échelle automatique.

 

 

La liste des procédures liées aux panneaux « Propulsion thermique » et Propulsion électrique » est donnée ci-après :

·         PRO1calcule_puis : sert à calculer la puissance nécessaire à la propulsion d’un modèle utilisant une propulsion thermique

·         PRO1calcule_helice : sert à calculer les diamètres et pas de l’hélice dans le cas d’une propulsion thermique

·         PRO1open_helice : permet d’ouvrir un fichier JAVAPROP pour charger une courbe d’hélice

·         PRO1calcule_courbe_helice : réalise le calcul du tableau de valeur d’une hélice de synthèse (non JAVAPROP)

·         PRO1dessine_courbe_helice : dessine une courbe d’hélice à partir d’un tableau JAVAPROP ou local

·         PRO1calcule_courbe_moteur : calcule les courbes du moteur à partir des paramètres fournis

·         PRO1dessine_courbe_moteur : dessine les courbes du moteur calculées par PRO1calcule_moteur

·         PRO2calcule_puis : sert à calculer la puissance nécessaire à la propulsion d’un modèle utilisant une propulsion électrique

·         PRO2calcule_helice : sert à calculer les diamètres et pas de l’hélice dans le cas d’une propulsion électrique

·         PRO2open_helice : permet d’ouvrir un fichier JAVAPROP pour charger une courbe d’hélice

·         PRO2calcule_courbe_helice : réalise le calcul du tableau de valeur d’une hélice de synthèse (non JAVAPROP)

·         PRO2dessine_courbe_helice : dessine une courbe d’hélice à partir d’un tableau JAVAPROP ou local

·         PRO2calcule_courbe_moteur : calcule les courbes du moteur à partir des paramètres fournis

·         PRO2dessine_courbe_moteur : dessine les courbes du moteur calculées par PRO2calcule_moteur

 

 

 

La liste des procédures liées au panneau « Construction – stabilité – autonomie » est donnée ci-après :

·         CONchgt_type_capacite : sert à modifier les entrées en lecture seule, selon qu’on choisit d’imposer une capacité de réservoir (ou accumulateur) ou qu’on choisit d’imposer une autonomie.

·         CONcalc_masses_cent_stab : sert à calculer la masse, le centre de masse et l’inertie à partir des données du tableau de masses et positions. La procédure calcule aussi la position idéale du centre de masse à partir des données du cadre « stabilité ».

·         CONdefinit_masses : sert à estimer automatiquement les champs vides du tableau des masses et positions à partir des différentes informations disponibles sur le modèle.

·         CONreinitialiser : sert à vider tous les champs du tableau des masses et positions.

·         CONcalc_autonomie : sert à calculer l’autonomie ou la capacité du réservoir (ou de l’accumulateur) selon la configuration.

·         CONcalc_haut_aile : calcule la position verticale à laquelle la portance des ailes s’applique

·         CONcalc_grad_aile : calcule des  paramètres pour l’étude de la stabilité en roulis

·         CONcalc_lacet : calcule des paramètres de stabilité dynamique en lacet

·         CONdessine_lacet : dessine les courbes correspondant aux paramètres établis par CONcalc_lacet

·         CONcalc_roulis : calcule des paramètres de stabilité dynamique en lacet

·         CONdessine_roulis : dessine les courbes correspondant aux paramètres établis par CONcalc_roulis 

·         CONcalc_tangage : calcule des paramètres de stabilité dynamique en lacet

·         CONdessine_tangage : dessine les courbes correspondant aux paramètres établis par CONcalc_tangage 

 

 

La liste des procédures liées au panneau « Technique de construction - RDM» est donnée ci-après :

·         TEC_calc_aile : sert à calculer la masse des ailes à partir des différents éléments constituants

·         TECcalc_derive : sert à calculer la masse de la dérive à partir des différents éléments constituants

·         TECcalc_empennage : sert à calculer la masse de l’empennage horizontal à partir des différents éléments constituants

·         TECcalc_finition : sert à calculer la masse de l’entoilage et la peinture à partir des différents éléments constituants

·         TECcalc_fus_avant : sert à calculer la masse de la partie avant du fuselage à partir des différents éléments constituants

·         TECcalc_fus_centre : sert à calculer la masse de la partie centrale du fuselage à partir des différents éléments constituants

·         TECcalc_fus_arriere : sert à calculer la masse de la partie arrière du fuselage à partir des différents éléments constituants

·         TECcalcule : lance les sept procédures précédentes lorsqu’on clique sur le bouton « Calcule masses »

·         TECtransfert_masses : transfert les masses calculées vers la zone des masses du panneau « Construction – stabilité – autonomie »

·         TECcalcule_clef : calcule la clef d’ailes

·         TECcree_car_aile : découpe l’aile droite en éléments finis pour pouvoir calculer les contraintes et flexion

·         TECdessine_contrainte : dessine la courbe de contraintes

·         TECdessine_flexion : dessine la courbe de flexion

 

 

La liste des procédures liées au panneau « Caractéristiques - Réglages » est donnée ci-après :

·         CARcalc_masses : calcule en pourcentage la masse de chaque partie du modèle

·         CARcalc_surfaces : calcule les allongements, le bras de levier et en pourcentage les surfaces de l’empennage par rapport a celle des ailes

·         CARcalc_angles : calcule le dièdre et les angles d’incidence

·         CARcalc_propulsion : calcule le nombre de Mach en bout de pale d’hélice et le taux de décharge de l’accumulateur de propulsion

·         CARcalculer : lance les quatre procédures précédentes lorsqu’on clique sur l’onglet de sélection du panneau

 

 

Références

  1. Wikipédia : licence publique libre
  2. Active State : fournisseur d’outils de programmation
  3. Source_Forge : fournisseur de Visual-Tcl
  4. Source Forge : fournisseur de Free Wrap
  5. Didacticiel Tcl d’Anne Possoz
  6. Forum Tcl/Tk (en anglais), (en français)
  7. Editeur de pages html Kompozer