Calculateur de volume de réservoir
Transformez une lecture de jauge ou de sonde de niveau en volume de liquide pour un réservoir cylindrique horizontal ou vertical : un réservoir horizontal de rayon 1 et de longueur 10 rempli sur une profondeur de 1 contient 15,707963267949, la moitié exacte de sa capacité. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Rayon
- 1
- Longueur
- 10
- Profondeur de remplissage
- 1
- Orientation de l'axe du réservoir : horizontale
- Horizontal
- Diamètre
- 2
- Volume rempli
- 15,7079632679
- Volume total
- 31,4159265359
- Volume vide
- 15,7079632679
Les réservoirs de stockage cylindriques apparaissent dans les dépôts de carburant, les usines chimiques, les fermes et les skids de procédé selon deux dispositions courantes : ballons horizontaux couchés et fûts verticaux debout. Savoir quelle quantité de liquide correspond à une lecture de jauge ou de capteur de niveau n'est pas la même chose que connaître la capacité géométrique totale—surtout pour un réservoir horizontal, où des pas égaux de hauteur de liquide n'ajoutent pas des volumes égaux car la section circulaire s'élargit puis se rétrécit.
Formules pour réservoirs cylindriques horizontaux et verticaux
Ce qui change est la façon dont la profondeur de remplissage se mappe au volume de liquide. Pour un réservoir vertical la surface libre est un disque de rayon r, donc filled volume is simply π r squared times the liquid height h, tant que h reste dans la coque. Pour un réservoir horizontal la surface libre est un rectangle de longueur L et de largeur égale à la corde à la hauteur h ; la section de liquide est un segment circulaire.
La forme fermée classique est A equals r squared times arccos of ((r minus h) over r) minus (r minus h) times the square root of (two r h minus h squared); filled volume is then A times L. À h equals zero l'aire du segment est nulle ; à h equals r le réservoir est à moitié plein ; à h equals two r le segment devient le disque entier et le réservoir est plein.
Les unités restent cohérentes : si rayon, longueur et profondeur sont en mètres, les volumes sont en mètres cubes ; si en pouces, en pouces cubes. Convertissez en litres ou gallons US seulement après le volume géométrique. Cet outil ne convertit pas les unités linéaires pour vous, donc gardez les trois dimensions dans un seul système d'unités avant d'appeler.
Fonds, cônes et extrémités elliptiques sont hors périmètre—ces coques nécessitent des formules de segment supplémentaires au-delà d'un cylindre droit pur.
Cas d’usage
Inventaire carburant et chimie depuis la jauge
Convertissez une hauteur de liquide mesurée dans un réservoir cylindrique horizontal ou vertical en volume rempli et capacité restante pour le stock et le réapprovisionnement.
Questions fréquentes
En quoi le volume horizontal diffère-t-il du vertical ?
Le volume rempli vertical est π·r²·h. L'horizontal utilise l'aire du segment circulaire à la hauteur h multipliée par la longueur L, donc le volume est non linéaire en hauteur de liquide.
Que se passe-t-il si la profondeur dépasse le diamètre ?
La hauteur de liquide sur une section circulaire ne peut pas dépasser 2×radius ; l'outil ne rogne pas et n'invente pas de trop-plein.
Quelles unités pour rayon, longueur et profondeur ?
Toute unité de longueur cohérente. Les volumes reviennent au cube de cette unité (m→m³, in→in³). Convertissez en litres ou gallons après le résultat géométrique.
Inclut-il fonds, cônes ou extrémités elliptiques ?
Non. Seule une coque cylindrique circulaire droite est modélisée. Les fonds bombés et coniques nécessitent des formules de segment hors de ce contrat.
Le calculateur de volume de réservoir est-il gratuit ?
L'outil navigateur est gratuit et s'exécute en local.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/geom/tank-volume \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"radius":1,"length":10,"fill_depth":1}'const res = await fetch("https://api.kit.forhosting.com/geom/tank-volume", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"radius": 1,
"length": 10,
"fill_depth": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/tank-volume",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"radius": 1,
"length": 10,
"fill_depth": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/tank-volume", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"radius":1,"length":10,"fill_depth":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"radius":1,"length":10,"fill_depth":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/tank-volume", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"radius": 1,
"length": 10,
"fill_depth": 1
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.tank_volume",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_radius | 1000000000000 |
min_radius | 1e-15 |
max_length | 1000000000000 |
min_length | 1e-15 |
max_fill_depth | 1000000000000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Cette capacité prend un rayon interne positif, une longueur axiale positive (longueur du réservoir en horizontal, hauteur en vertical), une profondeur de remplissage non négative mesurée verticalement depuis le fond, et un indicateur d'orientation, puis renvoie le volume rempli, le volume total, le volume vide et la fraction de remplissage en JSON déterministe. Une profondeur de remplissage qui dépasse le diamètre est rejetée avec invalid_input afin que les scripts d'inventaire n'inventent jamais de liquide au-dessus de la coque. La même résolution pure s'exécute gratuitement dans le navigateur et sur le chemin API prépayé, sans appels réseau, sans graines aléatoires et sans dépendance à l'horloge murale.
Formules pour réservoirs cylindriques horizontaux et verticaux
Les deux orientations partagent la même capacité totale : total volume equals π times radius squared times length, le volume d'un cylindre circulaire droit.
Comment appeler l'API et ce qui revient
Utilisez-le depuis des scripts d'inventaire et de tables de jauge, des métrés d'ingénierie de procédé, des contrôles de ferme et de dépôt de carburant, des sandboxes de préparation d'entretien, ou tout flux qui a besoin de volumes de réservoir reproductibles sans installer un package d'algèbre informatique sur chaque machine. Envoyez un corps JSON avec radius, length et fill_depth. Le champ radius est le rayon interne positif ; les alias r et R sont acceptés. Le champ length est la longueur axiale positive du cylindre—la longueur du réservoir en horizontal et la hauteur debout en vertical ; les alias L, height et h_tank mappent la même signification. Le champ fill_depth est la hauteur de liquide non négative depuis le fond ; les alias depth, fill, h et liquid_height sont acceptés. L'orientation optionnelle est horizontal ou vertical et vaut horizontal par défaut si omise ; les alias axis et position sont acceptés. En cas de succès la réponse renvoie radius, length, fill_depth, diameter et orientation ; retourne filled_volume, total_volume, empty_volume, fill_fraction et fill_percent ; et inclut method plus un court bloc formula documentant les formes fermées. Une validation échouée—champ requis manquant, nombre non fini, radius ou length non positifs, fill_depth négatif, fill_depth supérieur au diamètre, remplissage vertical au-dessus de la hauteur du réservoir, ou chaîne d'orientation invalide—renvoie invalid_input et n'est jamais facturée. Le tarif est un forfait $0.002 par requête réussie avec élément unitaire et prix marginal unitaire nul.
Conseils pratiques, limites et recherches liées
Cette page cible ceux qui cherchent un calculateur de volume de réservoir ou le volume de liquide d'un cylindre horizontal et vertical depuis la profondeur de remplissage ; ce n'est pas un outil d'aire de surface de cylindre plein, un estimateur de fond de barrique ni un convertisseur d'unités. Préférez cet outil lorsque vous connaissez déjà le rayon interne, la longueur axiale et une hauteur de jauge ou de capteur et avez besoin du volume rempli plus total en une seule fois. Les contrôles aller-retour sont faciles : un remplissage complet horizontal ou vertical doit correspondre au total volume dans la tolérance flottante, un remplissage vide doit donner zero filled volume, et un remplissage horizontal à mi-hauteur avec h equals r doit donner la moitié du volume total. Gardez radius et length dans la plage positive publiée jusqu'à un billion pour que les produits intermédiaires restent finis en précision double IEEE sur le Worker et dans le navigateur. Imposez toujours fill depth inférieure ou égale au diamètre deux fois radius ; l'API rejette les lectures plus profondes avec invalid_input plutôt que de rogner en silence. Pour les réservoirs verticaux gardez aussi fill depth au plus égale à length, la hauteur physique du réservoir. En enseignant ou déboguant, préférez des exemples appariés : radius one, length ten, fill depth one horizontal pour un ballon horizontal à moitié plein ; radius two, length five, fill depth three vertical pour un fût vertical à soixante pour cent ; et fill depth three avec radius one pour démontrer le chemin de rejet par diamètre. Comme le volume horizontal est non linéaire en hauteur, une lecture à mi-niveau est une demi-capacité seulement quand fill depth equals the radius—pas quand le pourcentage de hauteur est cinquante dans un autre sens. Les tâches échouées qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui garde les scripts exploratoires bon marché lorsque les opérateurs saisissent des lectures de jauge impossibles en apprenant le contrat.
Cas d'intégration
Ingénierie de procédé et tables de jaugeage
Construisez ou vérifiez des tables niveau-volume pour ballons et fûts en balayant la profondeur de remplissage à rayon et longueur fixes avec des résultats déterministes API ou navigateur.
Devoirs et formation sur les volumes de cylindre partiel
Donnez aux élèves rayon, longueur, profondeur de remplissage et orientation ; comparez les volumes de segment circulaire ou πr²h calculés à la main avec une réponse JSON reproductible.