IMA5 2019/2020 P05 : Différence entre versions
(→Semaine 13) |
(→Résultats de REM) |
||
(26 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 326 : | Ligne 326 : | ||
<p align="justify"> | <p align="justify"> | ||
− | [[Fichier:IMA5P4A1920. | + | [[Fichier:IMA5P4A1920.jpg|1020px|thumb|center|Calendrier prévisionnel de type Gant (Planning prévu en rouge et réalisé en vert)]] |
</p> | </p> | ||
<BR \> | <BR \> | ||
Ligne 571 : | Ligne 571 : | ||
Par la même occasion, j'ai pu effectuer mes derniers contrôles du PCB et on peut la voir comme ci dessous : | Par la même occasion, j'ai pu effectuer mes derniers contrôles du PCB et on peut la voir comme ci dessous : | ||
[[Fichier:IMA5P5A1920_PCB.jpg| 600px | center | thumb | Carte du système]] | [[Fichier:IMA5P5A1920_PCB.jpg| 600px | center | thumb | Carte du système]] | ||
+ | |||
+ | J'ai ensuite voulu burn le bootloader sur mon microprocesseur en utilisant une carte Arduino Uno et en connectant leurs ICSP respectifs (sauf la pin Reset du PCB branchée à la pin 10 de l'arduino Uno) mais sans succès. Après beaucoup de temps à investiguer sur le potentiel problème et en vérifiant une fois de plus les connections, j'ai pu me rendre compte que mon microprocesseur était soudé à l'envers, erreur du au fait qu'une via était placé sur un coin de l'ATMega et j'ai donc du la prendre pour le point de référence lorsque j'ai soudé le composant. J'ai donc du la dé souder en utilisant la station à air chaud de Mr Flamand mais après avoir retesté le composant, j'ai découvert que l'ATmega avait brûlé. J'ai donc recommandé un autre processeur rapidement. | ||
+ | J'ai reçu le composant en fin de semaine et me suis empressé de le souder sur la carte afin de pouvoir faire fonctionner mon module. | ||
+ | ====REM==== | ||
+ | J'ai aussi voulu mettre au propre les équations de la REM qui sont donc notées comme suivi : | ||
+ | *[[Fichier:IMA5P4A1920_REM2_file.pdf | Equations et explications concernant REM]] | ||
+ | Suite à cela, on semble obtenir des résultats résonables à travers la simulation sous Matlab. | ||
+ | [[Fichier:IMA5P5A1920_REMDIR.png| 600px | center | thumb | Chaîne directe du système]] | ||
+ | Dans cette première partie, on s'intéresse donc à représenter le système complet afin de pouvoir identifier et simuler tout ses paramètres le plus fidèlement possible. La plupart des paramètres sont situés dans le fichier init de matlab ou dans l'analyse de la REM mise en lien précédemment. Si on se base sur une vitesse de 12200 tours/min pour le moteur, on a une vitesse de 0.87m/s si on compare avec les résultats obtenus, on retrouve bien ces valeurs dans la simulation : | ||
+ | [[Fichier:IMA5P5A1920_Vitrot.png| 600px | center | thumb |Courbe de vitesse du moteur en rad/s en fonction du temps sous 3V]] | ||
+ | [[Fichier:IMA5P5A1920_Vitlin.png| 600px | center | thumb | Courbe de vitesse du véhicule en m/s en fonction du temps sous 3V]] | ||
+ | Une fois la chaîne directe réalisée, il faut ensuite réalisé la chaîne de retour qui va permettre la régulation du système. Cette chaîne de retour s'oopère comme une boucle fermée de régulation classique et va avoir pour but de récupérer la vitesse du véhicule et appliquer une commande en vitesse au système. | ||
+ | [[Fichier:IMA5P5A1920_REMRET.png| 600px | center | thumb | Chaîne de retour du système]] | ||
+ | |||
+ | Cette partie nécessite un capteur de vitesse du véhicule afin de pouvoir être démontrée dans la réalité, elle correspond aussi à la partie "code" de la traduction de commande de vitesse en permettant de réguler le rapport cyclique du driver. Elle n'est pas encore opérationnelle bien que la plupart du travail théorique a été réalisé dans le document contenant les équations du système. Mais sans capteur de vitesse ajouté au système, il n'était pas primordial de poursuivre sur cette voie. | ||
</p> | </p> | ||
− | == | + | === Semaine 13=== |
+ | <p align="justify"> | ||
+ | Une fois le microprocesseur soudé, j'ai voulu refaire le burn de mon Atmega mais toujours sans succès. J'ai donc poursuivi mes investigations en me demandant cette fois ci si l'erreur ne provenait pas de l’oscillateur à quartz que j'utilisait pour la première fois. J'ai donc vérifié que sa fréquence était bien de 16MHz ce qui était le cas. J'ai ensuite cherché un programme permettant de burn l'ATMega sans utilisé l'horloge mais le résultat était toujours le même. J'ai donc poursuivi les investigations en voulant changer de quartz (déssouder et replacer un quartz classique pour effectuer des tests mais il m'a fallu faire la rédaction du rapport et la préparation de la soutenance ce qui a prit le plus clair de mon temps lors de cette semaine. J'ai néanmoins tenté des tests supplémentaires notamment sur le reste du circuit et sur la cellule photovoltaïque avec le MPPT sur le peu de temps restant. | ||
+ | </p> | ||
+ | |||
+ | == Progression post soutenance == | ||
+ | |||
+ | <p align="justify"> | ||
+ | |||
+ | Suite à la soutenance et en accord avec Mr Chevalier, j'ai poursuivi le projet afin de réaliser les différentes parties non finalisées. | ||
+ | |||
+ | J'ai donc commencé par changer la pin de connexion de l'horloge (passant de XTAL2 à XTAL1). Suite à cela le bootloader a semblé s'opérer avec succès. | ||
+ | Le programme utilisé lors de cette opération est le suivant : [http://www.gammon.com.au/forum/?id=11635 lien bootload] ce programme a pour avantage de vérifier les résultats du bootload afin de s'assurer de la réussite de l'installation. | ||
+ | [[Fichier:IMA5P5A1920_BOOT.png| 600px | center | thumb | Vérification du bootload]] | ||
+ | Après avoir réalisé le bootload de la carte, j'ai voulu téléverser mon programme sur celle ci. mais une erreur récurrente est alors apparu : </p> | ||
+ | |||
+ | avrdude: stk500_recv(): programmer is not responding | ||
+ | avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xb9 | ||
<p align="justify"> | <p align="justify"> | ||
− | + | ||
− | + | ||
− | * | + | Lors de la phase de tests, les programmes se téléchargeaient sans soucis mais il m’était impossible d’obtenir une tension au niveau du driver moteur. En remontant à la source, j’ai découvert que le problème venait certainement de mes deux sélecteurs de puissance qui permettent le changement de type d’énergie utilisé. En essayant de corriger le problème en isolant les broches (notamment la broche d’erreur qui touchait la masse du fait de la petite taille du composant), j’ai pu faire fonctionner la chaîne liée à la cellule photovoltaïque. La partie batterie quant à elle, le sélecteur ne renvoyant pas de signal d’erreur (signalant un surplus de courant ou un court-circuit), j’en ai conclu qu’il était détruit et en ai donc recommandé un autre. En changeant de composant et en plaçant un morceau de scotch sous la broche d’erreur (pour éviter le contact entre la masse et la broche) j’ai pu avec plaisir constater que l’ensemble de la carte fonctionnait. |
− | * | + | |
− | * | + | Actuellement nous avons donc une gestion de l’alimentation fonctionnelle sur la carte. Pour le moment, le programme consiste à vérifier que la puissance fournie par la cellule photovoltaïque n’est pas trop faible pour alimenter le moteur (la valeur a été déterminé par tests successifs) et l’on essaie de fixer la tension maximale acceptable par le moteur (3V) à son entrée. D’une part à l’aide du capteur de tension pour la cellule photovoltaïque et on réajuste si dépassement à 3V et d’autre part à l’aide d’un proportionnel pour la batterie de 9V et délivrant du 5V au système. Il est aussi possible de lire la tension et le courant fournis par la cellule photovoltaïque grâce à l’Arduino ce qui permet d’avoir une bonne estimation de la puissance fournie par la cellule photovoltaïque. |
+ | |||
+ | Les améliorations futures pour ce prototype sont les suivantes : | ||
+ | *Ecarter les via des composants afin de pouvoir souder celles-ci loin des autres zones « à risque » du système et d’ainsi créer des courts circuits. | ||
+ | *Retirer la via sous le microprocesseur afin de souder au four les composants CMS | ||
+ | *Ajouter deux ports afin d’ajouter la régulation en vitesse du système à l’aide d’un codeur incrémental ou de roues codeuses ou tout autre capteur de vitesse. | ||
+ | *On peut changer l’horloge pour une horloge plus classique (quartz et deux capacités de charge) afin d’avoir moins d’encombrement sur la carte. | ||
+ | *Sortir toutes les broches de l’ATMEGA328p afin de pouvoir ajouter des modules facilement en cas de modification. | ||
+ | *Faire le mode marche arrière en connectant la pin 7 du driver moteur à la même broche que la pin 2 et ajouter un contrôle afin de sélectionner la puissance (ajouter deux sélecteurs comme pour les chaînes d’alim afin de n’avoir qu’une seule entrée alimentée en tout temps. | ||
+ | |||
+ | |||
+ | |||
</p> | </p> | ||
Ligne 597 : | Ligne 640 : | ||
<p align="justify"> | <p align="justify"> | ||
*[[Fichier:RapportIMA5P5A1920.pdf|Rapport de projet de fin d'études]] | *[[Fichier:RapportIMA5P5A1920.pdf|Rapport de projet de fin d'études]] | ||
+ | *[[Fichier:RapportV2IMA5P5A1920.pdf|RapportV2 de projet de fin d'études]] | ||
*[[Fichier:Diaposoutenance.pdf|Soutenance de projet de fin d'études]] | *[[Fichier:Diaposoutenance.pdf|Soutenance de projet de fin d'études]] | ||
*[[Fichier:Matlab_REM.zip|Fichiers Matlab de la REM]] | *[[Fichier:Matlab_REM.zip|Fichiers Matlab de la REM]] | ||
*[[Fichier:EagleIMA5P5A1920.zip|Fichiers Eagle de la carte de commande]] | *[[Fichier:EagleIMA5P5A1920.zip|Fichiers Eagle de la carte de commande]] | ||
+ | *[[Fichier:ArduinoIMA5P5A1920.zip|Fichiers Arduino de la carte]] | ||
+ | [https://drive.google.com/file/d/1UyOmG_69Uomg36RvAfrOPGk4S-oqocfq/view?usp=sharing Vidéo de fonctionnement du robot] | ||
</p> | </p> |
Version actuelle datée du 6 février 2020 à 02:51
Sommaire
- 1 Présentation générale
- 2 Réalisation du Projet
- 2.1 Introduction
- 2.2 Progression post soutenance
- 2.3 Documentation
- 2.4 Archives
Présentation générale
- Nom du projet : Étude d'un système mécatronique piloté par Arduino
- Membre du projet : Hugo Delbroucq
- Superviseurs du projet : Mr Florian Chevalier
- Résumé :À partir d'un assortiment robotique comprenant un motoréducteur et différentes roues et engrenages, le but de ce projet est de proposer un moyen de contrôler le fonctionnement d'un système mécatronique comme un véhicule électrique. Le travail consiste à piloter le moteur électrique à partir d'un Arduino en régulant par exemple la vitesse, à partir d'une consigne et des données des différents capteurs du système. Le développement d'un banc de test contrôlé de manière indépendante, avec mesure de vitesse et contrôle du couple appliqué sur les roues du véhicule permettra d'en évaluer complètement les performances.
Description
L'objectif de ce projet est de réaliser le banc de caractérisation d'un système électromécanique, par exemple un véhicule électrique. La caractérisation effectuée sur le système doit ensuite être utilisée pour établir différents modes de consommation (priorité sur la vitesse, priorité sur l'optimisation du rapport vitesse/consommation,...). Une fois ces différents modes ainsi que leurs points de fonctionnement établis, il faut ensuite tester ces modes sur un système réel afin de confirmer ou non le fonctionnement de cette méthode. En plus de cela, deux types d'alimentations pourront être présents sur le système étudié. Il faudra donc ajouter à ces modes de fonctionnement un paramètre de sélection du type d'alimentation ( dans notre cas une batterie de type pile de 9V et une cellule photovoltaïque de 5V.). Une fois la méthode de caractérisation et la stratégie réalisée sur le véhicule, il serait conseillé de tester cette méthode sur un autre système afin de confirmer la véracité de celle ci. L'idéal serait donc de se rapprocher du fabricarium de Polytech Lille à la fin du projet afin de réaliser des tests sur un de leurs systèmes.
Objectifs
Le but de ce projet est de proposer une méthode à travers un banc de caractérisation afin d'identifier les différentes propriétés électriques et mécaniques d'un système mécatronique. Ce projet va se dérouler en effectuant les étapes suivantes :
- Concevoir le système mécatronique avec le matériel fournit par l'encadrant
- Concevoir le banc de caractérisation
- Analyser les différentes valeurs obtenues du système
- Proposer différents modes de contrôle de ce véhicule et les implémenter à l'aide d'une carte arduino
- Faire une carte de type PCB afin de contrôler le véhicule au lieu d'utiliser une carte arduino
- Ajouter une alimentation de type panneau solaire et définir un mode d'utilisation énergétique, puis ajouter ce mode dans la carte de commande.
Choix techniques : matériel et logiciel
Matériel à disposition : | ||||
---|---|---|---|---|
Description | Fournisseur | Nombre | Lien | Photo |
Assortiment robotique 917D14 | GoTronic | 1 | assortiment robotic | ![]() |
Carte de puissance | GoTronic | 1 | ||
Board Arduino | GoTronic | 1 | ||
BreadBoard | 1 | |||
Câbles Dupont | 30 | ![]() | ||
Cellule Solaire | GoTronic | 1 | [1] |
Matériel nécessaire au projet | |||||
---|---|---|---|---|---|
Description | Fournisseur | Nombre | Prix(unité) | Numéro Fabricant | Lien externe |
L293B | Mouser | 8 | 3.36 € | 511-L293B | [2] |
ATMEGA328P-AU | Mouser | 1 | 1.86 € | 556-ATMEGA328P-AU | [3] |
Quartz 16MHz | Magazin Polytech | 1 | NCT050C | [4] | |
header 1*5 | Mouser | 1 | 0.648 € | CES-105-01-TS | [5] |
pin header 2x3 icsp | Mouser | 1 | 0.414 € | M20-9970345 | [6] |
pin header 1x2 alim | Mouser | 1 | 0,189 € | 3-644456-2 | [7] |
Amplificateur opérationnel | Mouser | 8 | 0.45 € | TL082CDT | [8] |
Régulateur tension panneau solaire | Mouser | 1 | 2.84 € | SPV1040TTR | [9] |
Régulateur alimentation moteur | Mouser | 1 | 0.558 € | TLV75530PDBVR | [10] |
Régulateur tension arduino | Mouser | 1 | 4.89 € | REG104GA-5-2K5 | [11] |
diode | Mouser | 4 | 0.342 € | 78-VS-1ENH01-M3/84A | [12] |
led | Mouser | 2 | 0.477 € | 599-0091-007F | [13] |
Pile 9V | Mouser | 2 | 2.33€ | 658-6LF22XWA/C | [14] |
Connecteur Pile | Mouser | 1 | 0.57€ | 534-84-4 | [15] |
Inductance de puissance | Farnell | 1 | 2.22€ | 1008PS-333KLB | [16] |
C0603 1nF | Mouser | 5 | 0.324 € | C0603X102K5RAC3316 | [17] |
C0603 4.7uF | Mouser | 5 | 0.261 € | C1608X5R1A475K080AE | [18] |
C0603 10pF | Mouser | 5 | 0.216 € | C0603C100K4GACTU | [19] |
C0603 10nF | Mouser | 5 | 0.378 € | C0603X103K1RAC3316 | [20] |
C0603 22nF | Mouser | 5 | 0.522 € | C0603S223J5RACAUTO | [21] |
C0603 22pF | Mouser | 5 | 0.207 € | C0603C220J5GAC7411 | [22] |
C0603 100pF | Mouser | 5 | 0.207 € | 80-C0603C101G1HACTU | [23] |
C0603 100nF | Mouser | 5 | 0.243 € | C0603C104K5RAC3121 | [24] |
R0603 3k3 | Mouser | 5 | 0.09 € | CRCW06033K30FKEAC | [25] |
R0603 10k | Mouser | 10 | 0.135€ | 660-RN73R1JTD1002B50 | [26] |
R0603 2k | Mouser | 5 | 0.09 € | 71-CRCW06032K00FKEAC | [27] |
R0603 100k | Mouser | 5 | 0.657 € | 754-RGT1608P104BT5 | [28] |
R0603 20k | Mouser | 10 | 0.423 € | 660-RN73R1JTD2002B25 | [29] |
R0603 25m | Mouser | 2 | 0.531 € | 588-LVM06FTR025E-TR | [30] |
Switch alim | Mouser | 2 | 1.26 € | TPS2051BDBVR | [31] |
Total | 112 | 75.33 € |
Liste des tâches à effectuer
Calendrier prévisionnel
Réalisation du Projet
Introduction
Après un premier rendez vous avec Mr. Florian Chevalier, nous avons pu fixer les différentes limites et possibilités de ce sujet et notamment ajouter la difficulté d'avoir deux sources d'alimentation différentes. J'ai aussi pu obtenir un kit de départ qui sera la base de ce projet, à savoir un kit mécatronique composé d'un moteur à courant continue, plusieurs sets de roues et d'engrenages et une cellule photovoltaïque afin de créer un premier prototype de véhicule électrique.
Cahier des charges
Semaine 1
Identification du moteur présent dans le kit
D'après la datasheet le moteur que nous allons utiliser est un moteur à courant continu avec un mode opérationnel allant de 1.5V à 3V (0.2A à 0.8A) Le moteur est un RE140 à 3 poles (https://www.mfacomodrills.com/pdfs/RE140and140-1.pdf). Le moteur est relativement petit dans notre cas, ce qui nous permet d'identifier le k*phi à une constante que l'on peut retrouver à l'aide de la table fournie avec la datasheet. La table de réduction suivante est donnée en fonction de différents rapports de réduction :
Table de réduction (tour par min) : | ||
---|---|---|
Rapport de réduction | 1,5V | 3V |
4 : 1 | 1850 | 3700 |
16 : 1 | 462 | 925 |
64 : 1 | 115 | 231 |
256 : 1 | 29 | 57 |
1024 : 1 | 7 | 14 |
4096 : 1 | 2 | 4 |
Néanmoins, on peut lire sur le site GoTronic les caractéristiques suivantes :11700 tour/min pour un rapport de 1 : 1 (contrairement à ce que laisse supposer la table de réduction fournie avec le kit) (lien du moteur) Il faudra donc vérifier ses caractéristiques. Afin de vérifier cette table, nous allons maintenant coupler (avec un rapport de réduction 1 : 1 une roue à ce moteur. Cette méthode pourra être ensuite réutilisé pour la création du banc de caractérisation. 3 méthodes sont possibles dans l’immédiat :
- 1. Calculer le rayon de la roue puis calculer la distance parcourue par celle ci en une minute afin de retrouver par calcul le nombre de tour en une minute(nécessite de l'espace)
- 2. Utiliser un marqueur sur la roue et compter manuellement le nombre de tours par minutes (Plus simple mais moins précis)
- 3. Utiliser un stroboscope, lorsque la roue paraîtra immobile, la fréquence du stroboscope et la fréquence de rotation de la roue seront alors en correspondance, ce qui permettra de calculer le nombre de tours par min de la roue (solution optimale)
Détermination des paramètres du système à étudier
Nous allons maintenant retourner sur l'étape principale de notre sujet, établir la méthode de caractérisation. Afin de réaliser le banc de caractérisation, il est nécessaire de définir les différentes caractéristiques à caractériser. Pour cela, le mieux est de représenter notre système à l'aide d'une représentation énergétique macroscopique(R.E.M). Cette représentation sert à simuler le fonctionnement de notre système et observer les différents échanges énergétiques entre ses différentes parties en exprimant ces interactions sous forme mathématique. Les inconnues et les différentes variables de ce système nous permettront donc de lister les différents paramètres requis pour le banc de caractérisation. Une fois cela fait et validé, il faudra alors mener des tests pratiques sur le sujet.
Semaine 2
Cette semaine a pour objectifs de réaliser le plan de travail pour les prochains mois ainsi que la commande de matériel. La séparation des tâches sera présente en début du wiki.
Carte de commande
Pour rappel, le système à piloter et à tester est un véhicule électrique à 4 roues. Le moteur est un moteur à courant continu (MCC). Afin de pouvoir faire la commande des composants, j'ai réalisé un schéma rapide de la potentielle carte qui aura surement plusieurs modifications au fil des prochaines semaines. Fichier:IMA5P4A1920 V1.pdf Tout d'abord nous allons exploiter un driver de moteur L293B afin d'avoir un courant suffisant pour alimenter le moteur. Ce driver a pour particularité de pouvoir délivrer un courant maximal de 1A au lieu de 0.6 pour son cousin le L293D. Néanmoins sa tension de sortie minimale est de 5V. Afin d'atteindre les 3V max du moteur à courant continu il va nous falloir instaurer une limite au niveau de la pin de contrôle du L293B. La valeur moyenne envoyée devra en effet être de (3*256)/Ualim. On peut voir ci dessous le schéma logique associé au L293D est le suivant :
Sur ce driver on peut installer entre deux et 4 moteurs comme le décrit le schéma plus haut, la moitié gauche du montage consiste en une commande bidirectionnelle du moteur permettant d'installer jusqu'à deux moteurs et la partie droite à un montage monodirectionnelle permettant d'installer deux fois plus de moteurs soit 4. Dans notre cas de figure, le montage s'effectue comme sur la moitié gauche du schéma car nous possédons un seul moteur que l'on souhaite contrôler de manière bidirectionnelle. Les diodes sur le schéma peuvent être ajoutées mais sont supposées optionnelles d'après la datasheet.
Il restera notamment à prendre en compte les composants actifs dans la liste de matériel pour la possible recharge de la batterie à l'aide d'une cellule photovoltaïque.
Semaine 3
Cellule photovoltaique
Pour ce qui est de la cellule photovoltaique, c'est une cellule 3 Watts délivrant une tension de 5,5 Vcc sous 540 mA. La tension peut néanmoins atteindre jusque 10V en pointe, il faudra donc prendre en compte cela dans la réalisation du système. L'idéal serait de placer deux cellules en parallèle afin de doubler le courant pour être certain d'avoir suffisamment de courant pour alimenter le moteur avec seulement la cellule. L'autre solution est de recharger une seconde batterie à l'aide du panneau solaire puis d'utiliser cette seconde batterie lorsque suffisamment rechargée. Dans le cas de l'utilisation unique de cellules photovoltaïques,
- on peut soit faire un système simple qui consisterait à placer deux diodes à chacune des alimentations (pile et cellule) pour empêcher un retour et la tension la plus élevée devrait prendre le pas sur l'autre pour ainsi fournir la tension la plus élevée.
- Dans un second cas on peut réaliser un commutateur entre nos deux sources d'alimentation. En vérifiant constamment l'état du panneau solaire en récupérant ses valeurs de courant/tension avec le microprocesseur il est alors possible de réaliser une stratégie de gestion énergétique du véhicule que le microprocesseur pourrait renvoyer au commutateur en temps réel. Les premiers schémas de ce système sont notés ci dessous :
Semaine 4
Lors de cette semaine, je me suis intéressé au montage du véhicule électrique. A l'aide des différentes pièces présentes dans le kit, j'ai tout d'abord utilisé le moteur couplé à un rapport de "256:1" répartis sur 2 grandes tiges métalliques faisant office d'arbre d'inertie. Au bout de la plus longue tige, une vis infinie permet l'entrainement d'un engrenage placé sur l'essieux avant du véhicule. Après avoir alimenté le moteur à l'aide de la pile de 1.5V fournie avec le kit, j'ai constaté que le moteur ne parvenait pas à entraîner l'essieux. Après avoir vérifier la tension aux bornes de la pile, j'ai pu relevé 1.2V. On peut toujours considérer la pile comme fiable même si sa valeur est relativement faible (permet le fonctionnement sans force s'appliquant sur l'arbre). La raison vient du fait que le couple fourni par le moteur n'est pas suffisant pour entraîner l'essieux. Le premier prototype reliait les essieux et le châssis à l'aide d'une chaîne, cela avait pour effet de presser l'engrenage essieux contre la vis infini ajoutant une force sur la tige en métal servant d'arbre pour la rotation et renforçant ainsi les forces de contrainte ( demandant donc un couple plus grand pour démarrer le moteur.). De plus, la tige représentant l'arbre était relativement longue, je l'ai donc remplacé par une tige plus courte permettant d'éviter un effet bras de levier trop important sur celle ci. J'ai ensuite remplacé la chaîne par des équerres permettant de fixer le tout au châssis sans appliquer trop de pression sur la vis infinie. Bien que l'on puisse observer des améliorations, le résultats est toujours non satisfaisant. Après en avoir discuté avec Monsieur Chevalier, ses propositions d'amélioration possibles seraient de me renseigner sur l'orientation que l'engrenage sur l'essieux doit avoir par rapport à la vis infinie afin de faciliter l'entraînement de celui ci. De plus, ci cela ne donne toujours rien, il faudrait attendre le driver moteur afin de voir si un changement d’alimentation peut résoudre le problème. Le prototype actuel est donc de la forme suivante :
Semaine 5 et 6
Lors de cette semaine, j'ai pu poursuivre le développement des différentes parties du circuit. Notamment, j'ai pu travailler sur la simulation de mes capteurs de courant et de tension qui auront pour but d'observer les valeurs de sortie de ma cellule photovoltaïque. Pour cela, j'utilise un pont diviseur de tension pour récupérer la tension du système (la tension peut monter jusque 10V en pic, il vaut mieux la réduire à l'aide de ce pont diviseur pour plus de sécurité) et un montage de type "high side current sensing". La partie capteur de tension est donc réalisée simplement en lisant la tension aux bornes du système comme on peut le voir ci dessous à l'aide de LTSPICE :
Pour la partie lecture de courant, j'ai tout d'abord voulu réaliser un montage de type low side current sensing qui consiste à placer la résistance de mesure entre la source de courant et la masse. Cette méthode semble comporter plusieurs issues et j'ai par la suite appris à l'aide de Mr Chevalier qu'il était possible de réaliser le montage d'une autre manière. Un montage en high side current sense est donc plus conseillé, si on s'appuie sur la documentation faite par microchip sur le sujet, on peut voir différents montages. La figure présentée ci dessous est celle qui nous intéresse le plus :
le courant maximal supposé est de 0.8A pour le moteur. On simule le moteur par une source de courant de 0.8A et on reprend ensuite le montage conseillé par microchip.
On a bien la valeur désirée en sortie de 0.8A*0.025ohm = 0.02V, on peut donc lire de cette façon notre valeur de courant passant dans notre cellule photovoltaïque et allant au moteur. Suite à cela, j'ai pu terminer la liste du matériel nécessaire ainsi que la réalisation du schématique de la carte.
Semaine 7 et 8
Nous allons lors de ces deux semaines nous intéresser à :
- la représentation énergétique macroscopique (R.E.M). Tout d'abord, la REM permet de définir la notion d'action-réaction au niveau énergétique d'un système. Le produit de ces actions est toujours une valeur de puissance. De cette R.E.M nous allons pouvoir tirer 2 avantages principaux :
- 1. Définir les valeurs à caractériser
- 2. A l'aide de la commande par inversion, pouvoir déterminer et exprimer sous formule mathématique notre stratégie de commande du système.
- Mais surtout à la finalisation de la carte de puissance :
J'ai pu confirmer avec mon tuteur le matériel à commander. Tout a pu être validé mis à part l'horloge qui m'a été refusé car une autre version était apparemment disponible à Polytech. J'ai pu opérer aux dernières modifications du schématique de la carte de puissance du véhicule. Le seul gros changement a été le remplacement du quartz "classique" que l'on branche à chaque borne "XTAL1 et XTAL2" du microprocesseur par un oscillateur à quartz envoyant un signal "True TTL" et alimenté en 5V. Je n'avais jamais vu ce type de quartz auparavant mais celui ci semble être plus robuste qu'un quartz classique ce qui pourrait donc améliorer le signal. Après un temps de recherche, j'ai finalement pu voir que la différence de branchement était mineur comme on peut le voir sur la figure ci dessous :
Comme on peut le voir, le montage qui nous intéresse est celui de gauche. Il faut donc placer XTAL1 à la masse et XTAL2 sur la broche de sortie de l'oscillateur. L'avantage de cet oscillateur est qu'il incorpore directement les capacités qui servent à actionner le quartz, son autre utilité semble être d'être utilisé pour certaines prises de mesures. La première finalisation de la carte de contrôle est donc la suivante :
Choix lors de la conception de la carte
Le câblage reprend le placement proposé sur le schématique, sur la gauche se trouvent les différentes sources d'alimentation, sur la droite se trouve les modes de communication et enfin sur la partie inférieur se trouve les pins de sortie pour le moteur. Un plan de masse est présent de chaque côté de la carte afin de faciliter le lien entre toutes les masses. Pour ce qui est des tailles de piste,elles varient entre 0.3mm et 1mm, les plus grosses étant pour les pistes transportant la puissance.
Semaine 9
Lors de cette semaine j'ai pu apporter des modifications au schématique, notamment l'ajout du MPPT en sortie de la cellule photovoltaïque que j'avais oublié de placer. L'avantage de ce régulateur MPPT est qu'il permet une augmentation du rendement de la cellule photovoltaïque. Le MPPT utilise un algorithme dichotomique afin de trouver la valeur de puissance maximale en fonction de la tension utilisée. Une fois les corrections apportées au schéma de la carte j'ai alors pu réaliser son impression. J'ai aussi pu préparer un premier schéma de représentation énergétique macroscopique. Le schéma est de la forme suivante :
Les équations utilisaient pour cette première représentation sont les équations suivantes : Fichier:IMA5P4A1920 REM file.pdf
Une fois cette représentation faite ainsi que les équations préparées je me suis rapproché de Mme Semail afin de confirmer ou affirmer cette représentation pour ensuite travailler à la corriger.
Semaine 10 et 11
Mis à part un problème de plan de masse ( oublie d'ajouter de l'espacement entre la découpe carte et le plan de masse) qui au niveau macroscopique formait une antenne et pouvait perturber la carte ainsi que quelques via mal découpés, la carte est sortie en bon état. La plupart de mes composants sont arrivés le 14 novembre mais il me reste quelques derniers composants sensés arriver lors de cette semaine. J'ai aussi pu voir Mme Semail avec qui j'ai pu discuter de l'actuelle représentation et beaucoup de choses étaient à revoir.
- 1. La principale erreur concerne la cellule photovoltaïque. Au lieu d'être une source tension, la cellule est en fait une source de courant ce qui modifie la causalité du schéma. J'ai donc du modifier la représentation sans oublier cette fois ci le régulateur mppt qui permet comme on pourra le voir sur la nouvelle représentation une inversion de la causalité afin d'obtenir deux tensions en entrée du sélecteur.
- 2. Sur la première modélisation j'avais des doutes sur comment représenter les pertes liées à l'axe de rotation ainsi que le système vis écrou du système. Après discussion, la meilleure solution est de rajouter un rendement sur le couple de retour afin d'avoir effectivement une perte. On pourra simuler cette perte à l'aide du système réel .
- 3. A la fin de ma première représentation, j'ai oublié d'appliquer le principe fondamental de la dynamique qui permet de faire entrer en jeu la masse M du système. Le soucis est qu'en ajoutant ce bloc dans la représentation, un problème de causalité apparaît, on souhaite une force en entrée de notre bloc représentant le PFD afin d'avoir notre vitesse en sortie mais à la place nous avons une vitesse. La solution est de concaténer puis déplacer nos blocs afin de résoudre ce problème de causalité. Le but est donc d'exprimer les équations internes au système en fonction des entrées/sorties du nouveau bloc voulu afin de pouvoir compenser ce changement dans la chaîne de puissance.
Semaine 12
Lors de cette semaine je me suis occupé de souder la carte avec les composants que j'ai pu recevoir. J'ai remarqué en retard que j'avais placé des via sous certains composants smd en oubliant que les cartes imprimées à Polytech nécessitent de souder les via à l'aide de fil de cuivre. Cela m'a donc incité à tout souder à la main à m'aide de flux et d'étain au plomb au lieu d'utiliser le four. Cette partie m'a pris 3 jours à réaliser le temps de régler les courts circuits en vérifiant continuellement la continuité des pistes à chaque étape à l'aide d'un multimètre. C'est notamment à ce moment que j'ai pu me rendre compte que certaines pistes étaient mal découpées, cela du au fait que la carte est assez petite, la précision software et hardware étant différentes, j'ai du moi même retirer le cuivre liant la masse et une piste par exemple à l'aide d'un cutter. Le reste s'est déroulé sans trop de problème. Il reste maintenant à placer la carte sur le module et tester la stratégie d'alimentation du véhicule.
Semaine 13
Lors de cette semaine j'ai pu poursuivre l'identification de mes valeurs sur le système afin de parfaire la simulation sous Matlab. Il existe encore quelques éléments aberrants lors de la simulation de la chaîne direct par rapport à ce que l'on peut observer en effectuant des tests sur le moteur à l'aide de la breadboard, de la pile et du driver moteur qui me permettent actuellement de tester mon moteur. Par la même occasion, j'ai pu effectuer mes derniers contrôles du PCB et on peut la voir comme ci dessous :
J'ai ensuite voulu burn le bootloader sur mon microprocesseur en utilisant une carte Arduino Uno et en connectant leurs ICSP respectifs (sauf la pin Reset du PCB branchée à la pin 10 de l'arduino Uno) mais sans succès. Après beaucoup de temps à investiguer sur le potentiel problème et en vérifiant une fois de plus les connections, j'ai pu me rendre compte que mon microprocesseur était soudé à l'envers, erreur du au fait qu'une via était placé sur un coin de l'ATMega et j'ai donc du la prendre pour le point de référence lorsque j'ai soudé le composant. J'ai donc du la dé souder en utilisant la station à air chaud de Mr Flamand mais après avoir retesté le composant, j'ai découvert que l'ATmega avait brûlé. J'ai donc recommandé un autre processeur rapidement. J'ai reçu le composant en fin de semaine et me suis empressé de le souder sur la carte afin de pouvoir faire fonctionner mon module.
REM
J'ai aussi voulu mettre au propre les équations de la REM qui sont donc notées comme suivi :
Suite à cela, on semble obtenir des résultats résonables à travers la simulation sous Matlab.
Dans cette première partie, on s'intéresse donc à représenter le système complet afin de pouvoir identifier et simuler tout ses paramètres le plus fidèlement possible. La plupart des paramètres sont situés dans le fichier init de matlab ou dans l'analyse de la REM mise en lien précédemment. Si on se base sur une vitesse de 12200 tours/min pour le moteur, on a une vitesse de 0.87m/s si on compare avec les résultats obtenus, on retrouve bien ces valeurs dans la simulation :
Une fois la chaîne directe réalisée, il faut ensuite réalisé la chaîne de retour qui va permettre la régulation du système. Cette chaîne de retour s'oopère comme une boucle fermée de régulation classique et va avoir pour but de récupérer la vitesse du véhicule et appliquer une commande en vitesse au système.
Cette partie nécessite un capteur de vitesse du véhicule afin de pouvoir être démontrée dans la réalité, elle correspond aussi à la partie "code" de la traduction de commande de vitesse en permettant de réguler le rapport cyclique du driver. Elle n'est pas encore opérationnelle bien que la plupart du travail théorique a été réalisé dans le document contenant les équations du système. Mais sans capteur de vitesse ajouté au système, il n'était pas primordial de poursuivre sur cette voie.
Semaine 13
Une fois le microprocesseur soudé, j'ai voulu refaire le burn de mon Atmega mais toujours sans succès. J'ai donc poursuivi mes investigations en me demandant cette fois ci si l'erreur ne provenait pas de l’oscillateur à quartz que j'utilisait pour la première fois. J'ai donc vérifié que sa fréquence était bien de 16MHz ce qui était le cas. J'ai ensuite cherché un programme permettant de burn l'ATMega sans utilisé l'horloge mais le résultat était toujours le même. J'ai donc poursuivi les investigations en voulant changer de quartz (déssouder et replacer un quartz classique pour effectuer des tests mais il m'a fallu faire la rédaction du rapport et la préparation de la soutenance ce qui a prit le plus clair de mon temps lors de cette semaine. J'ai néanmoins tenté des tests supplémentaires notamment sur le reste du circuit et sur la cellule photovoltaïque avec le MPPT sur le peu de temps restant.
Progression post soutenance
Suite à la soutenance et en accord avec Mr Chevalier, j'ai poursuivi le projet afin de réaliser les différentes parties non finalisées. J'ai donc commencé par changer la pin de connexion de l'horloge (passant de XTAL2 à XTAL1). Suite à cela le bootloader a semblé s'opérer avec succès. Le programme utilisé lors de cette opération est le suivant : lien bootload ce programme a pour avantage de vérifier les résultats du bootload afin de s'assurer de la réussite de l'installation.
Après avoir réalisé le bootload de la carte, j'ai voulu téléverser mon programme sur celle ci. mais une erreur récurrente est alors apparu :avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xb9
Lors de la phase de tests, les programmes se téléchargeaient sans soucis mais il m’était impossible d’obtenir une tension au niveau du driver moteur. En remontant à la source, j’ai découvert que le problème venait certainement de mes deux sélecteurs de puissance qui permettent le changement de type d’énergie utilisé. En essayant de corriger le problème en isolant les broches (notamment la broche d’erreur qui touchait la masse du fait de la petite taille du composant), j’ai pu faire fonctionner la chaîne liée à la cellule photovoltaïque. La partie batterie quant à elle, le sélecteur ne renvoyant pas de signal d’erreur (signalant un surplus de courant ou un court-circuit), j’en ai conclu qu’il était détruit et en ai donc recommandé un autre. En changeant de composant et en plaçant un morceau de scotch sous la broche d’erreur (pour éviter le contact entre la masse et la broche) j’ai pu avec plaisir constater que l’ensemble de la carte fonctionnait. Actuellement nous avons donc une gestion de l’alimentation fonctionnelle sur la carte. Pour le moment, le programme consiste à vérifier que la puissance fournie par la cellule photovoltaïque n’est pas trop faible pour alimenter le moteur (la valeur a été déterminé par tests successifs) et l’on essaie de fixer la tension maximale acceptable par le moteur (3V) à son entrée. D’une part à l’aide du capteur de tension pour la cellule photovoltaïque et on réajuste si dépassement à 3V et d’autre part à l’aide d’un proportionnel pour la batterie de 9V et délivrant du 5V au système. Il est aussi possible de lire la tension et le courant fournis par la cellule photovoltaïque grâce à l’Arduino ce qui permet d’avoir une bonne estimation de la puissance fournie par la cellule photovoltaïque. Les améliorations futures pour ce prototype sont les suivantes :
- Ecarter les via des composants afin de pouvoir souder celles-ci loin des autres zones « à risque » du système et d’ainsi créer des courts circuits.
- Retirer la via sous le microprocesseur afin de souder au four les composants CMS
- Ajouter deux ports afin d’ajouter la régulation en vitesse du système à l’aide d’un codeur incrémental ou de roues codeuses ou tout autre capteur de vitesse.
- On peut changer l’horloge pour une horloge plus classique (quartz et deux capacités de charge) afin d’avoir moins d’encombrement sur la carte.
- Sortir toutes les broches de l’ATMEGA328p afin de pouvoir ajouter des modules facilement en cas de modification.
- Faire le mode marche arrière en connectant la pin 7 du driver moteur à la même broche que la pin 2 et ajouter un contrôle afin de sélectionner la puissance (ajouter deux sélecteurs comme pour les chaînes d’alim afin de n’avoir qu’une seule entrée alimentée en tout temps.
Documentation
Archives
- Fichier:RapportIMA5P5A1920.pdf
- Fichier:RapportV2IMA5P5A1920.pdf
- Fichier:Diaposoutenance.pdf
- Fichier:Matlab REM.zip
- Fichier:EagleIMA5P5A1920.zip
- Fichier:ArduinoIMA5P5A1920.zip