100
Sébastien ZERAH Rapport de Stage Stage technicien Réalisé entre le 01/09/2006 et le 30/10/2006 Développement d’un banc de mesure dédié à l’évaluation technique de machines respiratoires

zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Sébastien ZERAH

Rapport de Stage

Stage technicien Réalisé entre

le 01/09/2006 et le 30/10/2006

Développement d’un banc de mesure dédié à l’évaluation technique de machines

respiratoires

Page 2: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

SOMMAIRE

Introduction

Première partie   : Présentation générale L’INSERMLe Projet

PrésentationPrésentation des TTLLa carte d’acquisition des donnéesLe programme ADbasicLe programme VB

Deuxième partie   : Travail réalisé Cahier des chargesRéinstallation du systèmeCorrection de bugImplémentation de nouvelles fonctionsLe programme d’échantillonnage

Conclusion

Remerciements

AnnexesNotions de mécanique des fluidesFonctionnement du système respiratoireDocumentation technique de la carte d’acquisition ADwinDocumentation technique TTLCode source AD BasicCode source Visual BasicCode source Java

Page 3: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

INTRODUCTION

Page 4: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Première Partie   : Présentation générale

Page 5: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Présentation de l’INSERM

Page 6: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Présentation du projet

Présentation

Le but de ce projet est le développement d’un banc de test, déjà existant, utilisé pour tester les ventilateur et machines d’auto CPAP.Ce banc est principalement constitué d’un poumon test auquel est relié la machine de ventilation à tester et d’un générateur de débit capable de simuler l’appel ou la respiration spontanée du patient.

Les machines CPAPLes obstructions des voies aériennes supérieures (voir annexe A2 pour plus de détail

sur le système respiratoire) au cours du sommeil caractérisent le syndrome d'apnée du Sommeil. Elles peuvent être limitées, voir empêchées en appliquant une pression positive à l’entrée des voies aériennes via un masque facial connecté à une machine générant un niveau de pression réglé pour faire disparaître les évènements caractéristiques de ces apnées. Les performances de ces machines dites d'auto CPAP doivent être évaluées et comparées dans l'intérêt des malades et des prescripteurs.

1. L’apnée du sommeil

L’apnée du sommeil se caractérise par l’arrêt du flux respiratoire pendant une période supérieure ou égale à dix secondes. Ces moments d’apnée se terminent en général par des micro-éveils ou par un allègement du sommeil. On peut aussi définir une "semi" apnée : l’hypopnée, qui correspond à une baisse du flux respiratoire de 50%.

On peut distinguer trois types d’apnée :

-Les apnées obstructives : ce sont les plus fréquentes et elles correspondent à un arrêt du flux respiratoire causé par l’obstruction des voies aériennes supérieures.

-Les apnées centrales : elles sont rares et correspondent à un arrêt de la commande respiratoire. En effet, lors d’une apnée obstructive, il y a un effort et une demande de respiration qui est faite alors que lors d’une apnée centrale, on n’observe aucune demande de respiration. (voir la ligne de Pression oesophagienne qui peut être assimilée à l’effort inspiratoire de la figure 1)

-Les apnées mixtes : elles débutent par une apnée centrale et finissent en apnée obstructive.

Page 7: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Figure 1: Relevé du flux, de la pression oesophagienne et de l'oxygénation du sang lors de différentes apnées

Pour corriger ces apnées du sommeil, on lève l’obstruction des voix aériennes supérieures grâce à des machines d’aide respiratoire dite Auto Titrant ou Auto Piloté.

Ce sont des générateurs de pression positive dits intelligents qui permettent le traitement de Syndrome d'Apnée Obstructive du Sommeil (SAOS). En théorie, l.a pression délivrée s'ajuste en temps réel à chaque respiration afin de s'adapter au besoin du patient.

Le problème de ces machines est leur capacité à reconnaître un évènement nocturne (apnée du sommeil, pause respiratoire etc…) et à réagir (augmentation ou diminution de pression).

Les ventilateursLes patients atteints de difficulté respiratoires sont assistés par un respirateur.

Ces respirateurs sont aussi bien utilisés dans les services de réanimations qu’au domicile du patient dans le cas d’affection chronique.Un des grands modes qu’utilisent ces ventilateurs est le mode « d’aide inspiratoire ». Il consiste à détecter l’effort inspiratoire du patient et à aider celui-ci en délivrant une pression positive à l’entrée des voies aériennes. La détection de l’effort inspiratoire se fait principalement par une analyse du débit inspiratoire (détection d’un débit positif, on parlera de trigger en débit) ou par une analyse de la pression à l’entrée des voies aériennes (détection de pression, on parlera de trigger en pression) Pour ces ventilateurs, le banc de test sur lequel j’ai travaillé permet de tester la sensibilité du déclenchement (trigger) et la capacité de la machine testée à tenir la consigne de pression ou de débit demandée par le praticien.

Ce banc permet donc de simuler la respiration de patients atteints de maladies ou d’insuffisance respiratoire (e.g. SAS) afin de tester différents types de machines.

Page 8: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Simulateur mécanique de poumons

Le poumon artificiel est constitué de deux soufflets identiques ayant chacun une entrée permettant l'arrivée et l'échappement de l'air de chaque soufflet. Chaque soufflet est muni d'un ressort s'opposant au gonflement du soufflet et permet le retour et l'échappement de l'air contenu dans le soufflet en fin de la phase d'inspiration. De plus, chaque soufflet peut être solidarisé ou désolidarisé entre eux en fonction des différentes expérimentations effectuées.

Afin de tester les machines respiratoires, la configuration suivante a été adoptée (figure 3) :

Figure 2: fonctionnement du poumon artificiel

La barre d'entraînement est fixée au soufflet 1 et vient se loger sous la plaque supérieure du soufflet 2. Elle permet ainsi de solidariser le soufflet 1 avec le soufflet 2 lors du gonflement tout en permettant à la machine d’aide respiratoire sous test de commander le soufflet 2 (sans entraîner le soufflet 1) lorsqu'elle détecte le seuil de pression ou de débit minimal dans le soufflet 2. De plus, chaque soufflet est muni d’un ressort qui permet de régler sa compliance entre 0.02 et 0.15 L / cm H2O.De la même façon peut rajouter sur le circuit un système de résistances visant à simuller la résistance des voies aériennes. (pneuflo Resistor)

La compliance pulmonaire est la capacité du poumon à s'expandre en réponse à une augmentation de pression. Elle est définie par la formule :

avec C compliance, V volume et P pression.

Voir l’annexe A5 pour la documentation technique du simulateur de poumon (Dual Adult TTL)

Commande du soufflet

Machine respiratoire sous test

Page 9: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

La carte d’acquisition des données ADwin

Pour que l’ordinateur puisse communiquer avec les poumons, une carte d’acquisition programmable a été utilisée.

Cette carte d’acquisition est une Adwin-light-16 de chez Keithley pouvant être connectée au PC par une liaison USB et gérer le protocole ethernet. Elle est composée de (Figure 18):

- 8 entrées analogiques- 2 sorties analogiques- 6 entrées digitales- 6 sorties digitales- 2 compteurs de 32 bits

Figure 3: Diagramme de la carte Adwin

Le sharc ADSP 21062 est un processeur DSP (Digital Signal Processing) de 32 bits. Il est responsable de toutes les acquisitions et de toutes les sorties de signal qui peuvent se faire à une fréquence de 100 KHz (soit un cycle toutes les dix microsecondes) via les différents convertisseurs.

Côté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un temps d’accès très court de 25 ns et contient le système de calcul rapide et les variables d’accès rapide.

Sa programmation se fait en Adbasic, un langage qui se rapproche du BASIC mais qui a été développé pour la carte. (voir l’annexe A4 pour plus de précision sur la carte)

Page 10: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Le programme ADbasic

Toutes les communications entre l’ordinateur et la carte se font à l’aide d’un langage conçu spécialement pour cette carte : l’ADbasic. La carte doit donc servir à faire l’acquisition des valeurs nécessaires, sortir les différentes commandes utiles au fonctionnement du système et faire les différents calculs (principalement le correcteur) Sa programmation est basée sur l’exécution d’un programme sous interruption interne générée toutes les 2 ms. (voir Annexe A7)

Programme AD Basic

Page 11: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Le programme de supervision

En parallèle à la programmation de la carte d’acquisition, il a fallu développer un programme permettant de surveiller et commander le système en quasi temps réel.

Ce programme a donc trois fonctions principales : la configuration de la courbe de débit souhaité pour la commande du poumon test, la supervision du banc de test et l’envoi de la commande au programme ADBasic qui communique avec la carte ADwin.

Fenêtre principale du programme de supervision

Page 12: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Les capteurs

le capteur de pression

Lors d’un cycle respiratoire « forcé » (c’est à dire lors d’une ventilation), la pression est assez faible et ne dépasse généralement pas 40 cm H2O (1cm H2O = 1mBar).

Le capteur de pression utilisé est un capteur Validyne DP 45 prévu pour les basses pressions. Son fonctionnement est basé sur le déplacement d’une membrane entre deux bobines (voir le schéma en figure 5) :

Figure 4: Schéma du capteur de pression

Les bobines ont la même impédance et sont alimentées par une tension d’excitation de 5V de fréquence allant de 3 à 5 KHz. Lorsqu’une pression est appliquée sur la membrane, cette dernière se bombe et se rapproche ainsi vers l’une ou l’autre bobine (pression ou dépression). La membrane étant magnétiquement perméable, elle augmente le flux magnétique autour de la bobine dont elle se rapproche et baisse celui autour de la bobine dont elle s’écarte. Ce changement aux bornes des bobines cause ainsi un léger signal sur la « Signal Line ». On obtient ainsi un signal proportionnel au déplacement de la membrane et donc à la pression.

Page 13: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

le capteur de débit

Afin de mesurer le débit dans le circuit, on se base sur les relations qui existent entre le débit et la pression (Annexe A1). On a donc besoin d’un capteur de pression différentiel et d’une résistance. Ainsi, on va créer une différence de pression entre l’amont et l’aval de la résistance proportionnelle au débit dans le circuit. C’est le capteur de débit différentiel qui récupère cette différence de pression et donne une information proportionnelle au débit.

Afin d’obtenir les mesures les plus précises possibles, on a besoin d’avoir une résistance la plus linéaire possible et dans laquelle les phénomènes d’écoulement et de tourbillons sont limités. En effet, l’écoulement de l’air n’est pas homogène dans toute la conduite et des tourbillons sont présents sur les parois de la conduite (figure 6 ). Afin de limiter ces effets, on utilise une résistance composée de plusieurs petits tubes. Ainsi la variation d’écoulement et les tourbillons sont très limités et on obtient une relation plus précise au débit et une plus grande linéarité de la relation débit/pression.

Ecoulement de l’air et tourbillonsdans les conduites

Page 14: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Deuxième Partie   : Réalisation technique

Page 15: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Cahier des charges

La mission qui m’a été assignée pendant mon stage technicien de deux mois à l’INSERM était le développement d’un banc de mesure dédié à l’évaluation technique des ventilateurs utilisés en réanimation et machines d’auto-CPAP.

Dans un premier temps, on m’a assigné la tâche de réinstaller le système de contrôle du banc de test sur un nouvel ordinateur et de réparer les différents problèmes présents dans le programme.

Ensuite, on m’a demandé d’ajouter un certain nombre de fonctions au programme de supervision du banc de test.

Enfin, j’ai rédigé un programme en java qui permet d’envoyer sur le banc de test des enregistrements respiratoires de plusieurs heures.

De plus, j’ai effectué une série d’expérience sur le matériel utilisé afin de vérifier la précision et l’exactitude des tests réalisés.

L’ordinateur sur lequel était installée la carte ADwin avait subi une panne informatique. Ma première tâche était donc de réinstaller la carte sur un nouvel ordinateur.

Il m’était ensuite demandé de régler un certain nombre de bugs dans le programme informatique.

Enfin, j’ai ajouté de nouvelles fonctions au programme, afin d’améliorer et de simplifier les tests réalisés.

-Enregistrement sur une nuit => programme d’échantillonnage et modification du programme de supervision-Vérification des résistances et compliances utilisées sur le banc expérimental

Page 16: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Réinstallation du système A mon arrivée en septembre, l’ordinateur sur lequel la carte était installée était en

panne. On m’a donc demandé de réinstaller la carte d’acquisition et le programme sur une nouvelle machine pour pouvoir reprendre les tests sur les machines respiratoires.L’installation de la carte était assez simple, mise à part la configuration du port USB.En effet, il fallait assigner une adresse au port USB et la communiquer à la carte ADWIN.

Configuration de la liaison USB avec la carte

J’ai ensuite installé les logiciels de développement en AD Basic et Visual Basic.Le premier problème rencontré est apparu lors du test du programme. Le programme ne parvenait pas à communiquer avec la carte ADWIN. J’ai donc testé la communication entre l’ordinateur et la carte avec un petit programme simple en AD Basic, qui fonctionnait bien. Le problème venait donc nécessairement du programme en lui-même. Après avoir effectué un débogage, j’ai compris que le problème venait du fait que le programme de supervision utilisait pour communiquer avec la carte le pilote et le .bin créé à partir du programme AD Basic, et qu’il ne les trouvait pas à l’endroit spécifié. J’ai donc commencé par recréer le .bin à partir du programme AD Basic, et j’ai rentré les bons chemins d’accès pour celui-ci et pour le pilote. Malgré cela, le programme ne parvenait toujours pas à communiquer avec la carte. Après quelques heures de recherche, j’ai observé que l’adresse que j’avais assignée à la liaison USB devait être spécifiée dans le programme. J’ai donc remplacé l’adresse dans le programme de supervision, et le programme est enfin parvenu à communiquer avec la carte.

Page 17: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Correction de bugsLes programmes contrôlant le banc de mesure existaient déjà avant mon arrivée à

l’INSERM. Cependant, mon maître de stage ainsi que les utilisateurs du programme effectuant les tests sur machines respiratoires se plaignaient d’un certain nombre de problèmes dans le programme :

Certaines fonctionnalités du programme de supervision s’étaient avérées inutiles et encombraient l’interface graphique utilisateur. C’était le cas par exemple des fonctions d’enregistrement et d’impression du débit. J’ai donc supprimé les parties inutiles du programme, et allégé l’interface graphique de la fenêtre principale pour simplifier son utilisation.

Boutons accessibles à partir de la fenêtre principale

Les boutons de marche et d’arrêt d’un protocole ne fonctionnaient pas non plus, mais ces boutons pouvaient être très utiles aux utilisateurs du programme car ils leurs évitaient de relancer un protocole entre chaque test. J’ai donc modifié les fonctions de ces boutons dans le programme de supervision.

Page 18: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Enfin, la partie qui nécessitait le plus de modifications, car elle présentait le plus de problèmes, était celle chargée de la création de cycles et protocoles.

Fenêtre de configuration de la courbe de débit

Lors de la configuration de la courbe de débit, on est amené à remplir le tableau temps/débit. Pour simplifier le remplissage du tableau par les utilisateurs, et à la demande de ceux-ci, j’ai réglé le « focus » des cases, pour qu’ils puissent utiliser la touche ‘tab’ lors du remplissage.De plus, le programme permettait un débit négatif, ou des valeurs de temps non croissantes.J’ai donc ajouté par sécurité des limitations et des messages d’erreur lors de l’entrée de valeurs dans les tableaux de débit et de temps.Après avoir rempli le tableau, on appuie sur la touche ‘visualiser’ pour observer la courbe de débit. On peut ensuite régler le temps d’inspiration, d’expiration ou le volume si on veut modifier la courbe de débit. Mais des erreurs apparaissaient lors du calcul et de la modification du volume et du temps d’inspiration, forçant le programme à quitter. J’ai donc modifié le programme de supervision pour qu’il calcule et modifie le volume et le temps d’inspiration de la courbe de débit. Les erreurs provenaient :- D’un problème de conversion de chaînes de caractères en réels.- D’une mauvaise architecture du programme qui entraînait des divisions par zéro si on n’effectuait pas toutes les actions dans un ordre précis. - Des tableaux contenant les valeurs de temps et de débit, en ‘overflow’ lors de l’utilisation de boucles for dans le programme.

Message d’erreur overflow sous visual basic

Page 19: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Après avoir créé la courbe de débit désirée, correspondante à un cycle, on cherche à créer un protocole. Un protocole est un ensemble de cycles respiratoires, c’est en lançant un protocole qu’on envoie les données à la carte et qu’on déclenche la ‘respiration’ du poumon mécanique. Mais la création de protocoles présentait quelques bogs et le succès de la création d’un protocole était assez aléatoire. De plus, créer un protocole était assez compliqué, car peu expliqué dans le programme. J’ai donc dans un premier temps résolu les problèmes informatiques, j’ai ensuite modifié l’interface graphique en ajoutant des indications pour la création d’un protocole.

Fenêtre de déroulement d’un protocole

Page 20: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Implémentation de nouvelles fonctions

Nouvelles variables de calibration

A chaque fois qu’on relance les poumons de test, ainsi que tous les capteurs qui y sont associés, on doit re-calibrer tout le matériel manuellement. Pour éviter de devoir calibrer manuellement, on m’a demandé d’implanter des « variables de calibration » pour le débit et pour la pression. C’est à dire qu’on n’a plus qu’à mesurer les valeurs de pression et de débit, et on peut ensuite les calibrer directement dans le programme.

Variables de calibration dans le programme de supervision

Page 21: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Coefficient de transfert

Lors des tests réalisés sur le poumon artificiel, on a remarqué une différence entre le volume entrant dans le soufflet maître et le volume sortant du soufflet esclave tel que :

On a appelé K le coefficient de transfert entre les soufflets tel que

Une des problématiques de mon stage était de trouver l’origine physique de ce coefficient pour pouvoir, sinon le supprimer, au moins l’exprimer en fonction des variables physiques de l’expérience : pression, compliance des soufflets (Compliance , résistance, etc…)Ainsi, on pourrait rentrer les variables du problème dans le programme et obtenir directement un débit sortant correspondant à la consigne.

J’ai donc commencé une série de tests sur le poumon pour observer les effets de chaque paramètre sur le coefficient de transfert entre les soufflets.

Ces tests ont consisté à mesurer ce coefficient de transfert lorsqu’on modifie la compliance du soufflet esclave, sa résistance, la compliance du soufflet maître (voir figure XX).

Page 22: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Schéma du banc expérimental

A la suite de ces tests, nous avons observé un certain nombre de faits :- Au niveau du soufflet maître :

La compliance ressort n’a pas d’effet sur le coefficient de transfert- Au niveau du soufflet esclave :

La compliance ressort a un effet très net sur le coefficient de transfertLa résistance de la ligne modifie également ce coefficient

- De plus, j’ai effectué plusieurs tests en inversant les deux soufflets, sans modification du coefficient de transfert. On admettra donc que les soufflets sont identiques et ne sont pas à l’origine de l’apparition du coefficient.

L’ensemble de ces résultats nous ont incités à développer l’hypothèse que la différence de débit entre les deux soufflets peut être attribuée à un phénomène de compliance des parois latérales du soufflet esclave. En effet, de part sa conception, le soufflet est cerclé par des anneaux rigides qui empêchent sa déformation vers l’extérieur en cas de surpression mais qui n’empêchent pas une éventuelle déformation des parois vers l’intérieur en cas de dépression dans le soufflet. Cette déformation vers l’intérieur peut être vue comme une perte de débit au niveau de la sortie du soufflet esclave (Voir figure XX) :

Page 23: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Déformation du soufflet esclave entraînant une perte de débit

Ici, on considère quedl << l et dh << h

=> Sb=constante=>

Ce déplacement intérieur, donc cette perte de débit, est d’autant plus important que la dépression est importante. En d’autres termes, pour un débit donné à l’entrée, la perte de débit en sortie sera d’autant plus importante que la résistance du soufflet esclave est grande et que sa compliance est faible.

Ce phénomène peut être décrit à l’aide d’un schéma électrique :-On assimile le débit à l’intensité.-On assimile la pression à la tension.-La compliance est remplacée par un condensateur.-La résistance est une résistance.

Page 24: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Représentation électrique du comportement du débit

Avec :Po Pression atmosphériquePn Pression a l’intérieur du souffletRp Résistance Pneumoflo

On a donc :

Et le débit mesuré Qm qu’on a en sortie ne correspond pas au débit entrant Qe à cause de la perte de débit due à la déformation des parois Qp .

Plus l’impédance de la « branche du haut » est élevée, plus le débit mesuré sera faible devant le débit perdu dans les parois. Ainsi, on peut prévoir que le coefficient de transfert est de plus en plus important quand la résistance augmente et la capacité diminue.

Page 25: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

J’ai donc commencé une série de tests pour exprimer le coefficient de transfert en fonction de la résistance et de la compliance ressort du soufflet esclave pour vérifier notre hypothèse.Lors des tests de machines respiratoires, on utilise quatre valeurs de résistances.Pour chaque valeur, j’ai donc relevé le coefficient de transfert en faisant varier la compliance ressort et pour plusieurs protocoles respiratoires. Pour mesurer le coefficient de transfert, j’ai utilisé le logiciel d’acquisition de signaux Acqknowledge (voir figure XX) et j’ai fait une moyenne du rapport

Calcul du coefficient à partir des relevés de débit obtenus avec le logiciel Acqknowledge

Page 26: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

J’ai ensuite pu obtenir à l’aide d’un tableur une courbe du coefficient de transfert en fonction de la compliance ressort, ainsi qu’un équation correspondante pour chaque valeur de résistance :

Courbe du coefficient de transfert en fonction de la compliance pour la résistance RP50

(voir Annexe A9 pour les courbes des autres résistances)

Page 27: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Pour finir, j’ai vérifié expérimentalement que les machines générant des pressions expiratoires positives, ou PEEP (comme les CPAP) ne modifient pas le coefficient de transfert. En effet, comme on le voir dans le schéma si dessous, le coefficient varie de moins de 5% pour une PEEP allant de 0 à 15 cm H2O (1cm H2O = 1mBar)

Pourcentage de variation du coefficient / PEEP

-25.0%

-20.0%

-15.0%

-10.0%

-5.0%

0.0%

5.0%

10.0%

15.0%

20.0%

25.0%

0 2 4 6 8 10 12 14 16

PEEP (cm H2O)

% d

e Co

effic

ient

de

varia

tion

entr

e le

s so

uffle

ts

Gil RP20 0.03Gil RP20 0.06gil RP50 0.03Gil RP5 0.03Gil RP5 0.06Feral RP20 0.03Feral RP5 0.03Feral RP5 0.06

Effet de la PEEP (Positive End Expiratory Pressure) sur le coefficient de transfert

A la suite de ces tests, j’ai donc ajouté dans le programme de supervision un module fournissant le coefficient de transfert recommandé en fonction de la résistance et de la compliance ressort du soufflet esclave. L’utilisateur n’a plus alors qu’à valider pour accepter ce coefficient s’il le souhaite :

Détermination du coefficient de transfert dans le programme de supervision

L’étude du coefficient de transfert m’a permis d’utiliser des notions à la fois d’informatique, de physique et d’électronique. En particulier, j’ai beaucoup utilisé et approfondi mes connaissances en mécanique des fluides, mon élective du second semestre en I2.

Page 28: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Vérification des résistances et compliances utilisées sur le banc expérimental

Pour vérifier l’exactitude des résultats obtenus durant nos tests, nous avons décidé de vérifier si les caractéristiques du matériel utilisé correspondaient aux indications fournies par le constructeur. Ces vérifications ont concerné la compliance ressort affichée sur les soufflets et les résistances pneumoflo (RP).

Test de la compliance ressort

J’ai donc dans un premier temps testé la compliance d’un des soufflets.Pour cela, j’ai simplement relié à un des soufflets une seringue de un litre (celle qu’on utilise habituellement pour la calibration). Au début, la pression à l’intérieur du soufflet est la pression atmosphérique, une fois qu’on a envoyé l’air de la seringue dans le soufflet, la pression augmente. La compliance du soufflet est simplement le volume d’air (ici à peu près un litre) divisé par la différence de pression. .J’ai donc relevé avec acqKnowledge le débit et la pression dans le soufflet pendant la manipulation et obtenu les résultats suivants :

Pourcentage d’erreur entre la compliance affichée et la compliance mesurée

On constate que l’erreur entre la compliance affichée et la compliance mesurée est infime (toujours inférieure à 2%), on acceptera donc que la compliance ressort affichée sur le soufflet est exacte.

Page 29: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Test des résistances

Par la suite, j’ai testé l’effet des résistances pneumoflo fournies par le constructeur du simulateur de poumons. Les résistances pneumoflo sont simplement des petits tuyaux métalliques avec de plus ou moins gros diamètres. Les plus petits diamètres représentant les plus fortes résistances. Le fabriquant fournit dans la documentation technique des courbes de pression en fonction du débit avec les résistances RP5 RP20 et RP50 (voir annexe A5). J’ai donc testé ces trois résistances de la façon suivante : J’ai débranché tout le circuit pour isoler un des soufflets et travailler en statique avant de connecter la résistance à la sortie de ce soufflet.J’ai ensuite manuellement élevé et abaissé le soufflet plus ou moins rapidement pour obtenir un grand nombre de points à différentes valeurs de débit.Pour éviter les erreurs provenant de la déformation vers l’intérieur, je ne me suis intéressé qu’aux résultats obtenus en compression.J’ai obtenu des courbes de la pression en fonction du débit correspondant à celles de la documentation technique, bien que légèrement moins précises :

Pression mesurée en fonction du débit pour une résistane pneumoflo RP20

(voir annexe A10 pour les courbes des autres résistances)

Page 30: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Implémentation du volume

Lors des tests effectués sur le poumon test, il arrive que la pression monte très haut, risquant d’abîmer le poumon test. Le programme est donc muni d’une limitation de pression. Dés que la pression relevée dépasse une certaine valeur définie par l’utilisateur, on stoppe complètement le protocole et on ouvre la vanne d’expiration pour protéger le poumon test. Malgré tout, il peut arriver qu’on ait de petites pressions mais un gros volume dans le poumon, ce qui peut être également dangereux pour le matériel. J’ai donc été chargé d’ajouter au programme une limitation en volume, pour plus de sécurité. Comme aucun capteur ne me permettait de connaître le volume dans le poumon test à un moment donné, j’ai du me servir du capteur de débit. En effet :

Avec Qv le débit volumique en litres par secondeV le volume en litret le temps en secondes

A partir des valeurs de débit en fonction du temps, qu’on connaît, j’ai donc pu déterminer le volume dans le poumon test à tout moment, en utilisant la méthode des trapèzes de calcul approché d’intégrales.

La méthode des trapèzes repose sur le principe suivant : L’intégrale d’une fonction correspond à « l’aire sous la courbe ». On fait donc une approximation de l’aire sous la courbe en lui associant la somme des aires des trapèzes entre deux points très proches comme dans le schéma ci-dessous.

Approximation de l’aire sous la courbe à un trapèze

Dans ce cas, l’aire du trapèze est :

Page 31: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

On ajoute l’aire de tous les trapèzes pour obtenir l’aire sous la courbe, c’est à dire le volume total :

Méthode des trapèzes

Volume=Airetotal=∑ Airei

Le calcul du volume se fait dans le programme AD Basic. Celui-ci génère des interruptions internes toutes les 2ms. Le temps séparant deux X est donc de 2ms, on considère que ces interruptions sont assez fréquentes pour que la valeur approchée du volume soir proche de la réalité.

Pour résumer, j’ai calculé le volume de la façon suivante : Tant Que( débit non nul)

Aire Trapèze = (formule ci-dessus) Le ‘tant que’ a un tempsVolume = Volume + Aire Trapèze ; d’execution de 2ms

Fin Tant Que

Page 32: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Demande des chemins d’accès à l’ouverture du programme

Pour éviter les problèmes que j’ai rencontré lors de l’installation de la carte et du programme de supervision sur un nouvel ordinateur, j’ai ajouté à l’ouverture du programme une boite de dialogue qui demande l’emplacement des fichiers nécessaires à la communication avec la carte ADWIN (c'est-à-dire le pilote ‘adwin9.btl’ et le .bin obtenu à partir du programme AD Basic ‘ProfilPI.bas’). De cette façon, si on déplace la carte sur une nouvelle machine, on n’aura plus besoin de modifier le code source pour assurer le bon fonctionnement du programme.

Ouverture d’une boîte de dialogue au lancement du programme

Page 33: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Interface graphique

Tout au long de mon stage, j’ai été amené à modifier le programme de supervision, et donc de modifier son apparence, de plus j’ai tenté autant que possible de simplifier son utilisation, et d’éclaircir au maximum certains points qui n’étaient pas expliqués dans le programme. C’est pourquoi j’ai rajouté un fichier d’aide au programme (voir paragraphe X-x), ainsi que des commentaires dans le code source, au cas où quelqu’un serait amené à le modifier après moi.

Interface d’une courbe d’acquisition

Fichier d’aide windows Aide.hlp dans le programme de supervision

A la demande de mon responsable de stage, j’ai ajouté au programme de supervision un fichier d’aide windows (voir Annexe A3 ).Ce fichier d’aide, ouvert à partir du programme de supervision (bouton point d’interrogation, voir figure XX) permet à un utilisateur non initié d’apprendre à se servir du banc de test, et permet même à des utilisateurs habitués de redécouvrir toutes les fonctionnalités du programme.Pour faire ce fichier d’aide (extension .HLP), j’ai d’abord du organiser son architecture (sommaire, rubriques, sous rubriques, etc…). J’ai ensuite rédigé son contenu dans un fichier .rtf (rich text format) à l’aide d’un éditeur de texte, en suivant une certaine syntaxe pour définir les rubriques et les liens.J’ai ensuite utilisé le logiciel Microsoft Help Workshop pour créer le fichier d’aide à partir du document .rtf que j’avais écrit.

Page 34: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Rédaction du fichier .rtf

Page 35: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Le Programme d’échantillonnage

//Intro présentation

Cependant, il était également très important de pouvoir tester les machines non pas sur un seul cycle, mais sur un enchaînement de cycles respiratoires correspondant à la respiration réelle d’un patient. Par exemple, tester les machines d’auto CPAP sur toute une nuit avec l’enregistrement d’un patient atteint d’un syndrome d’apnée du sommeil (SAS).

Mon responsable de stage m’a donc demandé d’écrire un programme permettant, à partir d’un enregistrement respiratoire de plusieurs heures, de créer automatiquement le protocole et les cycles correspondants pouvant être lus dans le programme de supervision et donc envoyés au simulateur de poumon.De cette façon, on pourrait tester les machines à partir d’enregistrements réels, et sur plusieurs heures, sans avoir à reproduire manuellement tous les cycles.Il fallait ensuite modifier le programme de supervision pour qu’il accepte des protocoles de plusieurs milliers de cycles.

Modification du programme de supervision

Pour que les protocoles puissent contenir plusieurs milliers de cycles, j’ai tout d’abord augmenté la taille des tableaux contenant les données concernant les cycles. Ensuite, j’ai du modifier la fonction de déroulement du protocole pour qu’il lise les cycles après le douzième, et pour qu’il décale le tableau contenant le numéro du cycle et le nombre de répétition de chaque cycle :

Ouverture d’un protocole de plus de 12 cycles

Page 36: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Le programme d’échantillonnage

Présentation du programme

Une fois le programme de supervision modifié pour accepter les protocoles de plusieurs milliers de cycles, ma tâche a été de concevoir un programme créant automatiquement les cycles et protocoles au bon format à partir d’un enregistrement respiratoire.

Les enregistrements qu’on m’a fournis étaient au format « edf « (European Data Format), destiné au stockage de données médicales ou biologiques comme des enregistrements de signaux physiologiques.Un « fichier edf » comporte plusieurs enregistrements de signaux (électroencéphalogramme, électrocardiogramme, polysomnographie...).On peut facilement extraire le signal qu’on désire étudié (ici le débit respiratoire) du fichier.On obtient alors un fichier texte composé de deux colonnes : une colonne de temps et une colonne de débit.C’est ce fichier texte que nous allons diviser en cycles pour écrire le protocole correspondant.

Fichier edf

Choix du langagePour écrire ce programme, j’ai choisi de programmer en java.

Page 37: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

D’une part, le java vient avec une grande bibliothèque de classes qui peuvent aider à la rédaction du programme, par exemple l’utilisation de la classe « Scanner » m’a permis de lire assez facilement le fichier source.D’autre part, j’ai trouvé que la programmation objet correspondait bien au cahier des charges.Enfin, le java est le langage avec lequel je me sentais le plus à l’aise, et donc celui avec lequel j’estimais avoir le plus de chance d’écrire un programme qui fonctionne.

Rédaction du programme

Avant de définir exactement l’architecture de mon programme, j’ai commencé par écrire une classe « Read » pour lire un fichier texte de deux colonnes et imprimer ces colonnes dans le terminal. En effet, c’était la première fois que j’utilisais la classe « Scanner » qui n’est présente dans les bibliothèques java que depuis la dernière version de la plateforme.La classe fonctionna assez rapidement, ce qui me conforta dans mon choix du langage pour l’écriture de ce programme.

Après la classe Read, j’ai eu envie de tester également la création de fichiers texte et l’écriture dans ceux-ci à partir du programme, puisque le programme doit créer un fichier texte par cycle ainsi qu’un autre pour le protocole.J’ai donc écrit une classe de test « Write » avec laquelle j’ai réussi à créer un fichier texte dans lequel j’ai imprimé les deux colonnes que j’avais lues avec la classe Read.

J’étais alors assuré que je pourrais lire et écrire des fichiers texte librement. J’ai donc pu réfléchir plus sérieusement à l’architecture du programme. J’ai décidé d’utiliser une architecture à 5 classes :

- Une classe « Read » dans laquelle on lit le fichier source et on met les deux colonnes de

temps et de débit dans deux tableaux - Une classe « Protocole » qui crée le fichier texte correspondant au protocole.- Une classe « Cycle » qui imprime un cycle. Comme il y aura parfois plusieurs milliers de cycles, j’ai utilisé une méthode statique plutôt que de créer des milliers d’objets lors de l’exécution du programme.- Enfin, une classe « Main » qui créé les objets, fait les calculs et imprime les résultats.

Je testais le programme tous les jours, au fur et à mesure de sa rédaction qui progressait assez rapidement. Mais ce n’est qu’une fois toutes les fonctions de bases écrites et le programme presque terminé que je l’ai testé sur un enregistrement de plusieurs heures. Les tests sur les petits fichiers texte fonctionnaient parfaitement, mais avec celui de plusieurs heures, la mémoire de java se révéla insuffisante. En effet, lors de l’exécution du programme, l’erreur « Java.Lang.Outofmemory » se produisait. J’ai alors essayé de relancer le programme en lui allouant plus de mémoire, mais même avec 2Go de mémoire, la même erreur se produisait.J’en ai donc déduit que le problème provenait d’une mauvaise architecture de mon programme.En effet, mon programme stockait la totalité du fichier texte (de plusieurs centaines de Mo) dans des tableaux avant de travailler sur les données.J’ai donc recommencé à zéro en utilisant une nouvelle architecture, décrite ci-dessous :

Page 38: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Architecture du programme d’échantillonnage

Dans cette nouvelle architecture, la classe Main appelle la classe Read pour lire les données du fichier source, mais elle ne stocke pas la totalité du fichier dans des tableaux directement.La classe Main continue de lire le fichier jusqu’à ce qu’elle détecte la fin d’un cycle. A ce moment, elle appelle la méthode « echant() » qui vérifie si le cycle ne comporte pas trop de points. En effet, le programme de supervision de peut pas lire de cycles de plus de 30 points. Dans ce cas, la méthode d’échantillonnage réduit le nombre de points à 30 sans modifier la forme du débit.La classe Main créé ensuite un fichier texte contenant ce cycle et lisible par le programme de supervision en appelant la classe « Cycle ». Elle appelle ensuite la classe « Protocole » pour écrire dans le protocole les informations concernant le cycle. Enfin, elle supprime toutes les données stockées dans les tableaux avant de lire la suite du fichier source, ce qui permet de libérer de l’espace mémoire.

Pour détecter la fin d’un cycle, j’ai utilisé la condition « le débit passe de négatif à positif ». En effet, cette condition caractérise la fin de la période d’expiration et le début de l’inspiration d’un nouveau cycle.

Cette nouvelle architecture permet au programme de fonctionner avec de très gros fichiers dans la mesure ou le programme ne travaille pas sur de trop grosses quantités d’informations, en utilisant la notion de buffer.Les cycles

Page 39: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Les cycles, pour être lus par le programme de supervision, doivent comporter moins de 30 points et avoir la syntaxe suivante :- Le fichier texte doit commencer par un guillemet- Ensuite, chaque ligne doit être formée :

De la valeur du temps, d’une tabulation, de la valeur du débit- Le fichier texte doit se terminer par un guillemet

Le RésuméJ’ai également ajouté une nouvelle classe « Resume » qui fournit des informations générales sur le protocole :- Cycles dont le volume est supérieur à 1000mL- Nombre de cycles- Volume moyen avec Ecart type- Volume minimum / maximum- TI moyen avec Ecart type- TE moyen avec Ecart type- Temps total du protocole

Le protocolePour chaque cycle, le protocole doit fournir un certain nombre d’informations au programme de supervision :- Le temps d’inspiration ( TI )- Le temps d’expiration (TE)- Le volume courant- Le nombre de répétitions du cycleC’est la classe Main qui calcule ces valeurs à chaque cycle avant de les transmettre à la classe Protocole.

J’ai donc testé le programme sur un enregistrement de plusieurs milliers de cycles. J’ai ensuite ouvert et testé le protocole dans le programme de supervision :

Protocole de près de 16000 cycles

Après avoir vérifié que mon programme fonctionnait, j’ai décidé d’ajouter une interface graphique utilisateur. J’ai donc rédigé la classe UserInterface, qui permet une utilisation simple

Page 40: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

du programme. L’interface graphique est composée d’une image en haut de l’écran, d’une zone de texte au centre, et d’une série de boutons en bas :

Interface graphique du programme d’échantillonnage

Enfin, j’ai rajouté la classe « Run » qui permet simplement de lancer le programme à l’aide d’une méthode statique. De plus, grâce à cette classe, j’ai pu créer un exécutable. Ainsi, on peut lancer le programme directement en double cliquant une icône sur le bureau.

Page 41: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Conclusion

Page 42: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Remerciements

Page 43: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Annexes

A1 - Notions de mécanique des fluides

A2 - Le fonctionnement du système respiratoire

A3 - L’aide du programme de supervision

A4 - Documentation technique de la carte d’acquisition ADWIN

A5 - Documentation technique du simulateur de poumon

A6 - Documentation technique machine respiratoire ?

A7 - Code source programme de supervision

A8 - Code source programme AD Basic

A9 - Code source java

Page 44: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

A1- Quelques notions de mécanique des fluides

1- Le débit

Le débit d’un fluide est la quantité de matière qui traverse une section droite d’une canalisation pendant une unité de temps.

Cependant, on peut distinguer plusieurs types de débit :

- Le débit volumique Qv : c’est le volume de matière par unité de temps qui traverse une section. Son unité est donc le m3/s et le débit volumique peut être exprimé avec l’aire S (en m2) de la section de la conduite et la vitesse moyenne V(en m/s) du fluide sur une section :

Qv = V.S

- Le débit massique Qm : La quantité de matière est exprimée par sa masse. L’unité du débit massique est donc le kg/s.

Les deux débits Qv et Qm sont reliés par la relation :

Qm = .Qv

où est la masse volumique du fluide (Kg/m3).

2- La pression

La pression est la force exercée par un fluide perpendiculairement à une surface, rapportée à l’unité de surface. Différents types de pression existent :

- la pression différentielle : c’est la différence entre deux pressions- la pression absolue : c’est la pression mesurée par rapport au vide

L’unité est le N/m2 (ou Pascal).L’unité pratique est le bar (105 Pascal) soit l’équivalent de 1.019 KG/cm2.L’unité d’usage pour les mesures physiologiques est le centimètre d’eau (cmH2O) car il est très facile d’étalonner les capteurs avec une colonne d’eau distillée. Le centimètre d’eau correspondant à la pression d’une colonne d’un centimètre d’eau sur une surface de 1 cm2 soit 0.981mbar. On peut approximer la relation suivante : 1 cmH2O = 10-3 bar

Avec :- P la pression ( Newton/m2 = 1Pascal et 1cm H2O = 1mBar = 100Pa)- M la masse (Newton)- S la surface sur laquelle s’applique cette force (m2)

3- La relation débit-pression a- La loi de Bernoulli

En tout point de l’écoulement d’un fluide, on peut définir la charge H, par la relation :

Page 45: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Avec:- V la vitesse moyenne du fluide (m/s)- g l’accélération de la pesanteur (g=9,81 m/s2)- p la pression (Pa)- la masse volumique du fluide (kg/m3)- z la cote du point considéré

Pour un fluide non visqueux, la loi de Bernoulli traduit la conservation de l’énergie mécanique. Pour la circulation d’un fluide non visqueux entre deux points A et B situés sur une même ligne d’écoulement on a donc : HA = HB

b- Relation débit/pression La relation principale qui relie le débit à la pression est : Mais, lorsque le fluide est incompressible ( constant ), on peut écrire grâce à la loi de

Bernoulli l’égalité des charges en deux points d’un circuit pneumatique. On obtient ainsi :

Dans le cadre du projet nous poserons que les conduites sont horizontales : ZA = ZB

D’où :

On a donc une relation entre la pression et la vitesse moyenne d’un fluide entre deux points A et B.

On peut appliquer ceci au capteur de débit (voir figure 32 avec le tube de Venturi). En effet, en provoquant un changement de la vitesse entre 2 points de la conduite. D’après la relation ci-dessus, on obtient ainsi une variation de débit proportionnelle au changement de vitesse (de débit).

Figure 5: Tube de Venturi

Page 46: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

A2- Fonctionnement du système respiratoire

1- l'appareil respiratoire

La respiration est la fonction principale qui permet le bon fonctionnement du corps humain. En effet, elle permet d'alimenter les organes en oxygène (O2), nécessaire à leur bon fonctionnement et à l’élimination du gaz carbonique (CO2).

Elle est assurée par les systèmes respiratoire et cardio-vasculaire qui travaillent en étroite collaboration. Les organes nécessaires à la respiration se situent depuis le nez jusqu'au thorax. Je décrirai donc succinctement :

-l'arbre respiratoire-les poumons-les muscles respiratoires-le cœur

a- L'arbre respiratoire

Il comprend : Les voies aériennes supérieures :-Le nez

-La bouche -L'Oro-pharynx (ou l'arrière-bouche) -Le pharynx (c'est là que les voies respiratoires croisent les

voies digestives)

Figure 6: Voies aériennes supérieures

Les bronches : Deux bronches principales, qui desservent le poumon droit et le poumon gauche. Chacune de ces bronches se subdivise, les plus petites sont les bronchioles ; elles n'ont pas de cartilage. Elles sont fines comme des cheveux, et se terminent par des petits sacs plein d'air : les Alvéoles pulmonaires.

Les alvéoles sont au nombre d'environ 200 millions et représenteraient une surface de 100 m2 sil elles étaient étalées :

* quand vous inspirez, ces petits sacs se gonflent

Page 47: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

* quand vous expirez, ils diminuent de calibre en se vidant.

Les alvéoles sont donc élastiques. Le poumon entier, par conséquence, présente les mêmes propriétés. Les alvéoles sont entourées sur leurs parois de vaisseaux sanguins à paroi très fine. C'est à travers les parois ces capillaires que se font les échanges gazeux

L'intérieur des bronches est tapissé de cellules revêtues de mucus et portant à leur surface des cils microscopiques mobiles. Ils forment une sorte de tapis roulant dont le rôle est de recueillir et de rejeter vers l'extérieur les poussières éventuellement inhalées et les "débris cellulaires".

Figure 7: L'arbre respiratoire

b- Les poumons

Ils sont constitués par les bronchioles, les alvéoles et les capillaires. -le poumon droit est constitué de trois lobes -le poumon gauche, de deux lobes. Sa face interne présente un emplacement pour le cœur - La plèvre est une mince membrane qui tapisse la paroi intérieure du thorax et le côté externe des poumons. Entre les deux feuillets de la plèvre, une infime quantité de liquide permet aux deux poumons de glisser doucement à l'intérieur de la cage thoracique. L'excès de liquide est appelé pleurésie.

c- Les muscles respiratoires

Le diaphragme se situe en-dessous de la cage thoracique et sépare la poitrine de l'abdomen. C'est le muscle le plus important pour la respiration.

D'autres muscles interviennent :-les muscles intercostaux (entre les côtes)- les muscles abdominaux, les muscles du cou, etc.

Leur rôle devient important lors d'une maladie pulmonaire.

d- Le cœur

Le cœur est un muscle dont la taille normale est de la grosseur du poing. Il fonctionne comme une pompe, en aspirant le sang oxygéné, et en le renvoyant dans l'organisme.On peut le décomposer en deux parties :

-le côté gauche reçoit du sang oxygéné provenant des poumons et l'envoie dans les différents organes du corps.

-le côté droit dans lequel arrive le sang provenant des organes. Ce sang est donc appauvri en O2 (oxygène) et enrichi en CO2 (gaz carbonique)

Fonctionnement du système respiratoire

Page 48: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

a- La respiration

Le rôle essentiel de la respiration est d'amener l'oxygène à tous les organes. Cela nécessite plusieurs étapes :

-l'arrivée de l'air frais dans les poumons, -l'échange de l'oxygène et du gaz carbonique entre l'air contenu dans les alvéoles

pulmonaires et le sang amené par les capillaires,-le transport par le sang de l'oxygène des poumons jusqu'aux différents organes.

Pour cela, deux pompes sont nécessaires :-celle qui renouvelle l'air dans les poumons : c'est le thorax qui est mobilisé par les muscles

respiratoires.-celle qui transporte le sang : c'est le cœur.

b- Le cycle respiratoire

Il comprend : - la phase inspiratoire (entrée de l'air) - la phase expiratoire (sortie de l'air)

A l'inspiration, le diaphragme se contracte, descend, et le thorax s'agrandit. Cette augmentation du volume pulmonaire crée une dépression qui permet à l'air d'entrer dans les poumons et d'aller dans les alvéoles.

A l'expiration, le diaphragme s'élève, le thorax et les alvéoles diminuent de volume, il y a expulsion de l'air des poumons vers la trachée.

c- L'automatisme de la respiration

Au repos, un sujet sain a besoin de seize à dix-huit respirations par minute pour l'approvisionnement en oxygène et l'élimination du gaz carbonique. Cette fréquence respiratoire est maintenue automatiquement par une régulation nerveuse complexe dépendant du taux d'O2 et de CO2 dans le sang.

d- La protection des poumons

Elle se fait à trois niveaux :-Au niveau des voies aériennes supérieures, l'air qui pénètre par le nez est réchauffé,

humidifié et dépoussiéré. Cette régulation se poursuit tout au long de la trachée et des bronches.-Au niveau des bronches, grâce au tapis roulant constitué par les cils, les sécrétions

(poussières et mucus) sont remontées dans le nez. En cas de production trop importante, elles sont en partie dégluties. Eternuer, se moucher ou tousser sont donc des moyens naturels d'éliminer les sécrétions.

-Au niveau des alvéoles pulmonaires, des cellules de grande taille appelées "macrophages" digèrent poussières et microbes grâce aux enzymes qu'elles contiennent.

On a vu que le système respiratoire est un organisme très complexe et indispensable au bon fonctionnement de l'organisme. On s'imagine donc très bien que le moindre problème causé au système respiratoire peut engendrer de gros problèmes sur tous les organes du corps.

Page 49: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

A3 - Fichier d’aide dans le programme de supervision

Sommaire

Sommaire

Présentation de l’interface

Présentation de l’interface

Page 50: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Configuration de la courbe de débit

Page 51: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Fenêtre de déroulement du protocole

Page 52: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Fenêtre principale page 1

Page 53: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Fenêtre principale page 2

Page 54: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Comment générer une courbe de débit   ?

Générer une courbe de débit page 1

Page 55: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Générer une courbe de débit page 2

Page 56: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Générer une courbe de débit page 3

Page 57: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

A4 – Documentation sur la carte d’acquisition

Typographical Conventions“Warning" stands for information, which indicate damages of hardware or software, test setup or injury to persons caused by incorrect handling.You find a "note" near to

– information, which have absolutely to be considered in order to guarantee an operation without any errors

– advice for efficient operation "Information" refers to further information in this documentation or to other sources such as manuals, data sheets, literature, etc.Program instructions (generally) and user inputs are characterized by the font

Courier New.Names of user defined variables are printed in italics. Typography for ADbasic instructions (capital letters). File names and file paths are also printed in the font Courier New and furthermorein brackets. Bits in data (here: 16 Bit) are referred to as follows:

1 Information about this manualThis manual contains comprehensive information about the operation of the ADwin-light-16

system. Additional information are available in– the manual "ADwin Driver Installation“, which describes all interface installations for the

ADwin systems. Start your installation with this manual.– the description of the configuration program ADconfig. With it, you initialise the

communicationfrom the corresponding interface to your ADwin-light-16 system.– the manual ADbasic, which contains all instructions for the compiler ADbasic and explains the

principle of ADwin systems in particular.- the description of the driver installation and command instructions for all well known

development environments.

Please pay attention to the following information:To have your ADwin systems work appropriately, keep strictly to the information given in this

documentation and in other mentioned manuals. The ADwin system must be operated by qualified personnel only. Programming, start-up and operation, as well as the modification of program parameters must be performed only by appropriately qualified personnel. The referred persons must be capable of recognizing possible hazards that may arise from programming and program changes, and that may be generally produced by mechanical, electrical or electronic devices. Qualified personnel are persons who, due to their education, experience and training as well as their knowledge of applicable technical standards, guidelines, accident prevention regulations and operating conditions, have been authorized by a quality assurance representative at the site to perform the necessary acivities, while recognizing and avoiding any possible dangers. (Definition of qualified personnel as per VDE 105 and ICE 364). This product documentation and all documents referred to, have always to be available and to be observed. For damages caused by disregarding the information in this documentation or in all other additional documentations, no liability is assumed by the company Jäger Computergesteuerte Messtechnik GmbH, Lorsch, Germany. This documentation, including all pictures is protected by copyright. Reproduction, translation as well as electronical and photographical archiving and modification require a written permission by the company Jäger Computergesteuerte Messtechnik GmbH, Lorsch, Germany.OEM products are mentioned without referring to possible patent rights, whose existence is not to be excluded. Subject to change.

Page 58: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

2 System description2.1 ADwin system concept

ADwin systems guarantee fast and accurate operation of measurement data acquisition and automation tasks under real-time conditions. This offers an ideal basis for applications such as:

– very fast digital closed-loop control systems– very fast open-loop control systems– data acquisition with very fast online analysis of the measurement data– monitoring of complex trigger conditions and many more

ADwin systems are optimized for processes which need very short process cycle times of one millisecond upto some microseconds. The ADwin system is equipped with analog and digital inputs and outputs, a fast processor (32-bit floating point signal processor) and local memory. The processor is responsible for the whole real-time processing in the system. The applications are running independent of the PC and its workload. The processor of the ADwin system processes each measurement value atonce. In one cycle you can acquire the status of the inputs, process the status by the help of any mathematical functions, and react to the results, even at very fast process cycle times of some microseconds. This results in a perfect and logical work sharing: The PC runs a program for visualizing of data, for input and operation of the processes, togeher with access to networks and data bases, while the processor of the ADwin system executes all tasks which require real-time in parallel. The operating system for the DSP of the ADwin system has been optimised to reach the fastest response times possible. It manages parallel processes in a multitasking manner. Low priority processes are managed by time slicing. Requested high priority processes interrupt all low priority processes and are instantaneously and completely executed (preemtive multitasking). High priority processes are executed as time-controlled or event-controlled processes (external trigger).The built-in timer is responsible for the precise calling of high priority processes. It has a resolution of 25 nanoseconds. The ADwin systems are characterized by an extremely short response time of only 300 nanoseconds during the change from a low to a high priority process. A continously running communication process enables a continous data exchange between the Adwin system and the PC even during applications in process. The communication has no influence on the real-time capability of the ADwin system, nevertheless, it is possible to exchange data at any time. The real-time development tool ADbasic gives the opportunity to create time-critical programs for ADwin systems very easily and quickly. ADbasic is an integrated development environment under Windows with possibilities for online debugging. The habitual, easy-to-learn BASIC instruction syntax has been extended by many more functions, in order to get direct access to inputs and outputs as well as by functions for process control and communication with the PC. Communication between ADwin system and PC

The ADwin system is connected to the PC via an USB interface (optional Ethernet). After power-up the ADwin system is booted from the PC via this interface. Afterwards the ADwin operating system is waiting for instructions from the PC which it will process. There are two kinds of instructions: On the one hand instructions, which transfer data from the PC to the ADwin system, for instance „load process“, „start process“ or „set parameter“, on the other hand instructions which wait for a response from the ADwin system, for instance „read variables“ or „read data sets“. Both kinds of instructions are processed immediately by the ADwin system, which means immediate and full range responds. The ADwin system never sends data to the PC without request! The data transfer to the PC is always a response to an instruction coming from the PC. Thus, embedding the ADwin system into various programming languages and standard software packages for measurements is easily made, because they have only to be able to call functions and process the return value. Under Windows 95/98/NT/ME/2000/XP you can use a DLL and an ActiveX interface. On this basis the following drivers for user interfaces are available:.NET, Visual Basic, Visual-C, C/C++, Delphi, VBA (Excel, Access, Word), TestPoint, LabVIEW / abWINDOWS, Agilent VEE (HP-VEE), InTouch, DIAdem, MATLAB. The easy, instruction-oriented communication with the ADwin system enables several Windows programs to access the same ADwin system in coordination at the same time. This is of course a great advantage when programs are developed and installed.

Page 59: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Fig. 1 – Concept of ADwin systems

2.2 ADwin-light-16The ADwin-light-16 system is equipped with the 32 bit signal processor ADSP 21062

(SHARC) from analog Devices with floating point and integer processing. It is responsible for the complete measurement data acquisition, online processing, and signal output and can instantaneously process – in combination with the A/D-converter - each measurement value with sample rates of up to 100 kHz. The on-chip memory with 256 kB has a very short access time of 25 ns and is large enough to hold the complete ADwin operating system, the Adbasic process and all variables. In order to get maximum access speed, all inputs and outputs are memory mapped in the external memory section of the DSP. For buffering larger quantities of data the DSP uses an external memory (SDRAM) of 8 MB. In a 37-pin D-SUB socket there are 8 analog inputs available, which are connected to a multiplexer, whose output signal is converted with a 16 bit analog- to-digital converter (ADC, see figure below).

ADwin-light-16 is equipped with 2 analog outputs with 16 bit resolution and an output voltage range of -10 V ... +10 V. You can synchronize and calibrate the output of the voltage of all DACs per software. In order to smooth the output signal, it passes through a low pass filter with a cut-off frequency of fc 700 kHz. 6 digital inputs and 6 digital outputs are available on the 37-pin D-SUB socket. The inputs and outputs are TTL-compatible. ADwin-light-16 is equipped with a trigger input (EVENT, see also chapter 5.2 “Digital Inputs and Outputs“). Thus, processes can be triggered by a signal (trigger) and completely processed at once (see ADbasic manual, chapter "Structure of the ADbasic program“). The standard scope of delivery for ADwin-light-16:

Page 60: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

– ADwin-light-16 system– USB or Ethernet connecting cable, length 1.8 m– ADwin-CD-ROM– Manual "Driver Installation“– this hardware manual The additional items for the type with external enclosure (L16-EXT)

are:– Slot metal sheet with power supply socket and PC-internal connecting cable– power supply cable (between slot metal sheet and L16-EXT)

ADwin-light-16 is available as basic version with USB connection in different designs.

The designs L16-EURO and L16-EXT can optionally be delivered with USB or 10/100 MBit Ethernet interface. The available types of the ADwin-light-16 basic version are described in the following table.

Please take into account that the power supply for the different designs varies:– +5 Volt for L16-PCI, L16-EURO and L16-cPCI– +10 ... +18 Volt for L16-EXT

2.2.1 Ordering options (no later upgrading possible)ADwin-light-16 can be equipped with the following options:

– L16-CO1: counter option with a 32-bit up/down counter with four edge evaluation for incremental encoders.

– L16-DIO1: add-on module with• 32 digital inputs/outputs (programmable in groups of 8)• CAN interface (high speed)• two 32 bit up/down counters for impulse, period duration and duty cycle

measurements as well as a four edge evaluation for the connection of incremental encoders. – L16-Boot: Flash-EPROM bootloader for standalone operation without PC. Can only be

ordered in combination with an Ethernet interface.

Page 61: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

– L16-Mount: Kit for installation of the system on a DIN rail in a control cabinet.

Please take into account, that the counters of the add-on boards are not additionally available, but they replace the counters of the basic version. Therefore you cannot use the counters of different add-ons at the same time.

2.2.2 Accessories– ADbasic, real-time development tool for all ADwin systems– cable connectors for an external power supply (for L16-EXT only)– external power supply (necessary for notebook operation)

3 Operating EnvironmentThe borad of the ADwin-light-16 may only be operated in a closed casing (already given with L16-EXT design). According to type and accessories (see chapter 2, delivery options / accessories) the system can be operated in 19" enclosures, control cabinets or as a mobile system (e.g. in cars). The ADwin-light-16 system must be earth-protected, in order to

– build a ground reference point for the electronic– conduct interferencing energy to earth.

Do connect the GND socket, which is internally connected with the ground reference point and the enclosure, via a short low-impedance solid-type cable to the central earth connection point of your installation. The types with USB interface have a galvanic connection to the PC via USB and possibly also via power supply. The types with Ethernet interface have their data lines galvanically isolated, but the ground potentials are connected, because the shielding of the Ethernet connector (RJ-45) is connected with GND. Transient currents, which are conducted via the enclosure or the shielding, have influence on the measured signal. If you want to prevent transient currents, please make sure that the shielding is fully operative. Take measures for bleeding off interferences, such as earthing the shielding close to the entry into the control cabinet. The more frequently you earth the shielding on its way to the machine the better the shielding will operate. Use cables with shielding on both ends for signal lines. Here too, you should reduce the bleed off of interferences via the enclosure by using screen clips. The ADwin-light-16 system is internally operated with a voltage of +5 V and ±15 V against GND and thus is not life-threatening. For operation with an external power supply, the instructions of the manufacturer apply. ADwin-light-16 is designed for operation in dry rooms. The installation environment (PC or 19“ rack) shall have an ambient temperature of +5 ... +50 °C, and a relative humidity of 0 ... 80 % (no condensation, see also Annex). The temperature of the casing (surface temperature) of the type L16-EXT must not exceed +55 °C, even under extreme operating conditions - e.g. in a control cabinet or if the system is exposed to the sun for a longer period of time. Otherwise, you risk damages to the device or the output of not-defined data (values) which can cause damages to your measurement device under unfavorable circumstances.

4 Start-up of the HardwareDo not connect any cables to the ADwin-light-16 system on start-up before you have executed the following steps:

– Carry out the driver installation at the PC or notebook (see manual: "ADwin Driver Installation“).

– Install your ADwin-light-16 board in the PC or 19“ rack; see below "Connect PC", (not when using an L16-EXT).

– Connect the device with the PC using the data transfer cable. – Read chapter 5 “Inputs and Outputs“ in this manual.

– Only now connect the signal lines to the inputs and outputs.Please pay attention that a reliable power source is supplied. This concerns the PC (standard scope of delivery), otherwise also the external power supply, if operated in a car, the battery voltage. If using current-limiting power supplies, please pay attention the current demand on power-up which can be a multiple of the idle current. You find more detailed information in the Technical Data (Annex). In case of power failure all unsaved data are lost. Not-defined data (values) can under unfavorable circumstances cause damages to your measurement device. If you have completed the installation of the ADwin drivers and the configurations in the ADbasic menu "Options/Compiler“, then install your ADwin-light-16 board into the PC or 19“ rack; use the manual "ADwin Driver Installation“ for this. Avoid direct contact with uninsulated parts in order to protect them against electrostatic discharges. Now connect your data transfer cable (USB or Ethernet) and start the computer. Start ADbasic and boot the ADwin system by clicking the boot button "B“.

Page 62: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

The display in the status line: "ADwin is booted“ shows that the operating system has been loaded appropriately and that ADbasic can establish a connection to the ADwin system. Programming the ADwin systems is described more detailed in the Adbasic manual. Start with the programming examples in the ADbasic Tutorial.

5 Inputs and OutputsThe ADwin-light-16 system is equipped with a connecting socket for USB or Ethernet as well as with a 37-pin D-SUB socket. You will find on the D-SUB socket (pin assignment next page) as follows:

– 8 analog inputs– 2 analog outputs– 6 digital inputs and outputs each– 1 digital trigger input– 2 impulse/event counters with 32 bit– Output for power supply +5V; L16-PCI and L16-cPCI also ±12V

The design L16-EXT has an additional GND socket (see earth protection, page 7), a power input socket and a manual on/off switch. All inputs and outputs may only be operated according to the specifications given (see Annex A-1: Technical Data). In case of doubt, ask the manufacturer of the device to which you want to connect the ADwin-light-16 system. Open inputs can cause errors – above all in an environment which is not free of any interferences. For your own safety, set unused inputs as close as possible to the D-SUB socket on a defined level (e.g. GND). Separate these inputs also from open-ended lines. Exception to this is the event input, which already has an internal pull-up resistor (10 k).

Page 63: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

For fast and easy programming there are standard instructions available in the compiler ADbasic, which enable a user to easily measure or output data (see also ADbasic manual). Use other instructions (such as direct register access) only if extremely time-critical or special tasks require to do so. (see also chapter 11). More detailed information about the analog as well as the digital inputs and outputs can be found in the following chapters.

5.1 Analog Inputs and OutputsThe design L16-EXT has to be earth-protected, in order to execute measurements without interferences. For this, connect the GND socket via a low impedance solid-type cable to the central earth connection point of your installation. When using the design PCI or EURO, the earth protection is made via PC orthe 19“ rack. At the L16-EXT system, the enclosure is connected to the protective earth conductorof the PC via the GND-line of the power supply cable as well as via the GND-line of the USB cable.

5.1.1 InputsThe system has 8 analog measurement inputs, which are connected to the 16-bit analog-to-digital converter (ADC) via one multiplexer. The inputs are solely odd-numbered (ADC 01, ADC 03, ... ADC 15), which has to be considered upon programming. The analog inputs are differential. For each of the measurement channels there is one plus and one minus input; between them the voltage difference ismeasured (pay attention to the potential of the input lines). The signal at the multiplexer output is converted by a 16-bit analog-to-digital converter (ADC) (see Fig. 2 – Functions diagram (with USB interface)). The conversion time is 10 µs at a resolution of 305 µV. The instruction ADC() executes a complete measurement with an ADC on one analog input. Thus, this instruction considers for instance the settling time of the multiplexer and assures perfect measurements (see also ADbasic manual).

5.1.2 OutputsThe standard instruction DAC(number,value) checks each of the values exceeding or falling below of the 16-bit value range. If the value is in the 16-bit value range, the indicated value is output on the output number. If it is not, the maximum or minimum value is output (see also ADbasic manual).

5.1.3 Calculation BasisThe voltage range of the ADwin-light-16 system at the analog inputs and outputs is –10 V to +10 V (bipolar 10 V). The 65,536 (216) digits are allocated to the corresponding voltage ranges of the ADCs and DACs insofar that

– 0 (zero) digits correspond to the maximum negative voltage and– 65,535 digits correspond to the maximum positive voltage

The value for 65,536 digits, exactly 10 Volt, is just outside the measurement range, so that you will get a maximum voltage value of 9.999695 Volt for the 16-bit conversion.

Page 64: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

In the bipolar settings you will get a zero offset. For the voltage range of –10 V ... +10 V applies UOFF = –10 V The quantization level ULSB is the smallest digitally displayable voltage difference and is equivalent to the voltage of the least significant bit (LSB). The ULSB is equivalent to the formula: 20 V / 216 = 305.175 µV. The measured 16-bit value of the ADC is returned to the lower word of the binary cell. Here you must also find the DAC value to be output.

Tolerance rangesSlight deviations regarding the calculated values may be within the tolerance range of the individual component. Two kinds of deviations are possible, which are indicated in this manual (in LSB):– The integral non-linearity (INL) defines the maximum deviation from the ideal straight line of the conversion characteristics curve, covering the whole input voltage range.– The differential non-linearity (DNL) defines the maximum deviation from the ideal quantization level.

5.2 Digital Inputs and Outputs

Page 65: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

6 digital inputs (DIGIN 00 … DIGIN 05) and 6 digital outputs (DIGOUT 00 … DIGOUT 05) are available on the 37-pin D-SUB socket. You will find the pin assignment in figure 6 on page 10. The inputs DIGIN 04 and DIGIN 05 can be used as counter inputs at the same time (this is not possible when using a DIO1-add-on) and can optionally be used for both purposes. The digital inputs and outputs are TTL-compatible and not protected against overvoltage. Do not use connections marked as "RESERVED“. They are reserved for upcoming changes or expansions and can cause damages to your system if you do not pay attention to this fact. The ADwin-light-16 system is equipped with an external trigger input (EVENT). An external signal (trigger) with rising edge can start processes, which are processed completely and immediately (see ADbasic manual, chapter "Structure of an ADbasic-Program“).

5.3 Impulse/Event CounterThe ADwin-light-16 system is equipped with 2 impulse/event counters with 32-bit, which you can configure or read out both together or each individually. With the options L16-CO1 and L16-DIO1 the counters described here are replaced by other counters. You will find the corresponding description in chapter 7 “CO1 Counter Add-On“ or chapter 8 “DIO1 Add-On“.

5.3.1 HardwareThe figure shows the design of a single counter.

The counters are externally clocked that means they increase their counter values by incrementing at each positive edge at the clock input (CLK). Both counters have a latch A, into which the counter value can be latched (by programm instruction) for read out. The counters are controlled with special ADbasic instructions via the control register. The instructions are described in Fig. 9 – Counter instructions – short reference (below) and in chapter 11.1. The clock inputs are on pins 15 and 16 (see Fig. 6 – Pin assignment inputs/outputs, page 10); for the correct function TTL compatible signals are necessary. More details and limit values can be found in the Technical Data in the Annex. Both inputs can optionally be used as digital signal input (see also chapter 5.2). The inputs of the impulse/event counters have a pull-down resistor. Nevertheless open-ended inputs can cause errors in an environment which is not free of interferences. Therefore set the unused inputs to a defined level (e.g. GND).

5.3.2 SoftwareThe instructions necessary for accessing the counters can be found in the include file: <ADWL16.INC>Include this file at the beginning of a program so that you can use these instructions. The instructions are illustrated in chapter 11.1. The instructions for both counters are shortly illustrated in the following table. You can configure each counter individually or both counters together.

Page 66: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

Please configure a counter according to the following order:1. disable specified counter (CNT_ENABLE)2. clear counter (CNT_CLEAR)3. enable counter(CNT_ENABLE)For further processing of the counter value in the ADbasic program, transfer the value into latch A and read it from there. The instruction CNT_ENABLE always accesses all counters. Even if you want to change the status (disabled/enabled) of only one counter, you also have to configure the counters whose status shall remain unchanged.

5.3.3 Evaluation of the counter contentsThe binary counters generate 32 bit values. Distinguish clearly between the evaluation of these binary values (e.g. differences) and the screen representation as decimal numbers. To correctly evaluate the counter contents you need its original 32 bit values, especially with calculating differences. This is guaranteed only by use of ADbasic variables of type INTEGER or LONG. The representation of 32 bit values in ADbasic often leads to confusion, because the signless counter value is shown as signed decimal number (see circle below). Consequently a transition between positive and negative range of numbers is shown on the screen, which yet is of no importance to the evaluation of the counter contents. For completion the following describes the interpretation of a binary value: The most significant bit (MSB) is interpreted as sign. With a positive sign, the following 31 bits are directly interpreted as numerical value; binary and decimal value are similar. With a negative sign, the 31 bits are first inverted, one added, and then interpreted as numerical value (2’s complement); thus, negative decimal numbers have an absolute value different to the corresponding binary value. Calculate differences only with integer numbers (INTEGER, LONG). For programming please remember that an "lap overflow“ between the read out of two counts - i.e. the current counter value "laps“ the last counter value which has been read - is not registered.Such a lap overflow occurs after some 3½ minutes with an input frequency of 20 MHz or after more than 14 minutes with 5 MHz.

Page 67: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

5.4 Time-critical tasksFor extremely time-critical tasks you can use instructions with which you have direct access to control and data registers of the hardware (see ADbasic manual). These registers can be found in the memory address area of the ADSP (memory mapped). These instructions also allow to optimize the program structure. Contrary to the standard instructions ADC() and DAC() the instructions for direct access do not have any test routines. Before you use them you should have good knowlegde about programming and time and function sequences in an analog-to-digital converter, because you are now programming closely to the hardware.

Analog inputs and outputsExecute the following ADbasic instructions instead of the standard instruction ADC() according to the following order:

SET_MUX()... 'wait for settling timeSTART_CONV()WAIT_EOC() 'wait for end of conversionREAD_ADC()

It is important to set a sufficient time-delay using additional programming instructions between the instructions START_CONV() and SET_MUX(), in order to consider the multiplexer settling time (see also ADbasic manual: "Instruction Reference“). Use the waiting times shown below for instance for computing operations and thus, save computing time:– Settling time of the multiplexer: At a maximum voltage jump of 20 V it is6.5 µs.– Conversion time of the 16 bit ADC: 10 µs.

Hardware addresses of the control and data registersA measurement can be executed very fast, when you directly access the control and data registers of the ADC. If you have made sure that the (calculated) analog outputs values are within the range limits, you can write very quickly into one or more DAC registers with direct access to the hardware registers, and you can synchronously start the output (see ADbasic manual). The hardware addresses of the registers can be found on the following page, grouped as analog inputs, analog outputs, digital inputs/outputs and counters. Please take into account that some registers have an influence on several processes.

Page 68: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un
Page 69: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

A5 - Documentation technique du simulateur de poumon ( Dual Adult TTL)

Page 70: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

A6 - Code source du programme de supervision

Feuilles   :

- ADC1

- CmdPoumon

- Config

- CourbeMenu

- DAC2

- Démarrage

- FrmAbout

- frmMain

- frmProtocole

- Menu

Page 71: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

A7 - Code source AD Basic

Page 72: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

A8 - Code source Java

Classes   :

- Main

- Cycle

- Protocole

- Resume

- Read

- UserInterface

- Run

Page 73: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

A9 – Courbes expérimentales du coefficient de transfert en fonction de la compliance ressort du soufflet esclave pour les résistance pneumoflow RP0, RP5, RP20 et RP200

RP0

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16

compliance patient (L / cm H2O )

coef

ficie

nt

RP05

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16

compliance patient (L / cm H2O)

coef

ficie

nt

Page 74: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

RP20

0

0.2

0.4

0.6

0.8

1

1.2

1.4

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16

compliance patient (L / cm H2O)

coef

icie

nt

RP200

0

0.5

1

1.5

2

2.5

3

3.5

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16

Page 75: zerahm.free.frzerahm.free.fr/Stock/Seb/1910.doc · Web viewCôté mémoire, il y a à disposition 8MB de mémoire et 256 KB de mémoire interne au processeur. Cette dernière a un

A10 – Courbes de la pression mesurée en fonction du débit pour les résistances pneumoflo RP05 et RP50

Et Vérification des valeurs de l’annexe A5