Aéromodélisme
RC
Techniques et
conception
Aérocalc
Logiciel de calcul des aéromodèles
Lien vers « Sauver un animal »
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
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
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.
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.
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.
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.
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.
Figure 6 : Nurflügel,
entrée des paramètres
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.
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.
Figure 9 : taux de
chute d’un planeur par Aérocalc
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.
Figure 11 : panneau « propulsion thermique »
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.
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.
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.
Figure 12 : panneau « propulsion électrique »
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.
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.
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.
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é.
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.
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.
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.
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.
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.
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).
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).
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.
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) :
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.
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.
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
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 raccourci.
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 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.
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).
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.
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).
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.
Figure 33 : fenêtre de génération d’un lien dynamique (binding)
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 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.
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