1. Contexte du projet

1.1. Les besoins du client

Mr. P. Chambert gérant de l’entreprise JTL Electronique, a répondu à un appel d’offre concernant la mise en œuvre d’un système optique destiné à réaliser des opérations de la rétine oculaire. Ce système est basé sur une visée laser à l’aide d’un laser peu puissant, puis d’un tir laser à l’aide d’un second laser plus puissant. L’opticien en charge de l’opération doit donc dans un premier temps placer correctement cette visée laser sur la cible (fond de la rétine de l’œil). Cette visée est réalisée en diffusant une matrice de 25 points (5x5) à l’aide de deux miroirs réfractaires fixés chacun sur un moteur galvanomètre. Pour contrôler ces galvanomètres, le système de notre client est régulé à l’aide d’un asservissement en position structuré à partir d’un correcteur PID (Proportionnel Intégral Dérivé), qui n’offre pas les performances nécessaires afin de diffuser la matrice laser correctement.

Son principal besoin est donc d’implémenter une nouvelle régulation à l’aide d’un correcteur plus performant, le tout sur cible embarquée basée sur microcontrôleur et la moins onéreuse possible. L’objectif étant d’améliorer la diffusion de la matrice laser et donc le confort des opticiens lors de la visée pour réaliser l’opération.

1.2. Le cahier des charges

Le cahier des charges a ainsi été défini en accord avec les besoins de notre client.


Tableau 1 : cahier des charges

Traduit de manière schématique, voici l’ensemble des fonctions et contraintes du CDCF dans le contexte de notre projet :


Figure 1 : contraintes par rapport au Hardware

1.3. Etat des lieux de l’existant

Ce projet fait donc appel à des notions avancées en matière d’automatique : identification, asservissement, modélisation ; et de systèmes embarqués : développement sur SoC (HPS et FPGA), langages VHDL et C, liaisons séries, bus de communication (SPI et AVALON). Voici un bilan synthétique de ce qui a été réalisé et validé avant la reprise du projet à la rentrée 2020.

Au cours de l’année 2018, choix de la carte de développement De0-nano-SoC grâce à son processeur aux performances élevées en temps de calcul (925MHz Dual-core ARM Cortex-A9 processor) pour répondre au cahier des charges. Première étude de l’identification du système moteur, correcteur PID et RST.

En 2019, mise en place de la chaîne de commande des moteurs galvanomètres à partir de la carte client réalisant l'interface des moteurs avec la carte De0-nano-SoC (cf. schéma fonctionnel ci-dessous). La carte client intègre les convertisseurs CAN et CNA respectivement pour la lecture et l’écriture de la position des moteurs (commandés en tension -5V/+5V), ainsi que des amplificateurs audio (les galvanomètres requièrent une puissance importante). Configuration et validation du bus SPI réalisant la communication avec les convertisseurs, du bus AVALON pour la liaison HPS-FPGA et de la liaison UART avec le PC. Retrouvez les détails concernant la configuration du bus avalon et des transferts enter la partie HPS et la partie FPGA sur le wiki du groupe précédent (2019/2020).


Figure 2 : description du système physique

Dans le même temps, une étude complète des temps de transfert des données en lecture et écriture à l’aide des convertisseurs analogiques numériques et des bus SPI a été réalisée (cf. wiki 2019). Ces temps sont précieux pour caractériser les performances du système et notamment la période d’échantillonnage.

D’autre part, la méthode d’identification des galvanomètres utilisée par l’équipe de projet de l’année précédente n’a pas permis d’obtenir un modèle cohérent avec le système réel. C’est pourquoi ce projet a été reconduit une nouvelle fois cette année. Cette méthode consistait à envoyer sur l’entrée des moteurs, une consigne de la forme d’une Séquence Binaire Pseudo-Aléatoire (SBPA) à valeur moyenne nulle et récupérer en sortie la position des moteurs. A partir de cet essai, ils en ont déduit une fonction de transfert associée avec la méthode des moindres carrés. Malheureusement, ce modèle ne leur a pas permis d’obtenir des essais concluant en simulation et sur le système réel.

De ce fait, nous avons décidé d’utiliser cette année une autre méthode d’identification des galvanomètres. Celle-ci consiste, à partir des données du constructeur inscrites sur la fiche technique et d’équations mécaniques et électriques tirées d’une étude sur les galvanomètres, de trouver la fonction de transfert des moteurs. Cette dernière peut ensuite être validée par comparaison entre la simulation et le système réel pour la réponse à une consigne simple (type échelon par exemple). Grâce à cela, une étude approfondie de la régulation RST a permis de définir des coefficients de régulation précis, et de modéliser le système sous Scilab.

De plus, le décrochage de l’ampli audio a été corrigé ainsi que l’ajout d’un filtre adoucisseur pour réduire le bruit présent sur le signal issu de la chaine des convertisseurs.

1.4. Gestion de projet

Dans l’idée de s’organiser de la meilleure façon possible, nous avons découpé les taches principales du projet selon la trame suivante, à l’aide d’un organigramme des taches du projet selon le modèle WBS (Work Breakdown Structure) :


Figure 3 : WBS

Ensuite, à l’aide du diagramme de GANTT ci-dessous, nous pouvons voir la répartition temporelle des tâches en fonction des ressources disponibles. A savoir que le prise en main du projet et la mise en œuvre de la chaine de développement a constitué la majeure partie du planning initial.


Figure 4 : planning de GANTT

<-- Wiki

2. Identification du modèle des galvanomètres -->

CDC.jpg (63.4 KB) Jordan PONSARD, 01/28/2021 01:51 PM

ExplicationCDC.jpg (33.9 KB) Jordan PONSARD, 01/28/2021 02:00 PM

SystemePhysique.jpg (18.1 KB) Jordan PONSARD, 01/28/2021 02:06 PM

WBS.jpg (45 KB) Jordan PONSARD, 01/28/2021 02:19 PM

Gantt.jpg (88.1 KB) Jordan PONSARD, 01/28/2021 02:20 PM