Calculateur de mélange NPK
Un chargement de 1 000 kg de 10-10-10 demande 100 kg d'azote, 100 de phosphate et 100 de potasse, et le calculateur indique combien d'urée, de DAP, de chlorure de potassium et de charge les fournissent. Saisissez les teneurs, la formule et le chargement. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- N cible
- 10
- P cible
- 10
- K cible
- 10
- Masse totale
- 1 000
- Nombre de matériaux
- 3
- Titre cible
- 10-10-10
- Rapport cible
- 1:1:1
- Masse de remplissage
- 483,6168872086
Le sac d'engrais imprime trois chiffres —azote, phosphate en P2O5 et potasse en K2O— mais la recommandation d'une parcelle ne correspond presque jamais à un seul grade de rayon. Mélangeurs de coopératives, applicateurs sur mesure, agronomes et logiciels agricoles ont besoin des masses de deux matières premières ou plus qui, ensemble, forment un grade NPK cible pour une charge de trémie connue. Ce calculateur de ratio de mélange d'engrais accepte l'analyse garantie de chaque source, les pourcentages N-P-K que vous souhaitez dans le produit fini et la masse totale à produire. Il résout le bilan des éléments et de la masse, avec une charge inerte facultative, et renvoie la recette plus le grade réel afin que la feuille de mélange et le ticket de bascule concordent.
Comment une cible NPK devient des masses de sources
Toute source d'engrais sec se vend avec une analyse garantie : les trois chiffres du sac sont le pourcentage d'azote (N), de phosphate exprimé en P2O5 (P) et de potasse exprimée en K2O (K) en masse. Un mélange qui doit afficher 10-10-10 sur le ticket final doit donc livrer un dixième de sa masse sous chacune de ces trois expressions nutritives. Si la charge fait mille kilogrammes, cela représente cent kilogrammes de N, cent de P2O5 et cent de K2O.
Chaque source contribue de son propre grade multiplié par sa propre masse. L'urée 46-0-0 n'apporte que de l'azote ; le phosphate diammonique 18-46-0 apporte azote et phosphate ; le muriate de potasse 0-0-60 n'apporte que de la potasse. Lorsque ces trois sources se combinent à une charge inerte (sable, calcaire ou autre véhicule sans NPK), les bilans deviennent quatre équations linéaires à quatre inconnues : clôture de l'azote, du phosphate, de la potasse, et les masses plus la charge égales au total commandé.
Si une ligne d'élément est identiquement nulle sur toutes les sources et que la cible de cet élément est aussi nulle, la ligne est écartée comme identité 0=0, de sorte qu'un mélange à deux sources comme urée plus DAP peut encore former un grade 20-20-0 avec charge.
Lorsqu'il y a plus d'inconnues que de bilans indépendants, le calculateur revient à l'affectation séquentielle classique des usines de mélange : doser le phosphate depuis la source inutilisée au plus haut grade P, la potasse depuis celle au plus haut grade K, l'azote restant depuis celle au plus haut N, et laisser le reste à la charge.
Qui utilise un calculateur de mélange d'engrais
Les usines de mélange sur mesure impriment un bon de travail pour chaque trémie : kilogrammes d'urée, de DAP, de MOP et de calcaire qui doivent être sur le tapis avant le démarrage du mélangeur. Les applications de gestion agricole et d'agronomie ont besoin de la même arithmétique pour qu'une recommandation rédigée comme un grade cible devienne une recette achetable, et non un sac unique absent du hangar. Les formations agricoles professionnelles peuvent noter automatiquement les devoirs de feuille de mélange sans déployer une bibliothèque d'algèbre linéaire.
Les coopératives qui stockent déjà trois ou quatre marchandises peuvent tester si un 12-24-12 demandé par l'exploitant est faisable avant de promettre une livraison. Une validation échouée ne consomme pas le solde. Lisez toujours n, p et k sur l'analyse garantie en vigueur du sac ou de la fiche de broyage — un MAP 11-52-0 n'est pas un DAP 18-46-0 — et traitez la charge comme un véhicule documenté, non comme un facteur caché.
Ce calculateur formule un mélange ; il ne remplace ni une analyse de sol, ni une étiquette légale, ni le dosage d'un agronome habilité pour une culture nommée.
Cas d’usage
Bons de travail de mélange sec sur mesure
Transformez un ticket 10-10-10 ou 12-24-12 en kilogrammes d'urée, de DAP, de MOP et de charge pour une masse de trémie connue avant le démarrage du mélangeur.
Logiciels agricoles et applications de conseil
Convertissez un grade NPK de parcelle en une recette de sources achetable afin que le stock du hangar corresponde à la recommandation écrite.
Enseignement et feuilles de mélange autocorrectes
Notez les devoirs de formulation d'engrais avec un oracle déterministe qui refuse les grades infaisables au lieu d'inventer des poids de trémie négatifs.
Questions fréquentes
p et k sont-ils le phosphore et le potassium élémentaires ?
Non. Comme les trois chiffres d'un sac d'engrais, p est le pourcentage de P2O5 et k celui de K2O. L'azote n est le N élémentaire. Utilisez l'analyse garantie imprimée sur chaque source.
Pourquoi le calculateur a-t-il refusé le grade cible ?
Une cible est refusée lorsqu'un élément nécessaire n'a pas de source, lorsque le système linéaire est singulier, ou lorsqu'une source exigerait une masse négative. Ajoutez une matière complémentaire, activez la charge ou changez le grade.
Combien de chaque élément contient un mélange 10-10-10 ?
Un dixième de la masse pour chaque élément. Pour un chargement de 1 000 kg, cela fait 100 kg d'azote, 100 kg de phosphate en P2O5 et 100 kg de potasse en K2O, quelles que soient les sources.
Pourquoi ajouter une charge inerte à un mélange d'engrais ?
Quand les sources réunies sont plus riches que la formule visée, une charge comme du sable ou du calcaire complète le chargement. Elle n'apporte aucun élément nutritif, donc le mélange final affiche la formule commandée.
Peut-on faire un mélange avec seulement deux engrais ?
Oui, lorsque la formule laisse un élément à zéro. Urée et DAP avec une charge peuvent donner un 20-20-0, car l'équilibre en potasse disparaît quand ni les sources ni la formule n'en contiennent.
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/bio/fertilizer-blend-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"materials":[{"name":"urea","n":46,"p":0,"k":0},{"name":"DAP","n":18,"p":46,"k":0},{"name":"MOP","n":0,"p":0,"k":60}],"target_n":10,"target_p":10,"target_k":10,"total_mass":1000}'const res = await fetch("https://api.kit.forhosting.com/bio/fertilizer-blend-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"materials": [
{
"name": "urea",
"n": 46,
"p": 0,
"k": 0
},
{
"name": "DAP",
"n": 18,
"p": 46,
"k": 0
},
{
"name": "MOP",
"n": 0,
"p": 0,
"k": 60
}
],
"target_n": 10,
"target_p": 10,
"target_k": 10,
"total_mass": 1000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/fertilizer-blend-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"materials": [
{
"name": "urea",
"n": 46,
"p": 0,
"k": 0
},
{
"name": "DAP",
"n": 18,
"p": 46,
"k": 0
},
{
"name": "MOP",
"n": 0,
"p": 0,
"k": 60
}
],
"target_n": 10,
"target_p": 10,
"target_k": 10,
"total_mass": 1000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/fertilizer-blend-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"materials":[{"name":"urea","n":46,"p":0,"k":0},{"name":"DAP","n":18,"p":46,"k":0},{"name":"MOP","n":0,"p":0,"k":60}],"target_n":10,"target_p":10,"target_k":10,"total_mass":1000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"materials":[{"name":"urea","n":46,"p":0,"k":0},{"name":"DAP","n":18,"p":46,"k":0},{"name":"MOP","n":0,"p":0,"k":60}],"target_n":10,"target_p":10,"target_k":10,"total_mass":1000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/fertilizer-blend-ratio", 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
{
"materials": [
{
"name": "urea",
"n": 46,
"p": 0,
"k": 0
},
{
"name": "DAP",
"n": 18,
"p": 46,
"k": 0
},
{
"name": "MOP",
"n": 0,
"p": 0,
"k": 60
}
],
"target_n": 10,
"target_p": 10,
"target_k": 10,
"total_mass": 1000
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.fertilizer_blend_ratio",
"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.
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
Trop peu de sources, des grades impossibles ou une cible que ces matières ne peuvent pas atteindre échouent avec invalid_input au lieu d'inventer un mélange.
Comment une cible NPK devient des masses de sources
Cet endpoint résout ce système carré par élimination de Gauss et pivot partiel. Des masses négatives signifient que la cible est hors de l'enveloppe convexe des sources : la tâche est rejetée plutôt que de raboter en silence une trémie à zéro.
Contrat d'entrée, forme de la réponse et erreurs
Chaque objet doit inclure n, p et k comme pourcentages finis de zéro à cent (les chiffres du sac). Les trois pourcentages d'une source ne peuvent pas dépasser cent au total, et l'un d'eux au moins doit être strictement positif : le véhicule inerte n'est pas une ligne de source, c'est la charge que le solveur peut ajouter. Envoyez un corps JSON avec materials comme tableau obligatoire de deux à six objets source. Le name facultatif étiquette la ligne ; si vous l'omettez, le moteur nomme la ligne material_1 et ainsi de suite. Les scalaires obligatoires target_n, target_p et target_k sont les pourcentages de grade du produit fini ; l'un d'eux au moins doit être positif et leur somme ne peut pas dépasser cent. Le total_mass obligatoire est la charge finie dans n'importe quelle unité de masse cohérente ; toutes les masses de la réponse utilisent cette même unité. L'allow_filler facultatif vaut true par défaut afin qu'un 10-10-10 d'urée, de DAP et de MOP puisse être complété jusqu'au tonnage commandé ; passez-le à false lorsque les trois sources doivent occuper toute la charge sans véhicule. Le field_area facultatif, lorsqu'il est présent et positif, ajoute rate_per_area sur le mélange entier et sur chaque composant, de sorte qu'une parcelle de deux hectares et une charge de mille kilogrammes deviennent cinq cents unités de mélange par unité de surface. Les alias sont acceptés : sources, fertilizers, ingredients ou blend pour le tableau ; nitrogen ou n_target pour target_n ; phosphorus ou p2o5 pour target_p ; potassium ou k2o pour target_k ; mass ou blend_mass pour total_mass ; filler ou use_filler pour allow_filler ; area, hectares ou acres pour field_area. Tableaux manquants, source unique, pourcentages hors de zéro à cent, total_mass nul, cible qu'aucune source ne peut fournir, ensemble singulier de grades ou masse résolue négative échouent avec invalid_input en nommant le champ. Ces échecs ne sont pas facturés. En cas de succès, le corps répète les cibles et le total nettoyés, liste components avec masse, pourcentage de la charge et masses d'éléments apportées par chaque source, signale filler_mass et filler_percent, et indique actual_n, actual_p, actual_k, actual_grade ainsi que le target_ratio simplifié (10-10-10 devient 1:1:1). formula et method consignent si le mélange linéaire carré ou l'affectation séquentielle des sources a été utilisé.
Où une API de ratio de mélange d'engrais gagne sa place
Comme l'implémentation est parse pure de niveau A, chaque appel réussi coûte le tarif de base publié $0.002 sans jetons de modèle et sans réseau sortant. Gardez les requêtes petites, figez les masses des composants et actual_grade dans les tests, et vous obtenez des feuilles de mélange reproductibles pour bons de travail, greffons LMS et workers en bordure, sans héberger votre propre infrastructure de formulation.
Questions techniques
Comment calcule-t-on les masses de mélange pour un grade NPK cible ?
Envoyez deux sources ou plus avec les pourcentages de sac n, p et k, les target_n, target_p et target_k du produit fini, et total_mass. L'API renvoie la masse de chaque source, la charge facultative et le grade réel du mélange.
Quand ajoute-t-on de la charge au mélange ?
Lorsque allow_filler vaut true (la valeur par défaut) et que les sources d'éléments pèsent moins que total_mass, le reste est une charge inerte. Passez allow_filler à false si les sources doivent remplir toute la charge.
Que coûte le calculateur de ratio de mélange d'engrais ?
L'outil du navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.