{"id":3386,"date":"2026-06-22T05:20:43","date_gmt":"2026-06-22T05:20:43","guid":{"rendered":"https:\/\/washerdrone.com\/?page_id=3386"},"modified":"2026-06-22T05:45:11","modified_gmt":"2026-06-22T05:45:11","slug":"drone-recoil-force-calculator","status":"publish","type":"page","link":"https:\/\/washerdrone.com\/fr\/drone-recoil-force-calculator\/","title":{"rendered":"Calculateur de recul"},"content":{"rendered":"\n<style>\n\n  \/* \u2500\u2500 WasherDrone brand tokens \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  :root {\n    --wd-bg:          #E7F6FF;\n    --wd-surface:     #ffffff;\n    --wd-surface2:    #f1f8fd;\n    --wd-border:      rgba(13,42,79,0.12);\n    --wd-border2:     rgba(13,42,79,0.22);\n    --wd-blue:        #1a8fe3;\n    --wd-blue-dark:   #0f5f9e;\n    --wd-blue-glow:   rgba(26,143,227,0.12);\n    --wd-text:        #0d2a4f;\n    --wd-text-muted:  #4a5a6b;\n    --wd-text-faint:  #8595a6;\n    --wd-success:     #1a7f37;\n    --wd-warn-bg:     rgba(191,135,0,0.12);\n    --wd-warn-border: rgba(191,135,0,0.45);\n    --wd-warn-text:   #9a6a00;\n    --wd-danger-bg:   rgba(207,34,46,0.10);\n    --wd-danger-border:rgba(207,34,46,0.40);\n    --wd-danger-text: #cf222e;\n    --radius:         8px;\n    --radius-lg:      12px;\n    --font:           -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, sans-serif;\n  }\n\n  * { box-sizing: border-box; margin: 0; padding: 0; }\n\n  .wd-tool-page {\n    background: transparent;\n    color: var(--wd-text);\n    font-family: var(--font);\n    font-size: 15px;\n    line-height: 1.6;\n    padding: 2rem 1rem;\n  }\n\n  .wd-calc { max-width: 640px; margin: 0 auto; }\n\n  .wd-header { margin-bottom: 2rem; }\n  .wd-header p { font-size: 14px; color: var(--wd-text-muted); }\n  .wd-badge {\n    display: inline-block;\n    background: var(--wd-blue-glow);\n    color: var(--wd-blue);\n    border: 1px solid rgba(26,143,227,0.3);\n    font-size: 11px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase;\n    padding: 3px 10px; border-radius: 20px; margin-bottom: 12px;\n  }\n\n  .wd-unit-toggle {\n    display: flex;\n    background: var(--wd-surface);\n    border: 1px solid var(--wd-border);\n    border-radius: var(--radius);\n    overflow: hidden;\n    width: fit-content;\n    margin-bottom: 1.75rem;\n  }\n  .wd-unit-btn {\n    padding: 8px 20px; font-size: 13px; font-family: var(--font);\n    background: transparent; border: none; color: var(--wd-text-muted);\n    cursor: pointer; transition: all 0.15s;\n  }\n  .wd-unit-btn.active { background: var(--wd-blue); color: #fff; font-weight: 600; }\n  .wd-unit-btn:not(.active):hover { background: var(--wd-surface2); color: var(--wd-text); }\n\n  .wd-label {\n    font-size: 11px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase;\n    color: var(--wd-text-muted); margin-bottom: 10px;\n  }\n\n  .wd-grid-2 {\n    display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 1.5rem;\n  }\n\n  .wd-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 1.5rem; }\n  .wd-field.wd-emphasis {\n    background: var(--wd-surface2); border: 1px solid var(--wd-blue);\n    border-radius: var(--radius); padding: 14px;\n  }\n  .wd-field > label { font-size: 13px; color: var(--wd-text-muted); }\n  .wd-field.wd-emphasis > label { color: var(--wd-blue-dark); font-weight: 600; }\n  .wd-field select {\n    width: 100%;\n    background: var(--wd-surface);\n    border: 1px solid var(--wd-border2);\n    border-radius: var(--radius);\n    color: var(--wd-text);\n    font-family: var(--font);\n    font-size: 14px;\n    padding: 9px 12px;\n    appearance: none;\n    background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234a5a6b' stroke-width='1.5' fill='none' stroke-linecap='round'\/%3E%3C\/svg%3E\");\n    background-repeat: no-repeat;\n    background-position: right 12px center;\n    padding-right: 34px;\n    cursor: pointer;\n    transition: border-color 0.15s;\n  }\n  .wd-field select:hover { border-color: var(--wd-blue); }\n  .wd-field select:focus { outline: none; border-color: var(--wd-blue); box-shadow: 0 0 0 3px var(--wd-blue-glow); }\n  .wd-field select option { background: #ffffff; color: var(--wd-text); }\n\n  .wd-divider { border: none; border-top: 1px solid var(--wd-border); margin: 1.75rem 0; }\n\n  .wd-result {\n    background: var(--wd-surface);\n    border: 1px solid var(--wd-border2);\n    border-radius: var(--radius-lg);\n    padding: 1.5rem;\n    margin-bottom: 1rem;\n    position: relative;\n    overflow: hidden;\n    box-shadow: 0 1px 3px rgba(13,42,79,0.06);\n  }\n  .wd-result::before {\n    content: ''; position: absolute; top: 0; left: 0; right: 0;\n    height: 2px; background: var(--wd-blue); border-radius: 2px 2px 0 0;\n  }\n  .wd-result-label { font-size: 11px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; color: var(--wd-text-muted); margin-bottom: 12px; text-align: center; }\n  .wd-result-main { display: flex; align-items: baseline; gap: 10px; margin-bottom: 4px; justify-content: center; }\n  .wd-result-number { font-size: 42px; font-weight: 700; color: var(--wd-blue); line-height: 1; }\n  .wd-result-unit { font-size: 16px; color: var(--wd-text-muted); }\n  .wd-result-sub { font-size: 12px; color: var(--wd-text-faint); text-align: center; text-transform: uppercase; letter-spacing: 0.05em; }\n  .wd-result-divider { border: none; border-top: 1px solid var(--wd-border); margin: 16px 0; }\n\n  .wd-result-split { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }\n  .wd-split-cell { text-align: center; }\n  .wd-split-cell.left { border-right: 1px solid var(--wd-border); }\n  .wd-split-num { font-size: 26px; font-weight: 700; line-height: 1.1; }\n  .wd-split-cell.left .wd-split-num { color: var(--wd-text); }\n  .wd-split-cell.right .wd-split-num { color: var(--wd-success); }\n  .wd-split-unit { font-size: 13px; font-weight: 600; color: var(--wd-text-muted); margin-left: 3px; }\n  .wd-split-label { font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--wd-text-faint); margin-top: 5px; }\n\n  .wd-insight {\n    display: flex; gap: 10px; align-items: flex-start;\n    background: var(--wd-blue-glow); border: 1px solid rgba(26,143,227,0.25);\n    border-radius: var(--radius); padding: 12px 14px; margin-bottom: 0.75rem;\n  }\n  .wd-insight.warn { background: var(--wd-warn-bg); border-color: var(--wd-warn-border); }\n  .wd-insight.danger { background: var(--wd-danger-bg); border-color: var(--wd-danger-border); }\n  .wd-insight svg { flex-shrink: 0; margin-top: 1px; }\n  .wd-insight span { font-size: 13px; line-height: 1.5; color: var(--wd-blue); }\n  .wd-insight.warn span { color: var(--wd-warn-text); }\n  .wd-insight.danger span { color: var(--wd-danger-text); }\n\n  .wd-note { font-size: 12px; color: var(--wd-text-faint); margin-bottom: 1.5rem; }\n\n  .wd-cta-row { display: flex; gap: 12px; }\n  .wd-btn {\n    flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px;\n    padding: 12px 18px; border-radius: var(--radius); font-family: var(--font);\n    font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none; transition: all 0.15s;\n  }\n  .wd-btn-primary { background: var(--wd-blue); color: #fff; border: none; }\n  .wd-btn-primary:hover { background: var(--wd-blue-dark); }\n  .wd-btn-secondary { background: transparent; color: var(--wd-text); border: 1px solid var(--wd-border2); }\n  .wd-btn-secondary:hover { background: var(--wd-surface2); border-color: var(--wd-blue); }\n\n  @media (max-width: 480px) {\n    .wd-grid-2 { grid-template-columns: 1fr; }\n    .wd-cta-row { flex-direction: column; }\n    .wd-result-number { font-size: 34px; }\n    .wd-unit-btn { padding: 8px 14px; font-size: 12px; }\n  }\n\n  html, body { background: var(--wd-bg); }\n\n  .wd-tool-page .wd-badge { color: var(--wd-blue-dark); }\n  .wd-tool-page .wd-insight span { color: var(--wd-blue-dark); }\n\n  .wd-tool-page .wd-calc-title {\n    font-size: 22px; font-weight: 600; color: var(--wd-text); margin-bottom: 6px;\n  }\n\n<\/style>\n\n\n<div class=\"wd-tool-page\">\n\n<div class=\"wd-calc\">\n\n  <div class=\"wd-header\">\n    <div class=\"wd-badge\">SkyJet Recoil Calculator<\/div>\n    <div class=\"wd-calc-title\">Drone Spray Recoil Calculator<\/div>\n    <p>Estimate spray recoil force and how much wind margin it leaves against your drone&rsquo;s rated wind resistance.<\/p>\n  <\/div>\n\n  <p class=\"wd-label\">Unit system<\/p>\n  <div class=\"wd-unit-toggle\" role=\"group\" aria-label=\"Unit system\">\n    <button class=\"wd-unit-btn active\" id=\"btn-metric\" onclick=\"setUnit('metric')\">Metric (bar \/ lpm \/ m\/s \/ N)<\/button>\n    <button class=\"wd-unit-btn\" id=\"btn-imperial\" onclick=\"setUnit('imperial')\">Imperial (psi \/ gpm \/ mph \/ lbf)<\/button>\n  <\/div>\n\n  <p class=\"wd-label\">SkyJet pressure &amp; flow<\/p>\n  <div class=\"wd-grid-2\">\n    <div class=\"wd-field\" style=\"margin-bottom:0;\">\n      <label id=\"lbl-pressure\">Pressure (bar)<\/label>\n      <select id=\"sel-pressure\" onchange=\"calc()\"><\/select>\n    <\/div>\n    <div class=\"wd-field\" style=\"margin-bottom:0;\">\n      <label id=\"lbl-flow\">Flow rate (L\/min)<\/label>\n      <select id=\"sel-flow\" onchange=\"calc()\"><\/select>\n    <\/div>\n  <\/div>\n\n  <div style=\"height:1.5rem;\"><\/div>\n\n  <div class=\"wd-field wd-emphasis\">\n    <label id=\"lbl-wind\">Drone max wind resistance<\/label>\n    <select id=\"sel-wind\" onchange=\"calc()\"><\/select>\n  <\/div>\n\n  <hr class=\"wd-divider\">\n\n  <div class=\"wd-result\">\n    <p class=\"wd-result-label\">Spray Recoil Force<\/p>\n    <div class=\"wd-result-main\">\n      <span class=\"wd-result-number\" id=\"res-number\">&mdash;<\/span>\n      <span class=\"wd-result-unit\" id=\"res-unit\"><\/span>\n    <\/div>\n    <p class=\"wd-result-sub\" id=\"res-sub\"><\/p>\n    <hr class=\"wd-result-divider\">\n    <div class=\"wd-result-split\">\n      <div class=\"wd-split-cell left\">\n        <span class=\"wd-split-num\" id=\"res-recoil\">&mdash;<\/span><span class=\"wd-split-unit\" id=\"res-recoil-unit\"><\/span>\n        <p class=\"wd-split-label\">Recoil as Headwind<\/p>\n      <\/div>\n      <div class=\"wd-split-cell right\">\n        <span class=\"wd-split-num\" id=\"res-wind\">&mdash;<\/span><span class=\"wd-split-unit\" id=\"res-wind-unit\"><\/span>\n        <p class=\"wd-split-label\">Usable Wind Left<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"wd-insight\" id=\"insight-box\">\n    <svg id=\"insight-icon\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" color=\"#1a8fe3\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n    <span id=\"insight-text\"><\/span>\n  <\/div>\n\n  <p class=\"wd-note\" id=\"res-note\"><\/p>\n\n  <div class=\"wd-cta-row\">\n    <a class=\"wd-btn wd-btn-primary\" href=\"https:\/\/shop.washerdrone.com\" target=\"_blank\" rel=\"noopener\">\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"9\" cy=\"21\" r=\"1\"\/><circle cx=\"20\" cy=\"21\" r=\"1\"\/><path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"\/><\/svg>\n      Shop\n    <\/a>\n    <a class=\"wd-btn wd-btn-secondary\" href=\"https:\/\/washerdrone.com\/contact-2\/\" target=\"_blank\" rel=\"noopener\">\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>\n      Contact\n    <\/a>\n  <\/div>\n\n<\/div>\n\n<\/div>\n\n<script>\n\nvar unitMode = 'metric';\n\nvar metricPressures = [\n  { label: '20 bar \u2014 290 psi',    value: 20 },\n  { label: '50 bar \u2014 725 psi',    value: 50 },\n  { label: '80 bar \u2014 1,160 psi',  value: 80 },\n  { label: '100 bar \u2014 1,450 psi', value: 100 },\n  { label: '120 bar \u2014 1,740 psi', value: 120 },\n  { label: '150 bar \u2014 2,175 psi', value: 150 },\n  { label: '180 bar \u2014 2,610 psi', value: 180 },\n  { label: '200 bar \u2014 2,900 psi', value: 200 },\n  { label: '250 bar \u2014 3,625 psi', value: 250 },\n  { label: '300 bar \u2014 4,350 psi', value: 300 }\n];\n\nvar imperialPressures = [\n  { label: '300 psi \u2014 21 bar',    value: 300  \/ 14.5038 },\n  { label: '600 psi \u2014 41 bar',    value: 600  \/ 14.5038 },\n  { label: '1,000 psi \u2014 69 bar',  value: 1000 \/ 14.5038 },\n  { label: '1,500 psi \u2014 103 bar', value: 1500 \/ 14.5038 },\n  { label: '2,000 psi \u2014 138 bar', value: 2000 \/ 14.5038 },\n  { label: '2,500 psi \u2014 172 bar', value: 2500 \/ 14.5038 },\n  { label: '3,000 psi \u2014 207 bar', value: 3000 \/ 14.5038 },\n  { label: '3,500 psi \u2014 241 bar', value: 3500 \/ 14.5038 },\n  { label: '4,000 psi \u2014 276 bar', value: 4000 \/ 14.5038 },\n  { label: '4,500 psi \u2014 310 bar', value: 4500 \/ 14.5038 }\n];\n\nvar metricFlows = [\n  { label: '10 L\/min \u2014 2.6 GPM',  value: 10 },\n  { label: '12 L\/min \u2014 3.2 GPM',  value: 12 },\n  { label: '15 L\/min \u2014 4.0 GPM',  value: 15 },\n  { label: '18 L\/min \u2014 4.8 GPM',  value: 18 },\n  { label: '20 L\/min \u2014 5.3 GPM',  value: 20 },\n  { label: '25 L\/min \u2014 6.6 GPM',  value: 25 },\n  { label: '30 L\/min \u2014 7.9 GPM',  value: 30 },\n  { label: '35 L\/min \u2014 9.2 GPM',  value: 35 },\n  { label: '40 L\/min \u2014 10.6 GPM', value: 40 }\n];\n\nvar imperialFlows = [\n  { label: '2 GPM \u2014 7.6 L\/min',   value: 2  * 3.78541 },\n  { label: '3 GPM \u2014 11.4 L\/min',  value: 3  * 3.78541 },\n  { label: '4 GPM \u2014 15.1 L\/min',  value: 4  * 3.78541 },\n  { label: '5 GPM \u2014 18.9 L\/min',  value: 5  * 3.78541 },\n  { label: '6 GPM \u2014 22.7 L\/min',  value: 6  * 3.78541 },\n  { label: '7 GPM \u2014 26.5 L\/min',  value: 7  * 3.78541 },\n  { label: '8 GPM \u2014 30.3 L\/min',  value: 8  * 3.78541 },\n  { label: '10 GPM \u2014 37.9 L\/min', value: 10 * 3.78541 },\n  { label: '12 GPM \u2014 45.4 L\/min', value: 12 * 3.78541 }\n];\n\nvar metricWinds = [\n  { label: '6 m\/s \u2014 13 mph',  value: 6 },\n  { label: '8 m\/s \u2014 18 mph',  value: 8 },\n  { label: '10 m\/s \u2014 22 mph', value: 10 },\n  { label: '11 m\/s \u2014 25 mph', value: 11 },\n  { label: '12 m\/s \u2014 27 mph', value: 12 },\n  { label: '14 m\/s \u2014 31 mph', value: 14 },\n  { label: '16 m\/s \u2014 36 mph', value: 16 },\n  { label: '18 m\/s \u2014 40 mph', value: 18 },\n  { label: '20 m\/s \u2014 45 mph', value: 20 }\n];\n\nvar imperialWinds = [\n  { label: '15 mph \u2014 6.7 m\/s',  value: 15 \/ 2.23694 },\n  { label: '20 mph \u2014 8.9 m\/s',  value: 20 \/ 2.23694 },\n  { label: '25 mph \u2014 11.2 m\/s', value: 25 \/ 2.23694 },\n  { label: '30 mph \u2014 13.4 m\/s', value: 30 \/ 2.23694 },\n  { label: '35 mph \u2014 15.6 m\/s', value: 35 \/ 2.23694 },\n  { label: '40 mph \u2014 17.9 m\/s', value: 40 \/ 2.23694 },\n  { label: '45 mph \u2014 20.1 m\/s', value: 45 \/ 2.23694 }\n];\n\nfunction populateSelect(id, items, defaultIndex) {\n  var sel = document.getElementById(id);\n  sel.innerHTML = '';\n  items.forEach(function(item) {\n    var opt = document.createElement('option');\n    opt.value = item.value;\n    opt.textContent = item.label;\n    sel.appendChild(opt);\n  });\n  if (defaultIndex !== undefined) sel.selectedIndex = defaultIndex;\n}\n\nfunction setUnit(mode) {\n  unitMode = mode;\n  document.getElementById('btn-metric').classList.toggle('active', mode === 'metric');\n  document.getElementById('btn-imperial').classList.toggle('active', mode === 'imperial');\n\n  var pi = document.getElementById('sel-pressure').selectedIndex;\n  var fi = document.getElementById('sel-flow').selectedIndex;\n  var wi = document.getElementById('sel-wind').selectedIndex;\n\n  if (mode === 'metric') {\n    document.getElementById('lbl-pressure').textContent = 'Pressure (bar)';\n    document.getElementById('lbl-flow').textContent = 'Flow rate (L\/min)';\n    document.getElementById('lbl-wind').textContent = 'Drone max wind resistance';\n    populateSelect('sel-pressure', metricPressures, pi);\n    populateSelect('sel-flow', metricFlows, fi);\n    populateSelect('sel-wind', metricWinds, wi >= metricWinds.length ? metricWinds.length-1 : wi);\n  } else {\n    document.getElementById('lbl-pressure').textContent = 'Pressure (psi)';\n    document.getElementById('lbl-flow').textContent = 'Flow rate (GPM)';\n    document.getElementById('lbl-wind').textContent = 'Drone max wind resistance';\n    populateSelect('sel-pressure', imperialPressures, pi);\n    populateSelect('sel-flow', imperialFlows, fi);\n    populateSelect('sel-wind', imperialWinds, wi >= imperialWinds.length ? imperialWinds.length-1 : wi);\n  }\n  calc();\n}\n\nfunction calc() {\n  var P_bar = parseFloat(document.getElementById('sel-pressure').value);  \/\/ bar\n  var Q_lpm = parseFloat(document.getElementById('sel-flow').value);      \/\/ L\/min\n  var W_ms  = parseFloat(document.getElementById('sel-wind').value);      \/\/ m\/s\n\n  var CdA = 0.60, rhoAir = 1.225;\n\n  var Fideal = 0.236 * Q_lpm * Math.sqrt(P_bar);\n  var Freal  = Fideal * 0.95;\n  var v_eq   = Math.sqrt(2 * Freal \/ (rhoAir * CdA));\n\n  var usable, over = false;\n  if (W_ms * W_ms > v_eq * v_eq) { usable = Math.sqrt(W_ms * W_ms - v_eq * v_eq); }\n  else { usable = 0; over = true; }\n\n  var ibox  = document.getElementById('insight-box');\n  var iicon = document.getElementById('insight-icon');\n\n  if (unitMode === 'metric') {\n    document.getElementById('res-number').textContent = Freal.toFixed(1);\n    document.getElementById('res-unit').textContent = 'N';\n    document.getElementById('res-sub').textContent = 'Ideal ceiling ' + Fideal.toFixed(1) + ' N';\n    document.getElementById('res-recoil').textContent = v_eq.toFixed(1);\n    document.getElementById('res-recoil-unit').textContent = 'm\/s';\n    document.getElementById('res-wind').textContent = usable.toFixed(1);\n    document.getElementById('res-wind-unit').textContent = 'm\/s';\n  } else {\n    document.getElementById('res-number').textContent = (Freal * 0.224809).toFixed(1);\n    document.getElementById('res-unit').textContent = 'lbf';\n    document.getElementById('res-sub').textContent = 'Ideal ceiling ' + (Fideal * 0.224809).toFixed(1) + ' lbf';\n    document.getElementById('res-recoil').textContent = (v_eq * 2.23694).toFixed(0);\n    document.getElementById('res-recoil-unit').textContent = 'mph';\n    document.getElementById('res-wind').textContent = (usable * 2.23694).toFixed(0);\n    document.getElementById('res-wind-unit').textContent = 'mph';\n  }\n\n  var veqTxt    = unitMode === 'metric' ? v_eq.toFixed(1) + ' m\/s'   : (v_eq * 2.23694).toFixed(0) + ' mph';\n  var usableTxt = unitMode === 'metric' ? usable.toFixed(1) + ' m\/s' : (usable * 2.23694).toFixed(0) + ' mph';\n  var wmaxTxt   = unitMode === 'metric' ? W_ms.toFixed(0) + ' m\/s'   : (W_ms * 2.23694).toFixed(0) + ' mph';\n\n  if (over) {\n    ibox.className = 'wd-insight danger';\n    iicon.style.color = 'var(--wd-danger-text)';\n    document.getElementById('insight-text').textContent =\n      'Over budget. The recoil alone (' + veqTxt + ' equivalent headwind) meets or exceeds your drone\\u2019s rated wind resistance of ' + wmaxTxt + '. No margin remains for actual wind. Lower flow, raise pressure, or choose a drone with higher wind tolerance.';\n  } else if (usable < W_ms * 0.4) {\n    ibox.className = 'wd-insight warn';\n    iicon.style.color = 'var(--wd-warn-text)';\n    document.getElementById('insight-text').textContent =\n      'Tight margin. Recoil consumes most of your control authority. Only about ' + usableTxt + ' of real wind tolerance remains while spraying. Treat this as an optimistic ceiling and keep a safety buffer.';\n  } else {\n    ibox.className = 'wd-insight';\n    iicon.style.color = '#1a8fe3';\n    document.getElementById('insight-text').textContent =\n      'Workable. After holding ' + veqTxt + ' of recoil, roughly ' + usableTxt + ' of real wind tolerance remains. Recoil scales linearly with flow but only with the square root of pressure \\u2014 high-pressure \/ low-flow is the drone-friendly direction.';\n  }\n\n  document.getElementById('res-note').textContent =\n    'Cd\\u00B7A fixed at 0.60 m\\u00B2 (standard wash drone). Not included: hose weight, hose drag, and pendulum swing \\u2014 all worsen with altitude and erode the figure above. Treat every result as an optimistic ceiling and leave operational margin.';\n}\n\npopulateSelect('sel-pressure', metricPressures, 5);\npopulateSelect('sel-flow', metricFlows, 2);\npopulateSelect('sel-wind', metricWinds, 4);\ncalc();\n\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\">The calculator above returns the <strong>recoil force<\/strong> \u2014 the continuous push the spray exerts on your drone \u2014 and converts it into the <strong>equivalent wind speed<\/strong> your airframe must absorb before any real weather is present. The guide below explains the physics, why flow rate dominates recoil, how recoil consumes your drone's wind budget, and why hose weight makes the real margin lower than any clean calculation suggests.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Utilizing our drone recoil force calculator can help you better understand the impact of spray recoil on your drone's performance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How the Recoil Calculator Works<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The calculator computes the reaction force of a water jet discharging to atmosphere<\/strong> as the momentum leaving the nozzle: F = \u1e41 \u00b7 v, where \u1e41 is the mass flow rate and v is the jet exit velocity. Because the jet reaches ambient pressure at the exit plane, only the momentum term remains \u2014 the same principle that governs jet thrust.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jet velocity is set by pressure through v = \u221a(2\u00b7\u0394P\/\u03c1), and mass flow is \u03c1\u00b7Q. Combining them gives the working formula <code>F = Q\u00b7\u221a(2\u00b7\u03c1\u00b7\u0394P)<\/code>, or in field units <code>F[N] \u2248 0.236 \u00b7 Q[L\/min] \u00b7 \u221a(P[bar])<\/code>. The tool reports the ideal value as a conservative ceiling for thrust budgeting; a real nozzle loses roughly 5% to its velocity coefficient, while hose effects push the <em>effective<\/em> load the drone fights back up. Water is taken at 1,000 kg\/m\u00b3, 20\u00b0C.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Is Spray Recoil in Drone Pressure Washing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Spray recoil is defined as<\/strong> the steady reaction force, equal and opposite to the momentum of the water jet, that pushes the drone away from the surface it is cleaning. When the lance sprays horizontally at a vertical facade, the recoil is horizontal and points straight back off the wall \u2014 exactly the direction the drone is least able to resist, because it must tilt and divert thrust to hold position.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The key difference from ground pressure washing is that the operator is airborne.<\/strong> A person on the ground braces recoil through their body and the floor; a drone has no anchor. Every newton of recoil must be balanced by aerodynamic thrust the drone produces by tilting \u2014 thrust that is then unavailable for lift or for fighting wind.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Flow Rate Matters More Than Pressure for Recoil<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Recoil scales linearly with flow rate but only with the square root of pressure.<\/strong> Doubling flow doubles recoil; doubling pressure raises recoil by just ~41%. Flow is therefore the more consequential lever when a configuration is recoil-constrained \u2014 which, on a drone, it almost always is.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This produces a counter-intuitive result across the SkyJet line: a lower-pressure, higher-flow configuration can recoil <em>harder<\/em> than a higher-pressure, lower-flow one. The figures below use the ideal formula.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>SkyJet model<\/th><th>Pressure<\/th><th>Flow<\/th><th>Jet velocity<\/th><th>Recoil<\/th><th>\u2248 kgf<\/th><th>\u2248 lbf<\/th><\/tr><\/thead><tbody><tr><td>SkyJet E-10<\/td><td>150 bar (2,175 psi)<\/td><td>10 L\/min (2.6 GPM)<\/td><td>173 m\/s<\/td><td>28.9 N<\/td><td>2.9<\/td><td>6.5<\/td><\/tr><tr><td>SkyJet E-15<\/td><td>200 bar (2,900 psi)<\/td><td>15 L\/min (4.0 GPM)<\/td><td>200 m\/s<\/td><td>50.0 N<\/td><td>5.1<\/td><td>11.2<\/td><\/tr><tr><td>SkyJet B-20<\/td><td>100 bar (1,450 psi)<\/td><td>20 L\/min (5.3 GPM)<\/td><td>141 m\/s<\/td><td>47.1 N<\/td><td>4.8<\/td><td>10.6<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>For a recoil-constrained drone, high pressure with modest flow is the efficient choice.<\/strong> At equal jet power, recoil falls as 1\/\u221apressure \u2014 so pressure buys cleaning energy more cheaply, in recoil terms, than flow. Jet velocity, which drives dirt removal, comes from pressure anyway; flow mainly governs coverage rate and rinse volume.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Recoil vs Drone Wind Resistance<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A drone's maximum wind rating is, in physical terms, a statement of how much horizontal force it can hold against.<\/strong> Both wind drag and spray recoil are horizontal forces that scale with \u00bd\u00b7\u03c1_air\u00b7(Cd\u00b7A)\u00b7v\u00b2. Because they share the same factor, their squared velocities add directly, and the wind margin that survives while spraying is <code>usable real wind = \u221a(v_max\u00b2 \u2212 v_equivalent\u00b2)<\/code>, where v_equivalent is the recoil expressed as a wind speed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The table assumes a representative heavy washing-drone drag area of Cd\u00b7A \u2248 0.6 m\u00b2. \"Over budget\" means the recoil alone exceeds that drone's entire horizontal capacity, before any real wind.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>SkyJet model<\/th><th>Recoil<\/th><th>\u2248 equivalent wind<\/th><th>Usable wind \u00b7 10 m\/s drone<\/th><th>\u00b7 12 m\/s drone<\/th><th>\u00b7 15 m\/s drone<\/th><\/tr><\/thead><tbody><tr><td>SkyJet E-10<\/td><td>28.9 N<\/td><td>8.9 m\/s (19.8 mph)<\/td><td>4.6 m\/s<\/td><td>8.1 m\/s<\/td><td>12.1 m\/s<\/td><\/tr><tr><td>SkyJet E-15<\/td><td>50.0 N<\/td><td>11.7 m\/s (26.1 mph)<\/td><td>over budget<\/td><td>2.8 m\/s<\/td><td>9.4 m\/s<\/td><\/tr><tr><td>SkyJet B-20<\/td><td>47.1 N<\/td><td>11.3 m\/s (25.3 mph)<\/td><td>over budget<\/td><td>4.0 m\/s<\/td><td>9.8 m\/s<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The practical message: the high-flow configurations load a mid-class drone almost as hard as a strong wind on their own. Match the pump configuration to the drone's wind class \u2014 or step up to a higher-rated airframe \u2014 rather than assuming any drone can fly any pump.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hose Weight and Swing \u2014 Why Real Margin Is Lower<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Hose weight reduces a drone's effective wind and recoil tolerance through three mechanisms, all of which worsen with height.<\/strong> The calculator deliberately excludes them, because they depend on hose management, working altitude, and airframe \u2014 but they are never zero.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Borne weight steals horizontal authority<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A multirotor's maximum horizontal force is F_horizontal = \u221a(T_max\u00b2 \u2212 W\u00b2), where W is the total weight it carries. Any portion of the water-filled hose that the drone bears \u2014 rather than a ground tether or a managed reel \u2014 increases W and shrinks F_horizontal directly. This is the same square-law trade that links wind and recoil, now working against you on the lift side.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. The hose adds its own drag<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A suspended hose presents area to the wind and generates drag the drone must also counter, adding to the horizontal load alongside recoil.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Swing dynamics consume control authority<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A hanging hose is a distributed-mass pendulum. Gusts and drone motion excite oscillations that inject time-varying forces and pitching moments at the attachment point; the flight controller spends thrust damping them, eroding the margin that remains for recoil and wind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>These effects compound with working height.<\/strong> The higher the drone climbs, the more hose hangs beneath it and the stronger the ambient wind \u2014 the natural boundary-layer profile means wind speed rises with altitude, so both penalties peak together. The mitigations are hose-weight management via the SkyReel, lightweight hose selection, and keeping a wind-margin reserve well below the clean calculator figure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Matching Pump Configuration to Drone Class<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Configuration selection is the process of matching recoil to the drone's available horizontal authority with margin to spare.<\/strong> Three rules follow from the physics above.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Priority<\/th><th>Rule<\/th><th>Why<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td>Favour higher pressure, lower flow where the surface allows<\/td><td>Recoil falls as 1\/\u221apressure at equal jet power; cleaning impact comes from velocity, i.e. pressure<\/td><\/tr><tr><td>2<\/td><td>Keep recoil's equivalent wind well under the drone's rating<\/td><td>The rating already includes a gust\/control reserve; spending it all on recoil leaves none for weather<\/td><\/tr><tr><td>3<\/td><td>Add a height-and-hose reserve on top<\/td><td>Hose weight, hose drag, and swing all reduce real margin and worsen with altitude<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What is recoil force in drone pressure washing?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Recoil force is the steady reaction force of the water jet, equal and opposite to the jet's momentum, that pushes the drone away from the surface. It equals F = Q\u00b7\u221a(2\u00b7\u03c1\u00b7\u0394P), about 0.236\u00b7Q[L\/min]\u00b7\u221a(P[bar]) newtons, and acts horizontally when spraying a vertical facade.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does higher pressure or higher flow create more recoil?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Flow has the larger effect. Recoil rises linearly with flow but only with the square root of pressure, so doubling flow doubles recoil while doubling pressure adds about 41%. A lower-pressure, higher-flow setup can recoil harder than a higher-pressure one \u2014 for example SkyJet B-20 (100 bar \/ 20 L\/min) recoils 47 N versus SkyJet E-15 (200 bar \/ 15 L\/min) at 50 N, close despite half the pressure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How does spray recoil relate to a drone's maximum wind resistance?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Both are horizontal forces that scale with the square of speed, so recoil can be expressed as an equivalent wind speed. The wind you can still fly in while spraying is \u221a(v_max\u00b2 \u2212 v_equivalent\u00b2). When the equivalent wind exceeds the drone's rating, the recoil alone is beyond the airframe's horizontal capacity.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does hose weight reduce the drone's wind resistance?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Carried hose weight raises the drone's total weight and lowers its maximum horizontal force, which equals \u221a(T_max\u00b2 \u2212 W\u00b2). The hose also adds aerodynamic drag and excites pendulum swing that consumes control authority. All three effects grow with working height, where wind is also stronger, so the real usable margin is below any calculation that ignores the hose.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Which SkyJet configuration is best for a drone?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For a recoil-constrained airframe, prefer higher pressure with modest flow. At equal jet power, recoil falls as one over the square root of pressure, and cleaning impact is driven by jet velocity, which pressure provides. Flow mainly sets coverage rate and rinse volume. Match the chosen configuration's equivalent wind to the drone's wind class with reserve.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What drag area does the equivalent-wind calculation assume?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The calculator uses a fixed representative heavy washing-drone value of Cd\u00b7A \u2248 0.6 m\u00b2, typical of a standard wash drone. A physically larger drone rated at the same wind speed has more absolute horizontal authority and handles a given recoil more easily, so confirm the figure against your specific airframe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide is produced by the WasherDrone field-engineering team. WasherDrone designs and supplies drone-based pressure washing systems and peripheral components \u2014 including the SkyJet, SkyHose, SkyReel, and SkyNozzle lines \u2014 to operators across international markets. Figures are engineering estimates pending supplier confirmation and are not a substitute for on-site testing.<\/p>\n\n\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"What is recoil force in drone pressure washing?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Recoil force is the steady reaction force of the water jet, equal and opposite to the jet's momentum, that pushes the drone away from the surface. It equals F = Q times the square root of (2 times rho times delta-P), about 0.236 times Q[L\/min] times the square root of P[bar] newtons, and acts horizontally when spraying a vertical facade.\"}},\n{\"@type\":\"Question\",\"name\":\"Does higher pressure or higher flow create more recoil?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Flow has the larger effect. Recoil rises linearly with flow but only with the square root of pressure, so doubling flow doubles recoil while doubling pressure adds about 41%. A lower-pressure, higher-flow setup can recoil harder than a higher-pressure one.\"}},\n{\"@type\":\"Question\",\"name\":\"How does spray recoil relate to a drone's maximum wind resistance?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Both are horizontal forces that scale with the square of speed, so recoil can be expressed as an equivalent wind speed. The wind you can still fly in while spraying is the square root of (v_max squared minus v_equivalent squared). When the equivalent wind exceeds the drone's rating, the recoil alone is beyond the airframe's horizontal capacity.\"}},\n{\"@type\":\"Question\",\"name\":\"Does hose weight reduce the drone's wind resistance?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Carried hose weight raises the drone's total weight and lowers its maximum horizontal force, which equals the square root of (max thrust squared minus weight squared). The hose also adds aerodynamic drag and excites pendulum swing that consumes control authority. All three effects grow with working height, where wind is also stronger.\"}},\n{\"@type\":\"Question\",\"name\":\"Which SkyJet configuration is best for a drone?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"For a recoil-constrained airframe, prefer higher pressure with modest flow. At equal jet power, recoil falls as one over the square root of pressure, and cleaning impact is driven by jet velocity, which pressure provides. Flow mainly sets coverage rate and rinse volume.\"}},\n{\"@type\":\"Question\",\"name\":\"What drag area does the equivalent-wind calculation assume?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The calculator uses a fixed representative heavy washing-drone value of Cd times A of about 0.6 square metres, typical of a standard wash drone. A physically larger drone rated at the same wind speed has more absolute horizontal authority and handles a given recoil more easily, so confirm against your specific airframe.\"}}\n]}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>SkyJet Recoil Calculator Drone Spray Recoil Calculator Estimate spray recoil force and how much wind margin it leaves against your drone&rsquo;s rated wind resistance. Unit system Metric (bar \/ lpm \/ m\/s \/ N) Imperial (psi \/ gpm \/ mph \/ lbf) SkyJet pressure &amp; flow Pressure (bar) Flow rate (L\/min) Drone max wind resistance [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-3386","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false},"uagb_author_info":{"display_name":"Sarper S\u0131lao\u011flu","author_link":"https:\/\/washerdrone.com\/fr\/author\/sarper\/"},"uagb_comment_info":0,"uagb_excerpt":"SkyJet Recoil Calculator Drone Spray Recoil Calculator Estimate spray recoil force and how much wind margin it leaves against your drone&rsquo;s rated wind resistance. Unit system Metric (bar \/ lpm \/ m\/s \/ N) Imperial (psi \/ gpm \/ mph \/ lbf) SkyJet pressure &amp; flow Pressure (bar) Flow rate (L\/min) Drone max wind resistance\u2026","_links":{"self":[{"href":"https:\/\/washerdrone.com\/fr\/wp-json\/wp\/v2\/pages\/3386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/washerdrone.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/washerdrone.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/washerdrone.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/washerdrone.com\/fr\/wp-json\/wp\/v2\/comments?post=3386"}],"version-history":[{"count":8,"href":"https:\/\/washerdrone.com\/fr\/wp-json\/wp\/v2\/pages\/3386\/revisions"}],"predecessor-version":[{"id":3398,"href":"https:\/\/washerdrone.com\/fr\/wp-json\/wp\/v2\/pages\/3386\/revisions\/3398"}],"wp:attachment":[{"href":"https:\/\/washerdrone.com\/fr\/wp-json\/wp\/v2\/media?parent=3386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}