Contents — find the section you need
Cuves de nutriments en AEC — comptabilité du réapprovisionnement et de la dilution
Rétablir ensemble le volume et la concentration
Une cuve contient 90 L à 80 mg/L d'un composant suivi. Ajouter 10 L d'eau sans composant rétablit le volume à 100 L mais réduit la concentration à 72 mg/L. Un niveau bas et un déficit de composant nécessitent donc des comptabilités séparées.
Ce guide étend les fondamentaux de la zone racinaire aux opérations discrètes. Toutes les valeurs sont synthétiques ; 100 mg/L est un objectif arithmétique, et non une recommandation de culture. Nous suivons un composant de concentration connue, sans calculer une recette d'engrais, une concentration à partir de la CE, ni des doses acide/base.
Définir la limite
Supposons une cuve parfaitement mélangée avec l'alimentation et le retour de la boucle de culture arrêtés. Pendant chaque opération, il n'y a ni absorption, ni évaporation, ni précipitation, ni réaction, et les volumes de liquide sont additifs. Une cuve en fonctionnement a besoin des débits de volume et de composant d'alimentation et de retour dans son bilan. Si la limite englobe tout le système de circulation, la circulation interne n'est pas un réapprovisionnement externe.
Pour un volume V [L], une concentration C [mg/L] et une masse de composant dissous M [mg], M=VC. Ajouter un volume V_a à la concentration C_a donne
N'utilisez C_a=0 que si l'eau ajoutée ne contient aucun composant suivi. Le guide de gestion des nutriments de l'OSU décrit l'analyse de l'eau source et l'attention portée à la concentration en sels, au pH, à l'alcalinité et aux ratios de nutriments.
Comparer trois ajouts
Commencez avec 90 L à 80 mg/L : 7 200 mg. Supposez une concentration de solution mère de 10 000 mg/L pour ce composant.
| Opération | Volume final | Masse finale de composant | Concentration finale |
|---|---|---|---|
| Ajouter 10 L d'eau sans composant | 100 L | 7 200 mg | 72,00 mg/L |
| Ajouter environ 0,181818 L de solution mère seule | Environ 90,181818 L | Environ 9 018,18 mg | 100,00 mg/L |
| Ajouter 0,28 L de solution mère et 9,72 L d'eau | 100 L | 10 000 mg | 100,00 mg/L |
La solution mère ajoute aussi du volume. Pour une concentration cible C_t, une concentration de solution mère C_s et un volume de solution mère x,
Élever la concentration exige C_s>C_t>C_0. Une solution mère à la concentration cible ne peut pas amener exactement une concentration initiale plus basse à cette cible avec un ajout fini. Une solution négative indique que l'ajout proposé ne peut pas atteindre l'objectif.
Si le volume final V_f est aussi prescrit et que l'eau d'appoint ne contient aucun composant,
Les deux ajouts doivent être non négatifs et le volume final doit convenir au récipient. Ici, ce sont 0,28 L de solution mère et 9,72 L d'eau. Spécifier uniquement la concentration donne une réponse différente de spécifier à la fois la concentration et le volume.
Vidanger et diluer ont des effets différents
Commencez maintenant avec 100 L à 120 mg/L : 12 000 mg. Vidanger 10 L de solution bien mélangée retire 1 200 mg. Le reste est 90 L et 10 800 mg, toujours à 120 mg/L. Ajouter ensuite 10 L d'eau sans composant donne 100 L à 108 mg/L.
Ajouter 20 L d'eau sans vidange donne à la place 120 L à 100 mg/L. La cuve contient toujours 12 000 mg, et il faut davantage de capacité de réserve.
| Condition | Équation | Limite |
|---|---|---|
| Vidanger D L d'abord, puis remplacer par de l'eau | C_1=C_0(1-D/V_0) | Mélange parfait ; appoint sans composant |
| Ajouter W L d'eau sans vidanger | C_1=V_0C_0/(V_0+W) | Le volume augmente |
| Entrée et sortie simultanées à volume constant | C(t)=C_{in}+(C_0-C_{in})e^{-Qt/V} | Mélange parfait, débit constant, sans absorption ni réaction |
Pour un remplacement simultané de 10 L, Qt/V=0,1 et C_{in}=0 donnent environ 108,58 mg/L. Cela diffère des 108 mg/L obtenus en vidangeant d'abord. L'ordre des opérations doit figurer dans le journal.
Reproduire la comptabilité en Python
Enregistrez ceci sous tank_accounting.py et exécutez python3 tank_accounting.py. Le script n'utilise que la bibliothèque standard.
from math import isfinite
def mix(v, c, added_v, added_c):
values = (v, c, added_v, added_c)
if not all(isfinite(x) for x in values):
raise ValueError("finite values required")
if v <= 0 or min(c, added_v, added_c) < 0:
raise ValueError("invalid volume or concentration")
return (v * c + added_v * added_c) / (v + added_v)
v, c, target, stock = 90.0, 80.0, 100.0, 10000.0
x = v * (target - c) / (stock - target)
print(f"water top-up: {mix(v, c, 10, 0):.2f} mg/L")
print(f"stock addition: {x:.6f} L, {mix(v, c, x, stock):.2f} mg/L")
y = (100 * target - v * c) / stock
print(f"fixed final volume: stock {y:.2f} L, water {10-y:.2f} L")
print(f"drain then refill: {mix(90, 120, 10, 0):.2f} mg/L")
print(f"dilute only: {mix(100, 120, 20, 0):.2f} mg/L")
Les résultats sont 72,00 mg/L ; 0,181818 L et 100,00 mg/L ; 0,28 L et 9,72 L ; 108,00 mg/L ; et 100,00 mg/L. Avant d'expérimenter avec une autre concentration de solution mère, vérifiez les conditions d'atteignabilité ci-dessus et assurez-vous que le dénominateur n'est pas nul.
De la comptabilité au contrôle
Le guide de l'OSU sur les tests d'eau d'irrigation explique que la CE et les TDS n'identifient pas les concentrations individuelles de sels. Substituer la CE à C ne permet pas de calculer le réapprovisionnement d'un composant spécifique. Un engrais mélangé modifie plusieurs composants à la fois, donc atteindre une seule cible ne rétablit pas toute la composition.
Un capteur n'a pas non plus besoin d'atteindre immédiatement la prédiction du mélange parfait. Le guide de gestion des nutriments de l'OSU appelle à agiter et à laisser les lectures se stabiliser. Sur la base de cette distinction, cet article propose le point de départ suivant pour la conception du contrôle :
- Enregistrez l'heure initiale, le volume, l'emplacement d'échantillonnage, la base de la concentration de composant, la CE, la température du liquide et le pH.
- Enregistrez la composition de la solution mère, les volumes réels d'ajout et de vidange, et l'état de circulation. La seule durée de la commande de la pompe n'établit pas le débit réel.
- Attendez un intervalle de mélange établi sur l'équipement et des mesures stables avant la réévaluation. Évitez d'empiler des commandes supplémentaires en réponse à une lecture locale immédiatement après l'injection.
- Conservez les erreurs de prédiction. Arrêtez les ajouts supplémentaires pour investiguer les niveaux anormaux, les écarts de débit ou les mesures obsolètes. Établissez les tolérances et les limites de dose sur l'installation réelle.
Ce n'est pas une spécification complète de système de dosage. Les exemples calculés valident la cohérence arithmétique du volume, de la masse de composant et de la concentration sous les hypothèses énoncées. L'étape suivante consiste à relier les opérations commandées aux observations en utilisant le débit de pompe mesuré et la réponse au mélange.
Pompes de dosage en AEC — étalonnage du volume et attentes de mélange
Deux vérifications avant d'appeler un ajout « 20 mL »
Le guide de comptabilité des cuves a calculé les ajouts à partir des bilans d'eau et de composant. Un ajout calculé de 20 mL ne spécifie pas encore une durée de fonctionnement de pompe. Terminer l'injection ne signifie pas non plus qu'une lecture de cuve est représentative.
Ce guide sépare l'étalonnage commande-vers-volume de la vérification du moment où les mesures post-injection peuvent être réévaluées. Chaque jeu de données ci-dessous est un exemple synthétique original, et non la performance mesurée d'un dispositif ou d'une culture. Le code n'actionne pas d'équipement et ne calcule pas de recettes d'engrais.
Maintenir constantes les conditions d'étalonnage
Le guide sur les injecteurs d'engrais de l'University of Georgia explique l'étalonnage et l'entretien périodiques, les plages de débit de fonctionnement et les conditions de pression. Le ratio d'un injecteur proportionnel à l'eau est différent des mL/s d'une pompe commandée par le temps considérée ici.
Pour une expérience de collecte, suivez le manuel de l'équipement et enregistrez les conditions de manière cohérente :
| Enregistrement | Objectif |
|---|---|
| Pompe, réglage de vitesse, tubulure, vannes et historique d'entretien | Identifier la configuration étalonnée |
| Liquide, température et densité si utilisée | Distinguer un essai à l'eau d'un essai à la solution mère |
| Niveau d'aspiration, élévation/pression de refoulement et plomberie | Préserver les différences entre collecte et exploitation |
| Amorçage, bulles et temps d'inactivité précédent | Identifier les différences au démarrage |
| Début/fin de commande, fin de collecte et volume collecté | Définir si l'égouttement après arrêt est inclus |
Déconnecter la plomberie de refoulement pour la collecte peut modifier la contre-pression. Une installation de collecte simple n'établit pas à elle seule la délivrance dans le système installé. Gardez les vérifications préliminaires à l'eau séparées de la confirmation avec le liquide prévu.
Lors de la pesée, convertissez la masse nette collectée \Delta m [g] en utilisant la densité du liquide \rho [g/mL] : V=\Delta m/\rho [mL]. Ne supposez pas que chaque liquide a une densité de 1 g/mL. Enregistrez la résolution de la balance, l'état d'étalonnage et la précision temporelle.
Une moyenne sur longue durée peut mal représenter un ajout court
Supposons trois essais pour chaque durée, tous commençant dans le même état.
| Commande [s] | Trois volumes synthétiques [mL] | Moyenne [mL] |
|---|---|---|
| 10 | 15, 16, 17 | 16 |
| 20 | 35, 36, 37 | 36 |
| 30 | 55, 56, 57 | 56 |
| 60 | 115, 116, 117 | 116 |
Les moyennes suivent V(t)=at+b=2t-4 [mL], avec a en mL/s et b en mL. Une cible de 20 mL donne (20-b)/a=12 s. Utiliser la pente seule donne 10 s et seulement 16 mL dans cet exemple.
Utiliser le débit moyen sur 60 s, 116/60 mL/s, donne plutôt environ 10,34 s pour 20 mL. L'équation synthétique prédit environ 16,69 mL à cette durée. Le « débit » utilisé fait une différence.
L'ordonnée à l'origine de −4 mL est un coefficient de régression sur la plage échantillonnée, et non la preuve d'un délai pur physique de deux secondes. N'extrapolez pas en dehors de 10–60 s, en particulier vers zéro. Pour des données mesurées, examinez les résidus et envisagez un modèle distinct pour les courtes durées si la relation s'incurve.
Chaque ligne synthétique a un écart type d'échantillon de 1 mL. Une erreur de régression nulle sur les moyennes ne supprime pas la variation individuelle d'un ajout à l'autre. Trois répétitions n'établissent pas non plus la variabilité d'un jour à l'autre ni le biais de la balance. Vérifiez les prédictions mesurées avec des durées et des essais supplémentaires exclus de l'ajustement.
Séparer la fin de l'injection de la confirmation du mélange
Le guide de gestion des nutriments de l'OSU appelle à agiter et à obtenir des lectures stables avant l'évaluation. Établir une attente nécessite une série temporelle post-injection distincte de l'étalonnage du volume.
Enregistrez des mesures synchronisées loin du point d'injection ainsi qu'à proximité. Documentez le volume, le débit de circulation, les emplacements d'injection et de capteur, la température et le filtrage du capteur. Le mélange, le transport et la réponse du capteur contribuent tous à la dynamique observée ; un temps de réponse ajusté n'est pas automatiquement un temps de mélange pur.
À titre d'illustration, normalisez un changement de la valeur initiale y_0 à une valeur finale connue y_\infty :
Le temps zéro est la fin de l'injection. Il s'agit d'une réponse locale de mesure synthétique, et non d'un modèle de cuve conservant la masse. Supposez des constantes de temps de 40 s et 80 s aux emplacements A et B. Leurs réponses en temps continu entrent dans une bande de 5 % autour du changement final après environ 120 s et 240 s.
En haut : trois volumes collectés par durée et la droite ajustée à leurs moyennes. En bas : réponses synthétiques A et B. Le temps est en secondes, le volume en mL et la réponse normalisée est sans dimension. Aucune donnée mesurée n'est montrée.
Imposons maintenant une règle pédagogique : avec des échantillons toutes les 10 s, les deux emplacements doivent rester dans une marge de 5 % pendant 30 s avant confirmation. B se qualifie d'abord à 240 s. Les quatre échantillons à 240, 250, 260 et 270 s fournissent la confirmation à 270 s. Vérifier A seul se qualifierait à 150 s et négligerait B.
Ni 5 % ni 30 s ne constituent un critère d'acceptation universel. Choisissez les critères en fonction du bruit/de la précision de mesure, de l'écart de concentration acceptable et de l'intervalle d'échantillonnage. Estimez les valeurs finales indépendamment, par exemple à partir d'enregistrements suffisamment longs, et examinez aussi les différences entre les valeurs finales des emplacements. Normaliser chaque emplacement séparément peut masquer des différences spatiales persistantes de concentration. N'utilisez pas cette normalisation quand le changement initial-vers-final est faible par rapport au bruit.
Reproduire les calculs
Enregistrez sous pump_mixing.py et exécutez python3 pump_mixing.py. Seule la bibliothèque standard est nécessaire.
from math import exp
from statistics import mean
# Synthetic data only; time [s], collected volume [mL].
runs = {10: [15, 16, 17], 20: [35, 36, 37],
30: [55, 56, 57], 60: [115, 116, 117]}
ts = list(runs)
vs = [mean(runs[t]) for t in ts]
tm, vm = mean(ts), mean(vs)
a = sum((t-tm)*(v-vm) for t, v in zip(ts, vs)) / sum((t-tm)**2 for t in ts)
b = vm - a*tm
command = (20-b)/a
if not min(ts) <= command <= max(ts):
raise ValueError("command outside calibration range")
print(f"fit: V = {a:.2f} t {b:+.2f}; 20 mL command = {command:.2f} s")
print(f"held-out 40 s: predicted {a*40+b:.2f} mL; reference 76.00 mL")
# Two synthetic normalized responses, sampled every 10 s.
# Four consecutive samples span 30 s. No missing samples here.
times = list(range(0, 401, 10))
errors = [max(exp(-t/40), exp(-t/80)) for t in times]
ready = next((times[i] for i in range(3, len(times))
if all(e <= 0.05 for e in errors[i-3:i+1])), None)
print(f"two-location confirmation = {ready} s")
Les résultats sont une pente de 2,00, une ordonnée à l'origine de −4,00, une commande de 12,00 s pour 20 mL, 76,00 mL à 40 s, et une confirmation à 270 s. La référence à 40 s laissée de côté provient aussi de la même équation synthétique ; ce n'est donc pas la preuve d'une généralisation à un équipement réel. Changer la constante de temps de 80 s à 120 s donne une confirmation à 390 s. Si aucune fenêtre qualifiante n'existe dans l'enregistrement, le code retourne None.
Relier les vérifications à l'autorisation d'un nouvel ajout
Une implémentation de contrôle nécessite plus qu'une minuterie. Cet article propose des étapes distinctes pour les prévérifications, un ajout, l'attente de mélange/mesure et la réévaluation. Les commandes hors plage, les lectures manquantes ou obsolètes, la circulation arrêtée, les niveaux anormaux ou l'échec de stabilisation dans la période d'observation devraient empêcher tout ajout supplémentaire en attendant l'investigation. Ne remplissez pas les échantillons manquants avec la valeur précédente en comptant cela comme une stabilité continue.
Une lecture de CE inférieure à la cible après attente n'établit pas immédiatement un déficit particulier de composant ; conservez la distinction entre CE et composition expliquée dans les fondamentaux de la zone racinaire. L'étape suivante consiste à évaluer les prédictions de délivrance et les critères d'attente par rapport aux journaux mesurés avant de concevoir le contrôle de dosage avec des limites par ajout, cumulatives et de nouvelle tentative.
Contrôle du dosage en AEC — limites, attentes de mesure et états de défaut
Une lecture basse ne justifie pas des ajouts répétés
L'étalonnage des pompes et les attentes de mélange ont séparé le volume délivré du moment où les observations se stabilisent. La question suivante est de savoir si un autre ajout est actuellement autorisé. Une lecture basse pendant le mélange, un échantillon ancien ou une circulation arrêtée n'établit pas cette autorisation.
Ce guide propose une conception pédagogique avec des états de fonctionnement distincts et des vérifications sur le volume, le nombre de tentatives et les observations. Toutes les valeurs et entrées sont synthétiques, et non des limites d'exploitation ni des recommandations d'engrais. L'exemple Python reproduit uniquement une porte d'autorisation ; il n'actionne pas de pompe.
Calculer un candidat, puis décider s'il peut s'exécuter
Un candidat dérivé de la comptabilité des cuves nécessite encore des vérifications par rapport à la plage d'étalonnage, à l'état de l'équipement et aux observations pouvant évaluer l'opération précédente.
Le guide de l'injecteur de l'UGA explique l'étalonnage et l'entretien périodiques. Le guide de gestion des nutriments de l'OSU appelle à agiter et à obtenir des lectures stables avant l'évaluation. Les états et limites ci-dessous constituent la conception proposée par cet article, et non une spécification de contrôleur fournie par l'une ou l'autre source.
Séparer six états de fonctionnement
| État | Activité | Condition de transition |
|---|---|---|
| CHECK | Valider les observations, le candidat, le budget restant et l'équipement | Enregistrer une réservation avant DOSE ; passer à DONE si l'objectif est déjà atteint |
| DOSE | Émettre une commande pour un ID d'opération unique | Confirmer l'arrêt avant WAIT ; un délai dépassé ou une incohérence de débit mène à FAULT |
| WAIT | Interdire les nouveaux ajouts et recueillir les observations post-arrêt | Les observations qualifiantes mènent à REVIEW ; l'échec de stabilisation avant l'échéance mène à FAULT |
| REVIEW | Réévaluer les observations et l'historique | DONE si satisfait, CHECK si un autre candidat est justifié, FAULT pour incohérences |
| DONE | Maintenir la sortie arrêtée et clore l'enregistrement | Une opération ultérieure nécessite une nouvelle décision de fonctionnement |
| FAULT | Demander l'arrêt et interdire tout ajout supplémentaire | Récupération explicite après vérification de la cause, de la quantité délivrée et de l'équipement |
Émettre une commande d'arrêt est différent de confirmer que le débit s'est arrêté. Les noms d'états logiciels ne peuvent pas empêcher une vanne ou une pompe défaillante. Une implémentation a aussi besoin d'une rétroaction de sortie, de mécanismes d'arrêt côté équipement et d'un comportement de redémarrage défini.
Ne faites pas revenir FAULT automatiquement à CHECK après une courte attente. Répéter une opération sans résoudre sa cause peut accumuler des ajouts non voulus.
Charger le budget avant d'émettre la commande
Utilisez des limites illustratives de 16–20 mL par ajout, 50 mL par session d'exploitation et au plus trois autorisations. Le minimum de 16 mL correspond à l'étalonnage synthétique de l'article précédent à 10 s. Ces chiffres ne sont pas des réglages d'équipement.
Pour un volume déjà chargé B [mL] et un candidat d [mL], exigez
À l'autorisation, enregistrez B\leftarrow B+d et n\leftarrow n+1 avant de procéder à la commande. Ce registre représente la capacité d'autorisation consommée, non la délivrance mesurée. Si la communication échoue immédiatement après une commande, ne supposez pas une délivrance nulle et ne remboursez pas sa capacité. Enregistrez séparément la délivrance mesurée et incertaine.
| Opération synthétique | Candidat | Total chargé après décision | Résultat |
|---|---|---|---|
| Première | 16 mL | 16 mL | Autoriser |
| Deuxième, après arrêt, mélange et examen | 16 mL | 32 mL | Autoriser |
| Troisième, après examen | 18 mL | 50 mL | Autoriser |
| Quatrième | 16 mL | 50 mL | Rejeter : limite de tentatives |
Une demande de 20 mL après avoir chargé 32 mL est rejetée car elle atteindrait 52 mL, même avec une tentative restante. Reconsidérez les observations et la base du candidat plutôt que d'écrêter automatiquement la dose à la capacité restante.
Ici, une session est une séquence de correction unique avec un début et une fin enregistrés. Une itération de boucle, un rafraîchissement de page ou une reconnexion n'est pas une nouvelle session. Un système opérationnel a besoin de conditions explicites de renouvellement du budget, comme une fenêtre temporelle définie ou un remplacement de cuve, et d'enregistrements survivant à un redémarrage. Cet exemple n'a pas de persistance.
Vérifier la fraîcheur séparément de la stabilité
L'heure de réception seule n'établit pas la fraîcheur. Considérez l'heure de mesure source, la synchronisation d'horloge et l'ordre par rapport à l'opération. Ici, age_s est un âge de mesure déjà converti, accepté uniquement entre zéro et cinq secondes. Un âge négatif issu d'un horodatage futur est aussi rejeté.
after_stop signifie que l'observation suit la confirmation de l'arrêt précédent. Pour le premier ajout, utilisez une observation obtenue après le début de la prévérification actuelle. stable est une décision en amont basée sur une séquence d'observations, comme discuté dans le guide précédent. Une valeur unique et inchangée n'établit pas la stabilité : évaluez les données manquantes, les capteurs bloqués et le désaccord entre emplacements.
Cinq secondes est une hypothèse pédagogique. Une limite incompatible avec l'intervalle d'échantillonnage et le délai de communication peut rejeter des observations utiles. L'augmenter simplement ne résout pas les problèmes de données obsolètes.
Essayer la porte d'autorisation en Python
Enregistrez sous dosing_gate.py et exécutez python3 dosing_gate.py. Seule la bibliothèque standard est nécessaire.
from math import isfinite
def gate(state, dose_ml, charged_ml, attempts, age_s,
after_stop, stable, circulation, level_ok):
"""Offline authorization check; no hardware commands or persistence."""
if state != "CHECK":
return "STATE"
if not all(isfinite(x) for x in (dose_ml, charged_ml, age_s)):
return "INVALID"
if charged_ml < 0 or type(attempts) is not int or attempts < 0:
return "INVALID"
if not all(type(x) is bool for x in
(after_stop, stable, circulation, level_ok)):
return "INVALID"
if not circulation or not level_ok:
return "INTERLOCK"
if not 0 <= age_s <= 5 or not after_stop:
return "STALE"
if not stable:
return "UNSTABLE"
if not 16 <= dose_ml <= 20:
return "DOSE_RANGE"
if attempts >= 3:
return "ATTEMPTS"
if charged_ml + dose_ml > 50:
return "BUDGET"
return "ALLOW"
if __name__ == "__main__":
charged, attempts, state = 0.0, 0, "CHECK"
for requested in (16, 16, 18, 16):
result = gate(state, requested, charged, attempts, 1,
True, True, True, True)
if result == "ALLOW":
# Charge BEFORE a simulated command; never refund uncertainty.
charged += requested
attempts += 1
state = "WAIT"
print(f"{requested} mL: {result}; charged={charged:.0f} mL")
# Synthetic successful stop/mixing/reassessment, not a timer.
state = "CHECK"
Les trois premières décisions sont ALLOW ; la quatrième est ATTEMPTS. Les totaux chargés sont 16, 32, 50 et 50 mL. Réinitialiser l'état de démonstration à CHECK à la fin de chaque itération représente un arrêt, un mélange et une réévaluation synthétiques réussis. Une implémentation ne doit pas exécuter cette transition uniquement parce qu'une minuterie fixe a expiré.
Cette fonction est une porte pédagogique hors ligne avec des arguments numériques. Elle n'analyse pas les entrées de communication, ne calcule pas de dose, n'établit pas la stabilité, ne surveille pas le débit réel et n'exécute pas la machine à états. Elle rejette NaN, l'infini, les volumes chargés négatifs et les nombres de tentatives invalides, mais ce n'est pas une API complète d'entrée externe.
Exercer les limites de rejet
| Entrée ou situation | Résultat attendu |
|---|---|
| Un autre candidat arrive en WAIT | STATE ; aucune charge budgétaire ni commande supplémentaire |
| L'âge est de six secondes ou négatif | STALE |
| L'observation précède l'arrêt, ou n'est pas stable | STALE ou UNSTABLE |
| Circulation arrêtée ou niveau anormal | INTERLOCK |
| Le candidat est de 15 ou 21 mL | DOSE_RANGE |
| Demande de 20 mL après avoir chargé 32 mL | BUDGET |
| Le candidat ou le volume chargé est NaN | INVALID |
Une implémentation doit aussi tester qu'un renvoi d'ID d'opération ne peut pas s'exécuter deux fois. Validez ensemble les changements de budget et les ID d'opération afin que des demandes concurrentes ne puissent pas toutes deux dépenser la même capacité restante. Après une interruption, réconciliez les commandes persistées avec l'état réel de l'équipement avant de reprendre.
Ce que cela établit
L'exemple vérifie les décisions d'autorisation par rapport aux entrées et limites fournies. Il ne déduit pas des déficits individuels de composant à partir de la CE ni des quantités d'acide à partir de différences de pH. Il ne valide pas non plus la croissance, le rendement, la sécurité de l'équipement ou le suivi de concentration.
Les rôles de la comptabilité, de l'étalonnage de délivrance, de l'évaluation du mélange et de l'autorisation sont désormais reliés. La validation avec des journaux d'équipement mesurés reste ouverte. Vient ensuite le trajet de l'eau à travers les systèmes de production tels que le NFT, le DWC et le goutte-à-goutte, où la relation entre la cuve et les racines change.

Commentaires
Veuillez vous connecter.
Aucune entrée pour le moment.