Skip to content

JulienDevillers/Controller

 
 

Repository files navigation

Controller v2

The C_Controller subdirectory contains the code for Controller v2 that is currently being tested on the final hardware (mechanic+electronic).

Integration is performed on master using Pull Requests from feature/fix branches that can be contributed from anyone with an accompanying issue describing the fix/enhancement contributed.

Merge into master is based after verification on either the simulated environment (for highlevel code with unit tests) or the final hardware available at MinMaxMedical premises. Verification priorities are set by MinMaxMedical but can always be discussed by mail or on teams/discord channels.

Controller Target

NB: C_Controller project allows to test part of the code in simulated environments more or less close to the target based on C99 GCC 7 compiler

Controller Specifications (partial)

Sensors, electro-valves and controller

Recovid-synoptique

![recovid-synoptique](image/high level synoptique.jpg)

lexique

Mesure

Nom definition range resolution
Paw pression voie aerienne (en cmH20) -2 ; 100 0.1
QPatientSLM debit patient a 21°C et 1013hPa -200 ; 200 0.1
QPatientBTPS debit Patient a 37°C, Pression ambiante et 100% Humidite (breath Temperature and pressure saturated) -200 ; 200 0.1
RawO2 tension qui sort de la cellule O2
PAtmo Pression atmospherique (exprime en hpa) 0-1200 1
VTi volume tidal inspiratoire (ml) 0-1500 1
VTe Volume tidal expiratoire (ml) 0-1500 1

Setting

Nom definition range resolution defaut
VT Volume (de marée) (ml) 300 ; 800 10 500
PEPs Pression expiratoire positive setting(cmH2O) 0(off) ; 15 1 5
FR Frequence Respiratoire (bpm) 12 ; 35 1 15
VMax Debit de pointe (L/Min) 30 ; 90 1 60
TPlat Temps de plateau (ms) 0 ; 200 10 50

Setting calculé:

Nom definition range resolution
Ti Temps d'inspiration(seconde) = VT(en L)/VMax(L/Min) 0;2 0.01

Alarme

Nom definition range resolution defaut
VTe Min Volume expiratoire minimum (en ml) 0 ; 800 10 400
Pmin Pression de pointe minimum (cmH2O) 2 ; 60 1 20
Pmax Pression de pointe maximum (cmH2O) 12 ; 90 1 60

principe de fonctionement

sensing

en continu (1kHz) on lit Paw et QPatientSLM

en continu (1Hz) on lit RawO2 et PAtmo

  • O2Concentration = RawO2*Gain
  • QPatientBTPS = QPatientSLM * 1013/(Patmo-62,66) * (310°K/294°K)
  • VTi = integral de QPatientBTPS durant toute l'inspiration et a l'expiration jusqu'a ce que le debit repasse en negatif
  • VTe = integrale de QPatientBTPS durant le reste du temps (Q negatif et positif)
  • VMi = somme des 8 derniers VTi * frequence respiratoire/8
  • VMe = somme des 8 derniers VTe * frequence respiratoire/8
  • PEP = moyenne de Paw durant les 100 derniere ms de l'expi
  • PPlat = moyenne de Paw durant les 50 derniere ms du plateau ou de la pause inspiratoire
  • PPeak = max de Paw durant inspiration + 100ms
  • FiO2 = moyenne de O2Concentration sur le cycle
  • Vol_ = integrale QpatientBTPS entre le debut de l'inspiration et celle du cycle d'apres

therapie

Inspiration :

  • on ferme l'electovalve I/E (Valve expi connecte a la sortie du ballon)
  • on actionne le ballon pendant le temps Ti a la vitesse determiné (pas de controle durant le cycle)
  • apres le Ti on commence a faire revenir le ballon mais on garde l'electrovanne fermé durant le temps de plateau ou le temps de la pause inpiratoire (tant que le medecin a le bouton appuyé et au maximum durant 5s) puis passage a l'expiration.
  • si Paw > PMax alors on passe directement en expiration.Attention pas de regulation du volume a part a la baisse dans ce cas là

Expiration

  • On ouvre l'electrovanne (plutot simple)
  • si le medecin appuie sur pause expiratoire on ferme l'electrovanne tant qu'il est appuye dessus. Quand il relache on repart en inspi directement. la duree maximum de la pause expiratoire est de 5s.

regulation

cycle a cycle pour la PEP et le VT

  • on ajuste la commande de PEP une fois qu'on a la mesure du cycle (a la fin de l'expi pour avoir le temps d'atteindre la pression de commande)
  • pour le VT on va ajuster le nombre de tour de consigne (attention a ne pas compenser tout d'un coup)

Pour le moment je pense qu'il faut avoir une vitesse constante. je ne pense pas qu'il soit necessaire de viser une forme de debit precise.

Alarme

general

une alarme est compose de deux elements :

pour le moment (avant formalisation de l'analyse de risques) on a deux niveaux d'alarme: l'alarme audible est gere entierement par le composant mallory (il suffit d'activer la bonne entree) l'alarme visuelle est gere en pilotant des LED

Priorite couleur Fréquence de clignotement Rapport cyclique
High rouge 1,4 Hz à 2,8 Hz (on va dire 2Hz) 20 % à 60 % en marche (on va dire 50%)
Medium Jaune 0,4 Hz à 0,8 Hz (on va dire 0.5Hz) 20 % à 60 % en marche (on va dire 50%)

attention il faut que le voyant soit visible à 4 m

Pmax

Priorite Activation deactivation Action
Haute on alarme si durant 2 cycle consecutif Paw >= max(PMax, PEPs+10). on arrete l'alarme si durant un cycle complet Paw <PMax si Paw > max(PMax, PEPs+10) alors on passe directement en expiration. Attention pas de regulation du volume a part a la baisse dans ce cas là

Pmin

Priorite Activation deactivation Action
High on alarme si durant 15s consecutive PPeak < Max(PMin, PEPs+2). on arrete l'alarme si PPeak >Max(PMin, PEPs+2)

PEP Haute

Priorite Activation deactivation Action
High on alarme si durant 3 cycle consecutif PEP > PEPs + 2 cmH2O. on arrete l'alarme si PEP < PEPs + 2 cmH2O

PEP basse

Priorite Activation deactivation Action
Medium on alarme si apres les 8 premiers cycle de la ventilation, durant 3 cycle consecutif PEP < PEPs - 2 cmH2O. on arrete l'alarme si PEP > PEPs - 2 cmH2O

VTmin

Priorite Activation deactivation Action
Medium on alarme si durant 3 cycle consecutif VTe < VTe Min. on arrete l'alarme si VTe > VTe Min

VTmax

Priorite Activation deactivation Action
Medium on alarme si durant 3 cycle consecutif VTe < VT+100mL. on arrete l'alarme si VTe < VT+100mL

Calibration O2 (si on a une cellule O2)

c'est une procedure a part ou l'on met la cellule O2 à l'air (pendant 2minute au minimum) et on prend la valeur RawO2 et Patmo a la fin des 2 minutes. a faire avant le debut de la ventilation probablement en assurant un passage d'air devant la cellule pour flusher toute trace d'O2.

Sensors

Airflow Sensor

Embedded high end solution

Sensirion SFM3300-AW

Application Note I2C

Effects of gas mixtures and humidity on the sensor signal

Connector Interface for SFM3x00-AWand SFM3300-DFlow Sensors

DIY solution

Pneumotach setup with a differential pressure sensor. According to the datasheet, de pressure difference is around 5mbar @ 180L/min.

Note : the pneumotach mentioned above has a flexible flapper. Hence, its deltaP response is not linear to flow. We might have to calibrate thoroughly if high flows are to be accurately measured. ref

Differential pressure sensors ordered:

HSCDRRD006MDSA3 SPI, +-6mbar

SP610-500pa I2C, +-5mbar

Paw sensor

Honeywell HSC series (all selected are i2c):

1psi differential: HSCDDRD001PD2A3, HSCDRRN001PD2A3

1psi gage: HSCDLND001PG2A3, HSCDRRD001PG2A5

Honeywell APB series:

ABPLANT001PG2A5

Amphenol:

1psi differential : NPA-700B-001D

1psi gage : NPA-700B-001G

Patmo, Tatmo sensor

All are I2C/SPI MM5611

Bosh bmp280

Bosh bme280

About

Sensors, electro-valves and controller

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 96.9%
  • C++ 2.7%
  • Assembly 0.2%
  • CMake 0.1%
  • Python 0.1%
  • Objective-C 0.0%