INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Des détails portant sur la détection et l’identification de la configuration de bouchage des trous latéraux de l’instrument sont disponibles dans l’art antérieur, par exemple la publication internationale WO2016/173879. La présente invention porte sur le dispositif émetteur et récepteur utilisable dans le cadre d’une telle détection.
La représente schématiquement un exemple de positionnement possible d’un ensemble de transmission 60 selon l’invention. L’ensemble de transmission 60 d’ondes acoustiques aériennes est configuré pour être combiné avec un instrument de musique 100 à vent à trous latéraux comprenant un corps tubulaire 101 définissant une colonne d’air 103. Le corps tubulaire 101 s’étend localement sensiblement selon un premier axe X, et ledit ensemble de transmission est destiné à être disposé de façon amovible à l’intérieur du corps tubulaire 101 de l’instrument 100. L’ensemble de transmission 60 comprend un dispositif d’émission E d’ondes et un dispositif de réception R d’ondes. Le dispositif d’émission E dit émetteur est positionné préférentiellement dans le bocal de l’instrument 100 et le dispositif de réception R dit récepteur est positionné préférentiellement dans le pavillon de l’instrument 100. L’invention repose donc sur une transmission d’un signal acoustique via la colonne d’air, une transmission des données entre récepteur et calculateur (dispositif de réception R), et une transmission de données entre le calculateur (dispositif de réception R) et l’émetteur (dispositif d’émission E).
Comme cela sera détaillé ci-après, le positionnement de l’ensemble de transmission dans le corps de l’instrument permet de conserver la géométrie initiale de l’instrument. De plus, un tel ensemble de transmission ne génère aucune gêne dans la manipulation de l’instrument puisqu’il est positionné dans le corps de l’instrument.
Le dispositif d’émission E dit émetteur et le dispositif de réception R dit récepteur avec des dispositifs de communication entre eux, communication qui peut être filaire, mais préférentiellement sans fil, constituent un ensemble de transmission 60.
La représente schématiquement un dispositif d’émission E de l’ensemble de transmission 60 d’ondes acoustiques aériennes selon l’invention positionné au niveau du bec de l’instrument. Le dispositif d’émission E d’ondes acoustiques aériennes dans la colonne d’air 103 comprend : une première structure de fixation 10 au corps tubulaire de l’instrument ; un actionneur 11 apte à transformer un signal électrique en ondes acoustiques aériennes ; un élément intermédiaire de fixation 12 de l’actionneur 11 à la première structure de fixation 10 configuré pour désolidariser l’actionneur 11 du corps tubulaire.
L’un des objectifs de cette invention est de fournir un mécanisme qui permet d’éviter la situation décrite ci-dessus.
Pour cela, l’inventeur propose un capuchon qui, lorsque le l’ensemble de verrouillage 200 est dans l’état verrouillé, permet le verrouillage en rotation de l’ensemble de verrouillage 200.
De cette manière, les mouvements réalisés par le porteur du système d’alimentation entérale ne peuvent plus involontairement provoquer le passage de l’état verrouillé à l’état déverrouillé de l’ensemble de verrouillage 200.
Ainsi, l’invention concerne un capuchon tel qu’illustré sur les figures 2 à 8.
En pratique, le capuchon 100 comprend un corps de capuchon en matériau élastiquement déformable.
En pratique, cela signifie que le corps de capuchon est configuré pour se déformer sous une force et revenir à un état initial non déformé après la suppression de la force.
Dans une mise en œuvre particulière du corps de capuchon, le matériau élastiquement déformable est réalisé dans matériau choisi parmi : un polyéthylène de très basse densité, les élastomères des copolymères propylène/éthylène, des polyéther blocamides, des polyvinyles, des terpolymères d’éthylène, de propylène et d’un diène, EPDM, des polymères de styrène-butadiène séquencés (SBS), des polymères de styrène-éthylène-butadiène séquencés, SEBS-SIS, des polyuréthanes thermoplastiques, les mélanges de polypropylène avec l’un des élastomères choisi parmi les polymères de styrène-éthylène-butadiène séquencés, SEBS-SIS, les terpolymères d’éthylène, de propylène et d’un diène, EPDM, les polymères de styrène-butadiène séquencés, SBS, les caoutchoucs naturels, les élastomères de nitrile, de butyle ou de silicone médical, et toutes combinaisons de ceux-ci.
Toutefois, selon les besoins, on pourra envisager d’utiliser d’autres types de matériaux qui sont élastiquement déformables, et ce, sans nécessiter de modifications substantielles de l’invention.
Par ailleurs, le corps de capuchon comprend un corps de capuchon qui présente une paroi supérieure 110 et une première paroi verticale 120.
La paroi supérieure 110 s’étend entre une extrémité avant et une extrémité arrière selon une direction longitudinale.
On entend par « avant » et « arrière » les parties situées respectivement à gauche et à droite sur la représentation de la .
En outre, la première paroi verticale 120 supporte la paroi supérieure 110 et est raccordée au niveau de l’extrémité arrière de la paroi supérieure 110.
Par ailleurs, la première paroi verticale 120 présente une face avant, une face arrière, une épaisseur, une largeur et une hauteur.
Dans une mise en œuvre particulière du corps de capuchon, celui-ci présente une section en forme de L, comme illustré sur la .
Dans un premier exemple de cette mise en œuvre particulière, la paroi supérieure 110 et la première paroi verticale 120 sont réalisées d’un seul tenant.
Dans un deuxième exemple de cette mise en œuvre, la paroi supérieure 110 et la première paroi verticale 120 sont réalisées en plusieurs morceaux assemblés.
La phase d’apprentissage consiste à modifier les coefficients synaptiques du réseau suivant un algorithme dit d’apprentissage pour les faire converger vers des valeurs telles que le réseau accomplisse la tâche pour laquelle il est entraîné. La phase d’inférence consiste à appliquer aux données d’entrée des calculs basés sur les coefficients synaptiques préalablement mis à jour pendant la phase d’apprentissage.
Dans le cas d’un accélérateur de réseaux de neurones, la vie du système commence par une phase d’apprentissage intensive. Suite à cette opération d’apprentissage le circuit réalise des opérations d’inférence. Il en résulte que les systèmes d’intelligence artificielle, incluant une opération d’apprentissage, doivent en plus implémenter des méthodes de modification des coefficients synaptiques pour répondre à une tache donnée. Du point de vue de la problématique de stockage des paramètres du réseau, et plus particulièrement des coefficients synaptiques, les deux opérations susmentionnées présentent une différence importante : durant la phase d’apprentissage les poids synaptiques sont régulièrement modifiés, donc les cellules mémoire qui stockent leurs valeurs subissent plusieurs itérations d’opérations de réécriture intensives. durant la phase d’inférence les poids synaptiques sont figés et les cellules mémoires concernées ne subissent plus d’action d’écriture mais un nombre considérable d’opérations de lecture.
De façon plus générale, ce type de différence peut exister dans d’autres algorithmes de calcul qui implémentent plusieurs phases de calcul : une première phase au cours de laquelle les variables manipulées subissent de nombreuses modifications et une seconde phase au cours de laquelle les mêmes variables sont figées ou subissent peu de modifications.
Les différents types de mémoires non volatiles présentent des candidats intéressants pour réaliser les moyens de stockage des coefficients synaptiques d’un réseau de neurones. Cependant, les différentes technologies de mémoires non-volatiles présentent des caractéristiques différentes de fiabilité et de robustesse face à un nombre considérable d’opérations de lecture et d’écriture subies. Pour qualifier la robustesse des différentes technologies de mémoires, on définit les caractéristiques suivantes : On entend par « cyclabilité en écriture » le nombre maximal de cycles d’écriture subis par une cellule mémoire avant sa défaillance structurelle. Il s’agit alors d’un critère de caractérisation de la robustesse technologique des cellules mémoire face à un nombre intense d’opérations d’écriture. On entend par « endurance en lecture » le nombre maximal de cycles de lecture subis par une cellule mémoire avant sa défaillance structurelle. Il s’agit alors d’un critère de caractérisation de la robustesse technologique des cellules mémoire face à un nombre intense d’opérations de lecture. On entend par « énergie de lecture » l’énergie nécessaire pour lire un bit de la cellule mémoire ; elle s’exprime en Joule par bit. Il s’agit alors d’un critère de caractérisation de la performance énergétique des cellules mémoire lors de la réalisation d’une opération de lecture. On entend par « énergie d’écriture » l’énergie nécessaire pour écrire un bit de la cellule mémoire; elle s’exprime en Joule par bit. Il s’agit alors d’un critère de caractérisation de la performance énergétique des cellules mémoire lors de la réalisation d’une opération d’écriture.
De plus, l’augmentation considérable du nombre d’opérations de lecture et d’écriture pour implémenter un réseau de neurones est très énergivore pour un système dédié à une application mobile (téléphonie, véhicule autonome, robotique..). Il existe donc un besoin pour des calculateurs aptes à mettre en œuvre un réseau de neurones avec une complexité limitée permettant de satisfaire aux contraintes des systèmes embarqués et des applications visées.
Dans ce contexte, un problème technique à résoudre est l’amélioration de la performance énergétique et de la robustesse technologique des moyens de stockages des coefficients synaptiques d’un circuit calculateur, notamment un circuit implémentant un réseau de neurones apte à réaliser une opération d’apprentissage et une opération d’inférence nécessitant un grand nombre d'opérations d’écriture et de lecture . Art antérieur/ Restrictions de l’état de l’art
La publication scientifique intitulée « CHIMERA: A 0.92 TOPS, 2.2 TOPS/W Edge AI Accelerator with 2 MByte On-Chip Foundry Resistive RAM for Efficient Training and Inference» de Giordano et al décrit un circuit calculateur de réseau de neurones apte à réaliser des opérations d’apprentissage et d’inférence dans lequel les moyens de stockage sont réalisés par des mémoires résistives à base d’oxyde OxRAM. Pour améliorer la robustesse technologique des moyens de stockages des coefficients synaptiques, la publication propose un algorithme d’apprentissage réduisant le nombre d’opérations d’écriture permettant de prolonger la durée de vie du circuit calculateur de réseau de neurones. L’inconvénient de cette solution réside dans la complexité et la spécificité de l’algorithme d’apprentissage dans le but de réduire le nombre d’opérations d’écriture pendant l’apprentissage.
Réponse au problème et apport solution Pour pallier les limitations des solutions existantes en ce qui concerne l’amélioration de la performance énergétique et de la robustesse technologique des moyens de stockages d’un circuit calculateur destiné à exécuter un algorithme de calcul sur des données numériques, l’invention propose plusieurs modes de réalisation d’un circuit comprenant au moins deux types de technologies de mémoires pour le stockage des paramètres du calculateur. Le premier type de mémoires présente une forte endurance en lecture et une basse énergie en lecture le rendant plus performant pour réaliser une opération d’inférence nécessitant un nombre considérable de lectures des coefficients synaptiques.
Le second type de mémoire présente une forte endurance en écriture et une basse énergie d’écriture le rendant plus adapté pour réaliser une opération d’apprentissage nécessitant plusieurs itérations d’écriture des coefficients synaptiques.
Plus particulièrement, l’invention propose un calculateur de réseau de neurones, à titre d’exemple non limitatif, basé sur des technologies émergentes de mémoires non volatiles complémentaires en matière de robustesse face à une forte intensité d’opérations de lecture et d’écriture. A titre d’exemple non limitatif, il s’agit de la combinaison d’une part des mémoires à polarisation ferroélectrique FeRAM adaptées à l’apprentissage et, d'autre part, des mémoires résistives à base d’oxyde OxRAM adaptées à l’inférence.
L’invention propose en outre un procédé d’apprentissage et d’inférence compatible avec l’architecture proposée permettant de configurer l’utilisation de l’un des deux types de mémoires de manière à adapter les moyens de stockage utilisés selon les spécificités de l'opération réalisée (inférence ou apprentissage).
Nous allons décrire l’invention dans le contexte applicatif d’un réseau de neurones artificiels à titre illustratif sans perte de généralité. Les caractéristiques de l’invention restent valables pour tout calculateur d’exécution d’algorithmes présentant deux configurations (ou phases de fonctionnement) tel que la première configuration nécessite un nombre important d’opérations d’écriture (ou mise à jour) des paramètres du calculateur et tel que la seconde configuration nécessite un nombre important d’opérations de lecture desdits paramètres. Pour un paramètre numérique de calcul, la classification des bits par nombre d’écritures et de lectures subies pendant l’exécution d’une configuration de calcul est réalisable plus généralement par des statistiques appliquées sur des vecteurs de test.
Résumé /Revendications L’invention a pour objet un calculateur pour exécuter un algorithme de calcul impliquant une variable numérique selon au moins deux phases de fonctionnement, la première phase de fonctionnement comprenant une pluralité d’itérations d’une première opération d’exploitation de la variable numérique et d’une opération de mise à jour de la variable numérique ; la seconde phase de fonctionnement comprenant une seconde opération d’exploitation de la variable numérique ; chaque variable numérique étant décomposée en un premier sous-mot binaire composé des bits de poids forts de la variable et un second sous-mot binaire composé des bits de poids faibles de la variable. Le calculateur comprenant : un étage mémoire comprenant : un premier ensemble de mémoires pour stocker le premier sous-mot de chaque variable numérique; chaque mémoire dudit premier ensemble étant non volatile et présentant une première endurance en lecture et une première cyclabilité en écriture ; un second ensemble de mémoires pour stocker le second sous-mot de chaque variable numérique; chaque mémoire dudit second ensemble présentant une seconde endurance en lecture et une seconde cyclabilité en écriture ; - un circuit de traitement de variables configuré pour générer pour chaque variable numérique au moins une variable opérationnelle approximée de la variable numérique à partir du premier et du second sous-mot selon la phase de fonctionnement choisie ; - un réseau de calcul pour implémenter des opérations de calcul ayant pour opérande l’au moins une variable opérationnelle selon la phase de fonctionnement choisie ; la première endurance en lecture étant supérieure à la seconde endurance en lecture et la première cyclabilité en écriture étant inférieure à la seconde cyclabilité en écriture.
Selon un aspect particulier de l’invention, le premier sous-mot comprend N bits, le second sous-mot comprend M+K bits, avec M et N deux entiers naturels non nuls et K un entier naturel ; et les K bits de poids forts du second sous-mot présentent une intersection de même poids avec le premier sous-mot étant répétés dans le premier et le second ensemble de mémoires de poids. Le circuit de traitement de variables comprend : Un circuit réducteur de variables pour générer au moins une première variable opérationnelle de O bits avec O un entier naturel non nul inférieur à M+N. Ladite une première variable opérationnelle correspondant à l’arrondi ou la troncature du second sous-mot concaténé avec les N-K bits de poids forts du premier sous-mot.
Selon un aspect particulier de l’invention, le circuit de traitement de variables comprend en outre un circuit d’assemblage configuré pour générer une deuxième variable opérationnelle de M+N bits en concaténant, pour chaque variable numérique, le second sous-mot avec les N-K bits de poids forts du premier sous-mot lors de l’exécution de l’opération de mise à jour de la variable numérique.
Selon un aspect particulier de l’invention, le calculateur comprend en outre un circuit de mise à jour configuré pour réaliser les étapes suivantes pour chaque variable numérique pour chaque itération de la première phase de fonctionnement, pendant l’opération de mise à jour de la variable numérique : calculer un gradient pour la première variable opérationnelle ; et appliquer ledit gradient à la deuxième variable opérationnelle ; mettre à jour le second sous-mot dans le second ensemble de mémoires de poids en copiant les bits de même poids de la deuxième variable opérationnelle suite à l’application du gradient.
La est un diagramme montrant l’évolution du ratio air/carburant (AFR) moyen (rapport massique air sur carburant dans le cadre d’une combustion) divisé par le rapport stœchiométrique. L’axe des abscisses représentant la valeur réelle de l’AFR mesuré sur banc d’essai et l’axe des ordonnées la valeur prédite selon le procédé de la en boucle ouverte entre les étapes 20 et 35.
La est un diagramme comportant trois sous-figures, une pour chaque cylindre du moteur, montrant une convergence rapide des résultats de l’indicateur de combustion MFB50 estimés par le procédé selon la comparée au résultat sur une moyenne glissante pour le même point opérationnel qu’utilisé pour la .
La représente schématiquement un ensemble moteur comprenant de manière connue un moteur 1 comportant par exemple trois cylindres dont un au moins est muni d’un capteur 2 de pression cylindre, des injecteurs 6 de carburant dans les cylindres, un vilebrequin (non représenté) associé à un capteur 3 de position du vilebrequin de type connu comportant une roue dentée solidaire du vilebrequin et un détecteur fixe par rapport à la roue pour détecter le passage des fronts de dents de la roue dentée. L’ensemble moteur comporte en outre également de manière connue une ligne d’admission 4 de l’air entrant et une ligne d’échappement 5 des gaz de combustion. L’ensemble moteur comprend en outre de manière connue un boîtier papillon 11 sur la ligne d’admission 4 qui régule l’entrée d’air dans les cylindres, une sonde lambda ou sonde à oxygène 7 qui est un capteur permettant de mesurer le taux de dioxygène dans l’échappement afin de contrôler la qualité de la combustion, et peut comprendre en outre une vanne 8 de recirculation des gaz d’échappement RGE (EGR en anglais pour « Exhaust Gas Recirculation »), un turbocompresseur 9 avec sa vanne de décharge (non représentée), un système 12 de traitement des polluants à l’échappement, ....
L’ensemble moteur comprend encore de manière connue une unité 10 de contrôle moteur (ECU) qui pilote les actuateurs (injecteurs, boîtier papillon, vannes, …) en fonction des signaux qui lui sont adressés par les capteurs (sonde à oxygène, capteur de pression cylindre, débitmètre d’admission d’air – non représenté, …).
La représente de manière symbolique le moteur 1 avec le signal 20 transmis par le capteur 3 de position du vilebrequin. Ce signal est ensuite adressé à l’unité 10 de contrôle moteur dans laquelle il est traité. Les couches basses de l’unité 10 de contrôle moteur font l’acquisition du signal en 30 sur la .
Les données d’une mesure du capteur 3 de position du vilebrequin sont différenciées pour obtenir un différentiel de vitesse qui est une estimation de l’accélération, par exemple au premier ordre pour l’acquisition n réalisée au temps t :
Accel(n) = (Signal(n) - Signal(n-m)) / Delta_t
Accel(n) l’accélération au premier ordre pour l’acquisition n, et
Delta_t un coefficient de normalisation fonction du différentiel de temps entre l’acquisition n et l’acquisition m < n et de la vitesse de rotation du moteur notée RPM.
De manière générale, l’accélération instantanée du vilebrequin à partir du signal de position du vilebrequin est déterminée par plages de temps correspondant au maximum aux temps du cycle moteur de chaque cylindre ou groupe de cylindres. Le signal peut être groupé pour plusieurs cylindres qui sont synchrones sur les deux tours que fait le vilebrequin pour accomplir un cycle complet par exemple les quatre temps pour un moteur à quatre temps. Le découpage en plages de temps doit permettre de discriminer la phase de combustion de chaque cylindre lorsque ces derniers ne sont pas synchrones. Par exemple, sur un moteur à quatre temps et à trois cylindres, les plages de temps font 240° pour chaque cylindre correspondant aux quatre phases de détente (combustion) des trois cylindres respectivement. La plage de temps peut être réduite sur une fenêtre comportant l’évènement à considérer, afin d’être moins bruitée par les autres cylindres.
Le signal du capteur 3 de position du vilebrequin est mesuré par un capteur déjà intégré au système ensemble moteur, et est exploitable dans l’électronique embarquée de l’unité de contrôle moteur : aucune instrumentation supplémentaire, traitement du signal supplémentaire ou système d’acquisition supplémentaire n’est donc nécessaire pour implémenter la présente invention.
Le signal 20 qui sera traité, de dimension totale L le long d’un cycle moteur (deux rotations moteur pour un moteur à quatre temps) sera égal au nombre de dents existantes de la roue du capteur (typiquement 60, ou 60 moins une dent pour la référence au tour de la roue), ce qui en fait un signal de taille acceptable pour un traitement d’informatique embarqué.
Le traitement du signal 30 comprend en 31a sur la la détection de la dent longue (absence d’une ou plusieurs dents au tour) ou plus généralement la détection de la référence au tour de la roue du capteur 3. De manière avantageuse, comme indiqué en 31a sur la , le procédé peut comprendre de manière connue un traitement des fausses détections de dents sur la roue du capteur 3 et une correction des données du signal 20 pour rétablir le nombre correct de dents détectées en fonction du nombre réel de dents présentes sur la roue du capteur 3.
Ce signal est ensuite différencié en 31b sur la en plages L_cyl de temps ou segments correspondant à chaque cylindre ou chaque groupe de cylindres synchrones du moteur comme expliqué plus haut. En effet, par exemple pour un moteur à trois cylindres, sur les deux tours de rotation du vilebrequin correspondant à deux tours de rotation de la roue du capteur 3, on établit pour le signal trois segments ou plages de 240° au cours desquelles l’accélération instantanée du vilebrequin fournie par les trois combustions des trois cylindres respectivement sera visible dent à dent et analysée suivant le procédé décrit.
Les signaux par plage de temps sont utilisés en 32 sur la pour obtenir des délais temporels et des accélérations, par toute méthode de discrétisation numérique connue. Suivant un procédé avantageux, les signaux ne sont pas traités dans le temps physique mais dans le référentiel temporel du moteur, en fraction de tour par minute, permettant de garantir une bonne précision des estimations numériques.
Le capot 9 est un moyen de couverture du compartiment moteur 3 et des ailes 7. Le capot 9 est articulé entre une position ouverte et une position fermée. Le volume de chaque aile 7 est donc accessible lorsqu'on ouvre le capot 9. Le capot 9 comprend une doublure 11 formant une face inférieure du capot. Le véhicule 1 comprend aussi un joint d'étanchéité 12 s'étendant transversalement à l'arrière du capot 9 et un bac d'évacuation d'eau 13 en contrebas d’un parebrise du véhicule, derrière le joint d'étanchéité 12.