{"id":108,"date":"2025-09-20T01:21:14","date_gmt":"2025-09-20T01:21:14","guid":{"rendered":"https:\/\/tools.anyservspa.cl\/?page_id=108"},"modified":"2025-09-20T01:22:04","modified_gmt":"2025-09-20T01:22:04","slug":"estimador-de-caudal-final","status":"publish","type":"page","link":"https:\/\/tools.anyservspa.cl\/index.php\/estimador-de-caudal-final\/","title":{"rendered":"Estimador de Caudal final"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"utf-8\">\n<title>Estimador de Caudal (Bomba + Lubricante + L\u00ednea)<\/title>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<style>\n:root{ --salmon:#DE643F; --panel:rgba(255,255,255,.08); --bd:rgba(255,255,255,.22); --txt:#E8F3FF; }\nbody{ margin:0; font-family:system-ui,Arial,sans-serif; color:var(--txt); background:transparent; }\n.wrap{ max-width:1000px; margin:36px auto; padding:0 16px; }\nh1{ margin:0 0 8px; font-size:clamp(26px,4.5vw,40px); color:#fff; text-align:center; text-shadow:0 4px 14px rgba(0,0,0,.5); }\n.sub{ text-align:center; opacity:.9; margin:0 0 22px; }\n.card{ background:var(--panel); border:1px solid var(--bd); border-radius:16px; padding:22px;\n       backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); box-shadow:0 10px 30px rgba(0,0,0,.25); }\nh3{ margin:8px 0 14px; color:var(--salmon); font-size:22px; }\n.grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; }\nlabel{ font-size:13px; opacity:.9; }\ninput, select{\n  width:100%; padding:12px; border-radius:10px; border:1px solid rgba(255,255,255,.2);\n  background:rgba(0,0,0,.25); color:#fff; font-size:16px; outline:none;\n}\n.btn{ margin-top:14px; display:inline-block; background:var(--salmon); color:#fff; padding:12px 16px; border-radius:10px;\n      text-decoration:none; cursor:pointer; border:0; font-weight:700; }\n.res{ margin-top:16px; padding:14px; border-radius:12px; background:rgba(0,0,0,.35); }\n.note{ font-size:12px; opacity:.85; margin-top:10px; }\n.warn{ color:#ffb86b; font-weight:700; }\n.bad{ color:#ff6b6b; font-weight:700; }\n.kpi{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; margin-top:10px; }\n.kpi div{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:12px; padding:10px; }\n.kpi b{ font-size:18px; }\n<\/style>\n<\/head>\n<body>\n<div class=\"wrap\">\n  <h1>Estimador de Caudal Final<\/h1>\n  <p class=\"sub\">Ingresa bomba, fluido y tuber\u00eda. El c\u00e1lculo es <strong>orientativo<\/strong> (flujo laminar, modelo simplificado).<\/p>\n\n  <div class=\"card\">\n    <h3>Datos de la bomba<\/h3>\n    <div class=\"grid\">\n      <div>\n        <label>Tipo de bomba<\/label>\n        <select id=\"tipo\">\n          <option value=\"engranes\">Engranes (aceite\/fluido)<\/option>\n          <option value=\"piston\">Pist\u00f3n (aceite\/fluido)<\/option>\n          <option value=\"dosificadora\">Dosificadora (grasa)<\/option>\n        <\/select>\n      <\/div>\n      <div>\n        <label>Desplazamiento (cm\u00b3\/rev) o (mL\/curso)<\/label>\n        <input id=\"disp_cc\" type=\"number\" step=\"any\" placeholder=\"ej: 5\">\n      <\/div>\n      <div>\n        <label>Velocidad (rpm) o ciclos\/min<\/label>\n        <input id=\"rpm\" type=\"number\" step=\"any\" placeholder=\"ej: 1200\">\n      <\/div>\n      <div>\n        <label>Presi\u00f3n disponible del sistema (bar)<\/label>\n        <input id=\"p_bar\" type=\"number\" step=\"any\" placeholder=\"ej: 10\">\n      <\/div>\n    <\/div>\n    <div class=\"note\">Caudal te\u00f3rico: <em>Q<sub>t<\/sub>=Desplazamiento\u00d7Velocidad<\/em>. Caudal real considera deslizamiento interno dependiente de presi\u00f3n y viscosidad.<\/div>\n  <\/div>\n\n  <div class=\"card\" style=\"margin-top:16px\">\n    <h3>Propiedades del lubricante<\/h3>\n    <div class=\"grid\">\n      <div>\n        <label>Viscosidad din\u00e1mica \u03bc (cP)<\/label>\n        <input id=\"mu_cP\" type=\"number\" step=\"any\" placeholder=\"ej: 100 (aceite) \u00b7 1000+ (grasa suave)\">\n      <\/div>\n      <div>\n        <label>Temperatura de operaci\u00f3n (\u00b0C) <small>(opcional)<\/small><\/label>\n        <input id=\"tempC\" type=\"number\" step=\"any\" placeholder=\"ej: 25\">\n      <\/div>\n      <div>\n        <label>Densidad \u03c1 (kg\/m\u00b3)<\/label>\n        <input id=\"rho\" type=\"number\" step=\"any\" placeholder=\"ej: 850\" value=\"850\">\n      <\/div>\n    <\/div>\n    <div class=\"note\">1 cP = 0.001 Pa\u00b7s. Si no sabes la densidad, 850\u2013900 kg\/m\u00b3 para aceites minerales es t\u00edpico.<\/div>\n  <\/div>\n\n  <div class=\"card\" style=\"margin-top:16px\">\n    <h3>Tuber\u00eda \/ l\u00ednea<\/h3>\n    <div class=\"grid\">\n      <div>\n        <label>Largo L (m)<\/label>\n        <input id=\"L_m\" type=\"number\" step=\"any\" placeholder=\"ej: 15\">\n      <\/div>\n      <div>\n        <label>Di\u00e1metro interior d (mm)<\/label>\n        <input id=\"d_mm\" type=\"number\" step=\"any\" placeholder=\"ej: 6\">\n      <\/div>\n    <\/div>\n    <button class=\"btn\" onclick=\"calc()\">Calcular<\/button>\n    <div id=\"out\" class=\"res\" style=\"display:none\"><\/div>\n  <\/div>\n\n  <div class=\"note\" style=\"margin-top:10px\">\n    Supuestos: r\u00e9gimen laminar (Hagen\u2013Poiseuille), fluido newtoniano para p\u00e9rdidas; el <em>slip<\/em> es una aproximaci\u00f3n emp\u00edrica. En grasas o altas rpm\/\u0394P, validar con curva del fabricante.\n  <\/div>\n<\/div>\n\n<script>\nfunction calc(){\n  \/\/ --- Inputs ---\n  const tipo    = document.getElementById('tipo').value;\n  const disp_cc = +document.getElementById('disp_cc').value; \/\/ cm\u00b3\/rev o mL\/curso\n  const rpm     = +document.getElementById('rpm').value;\n  const p_bar   = +document.getElementById('p_bar').value;\n\n  const mu_cP   = +document.getElementById('mu_cP').value;\n  const rho     = +document.getElementById('rho').value || 850;\n  const L_m     = +document.getElementById('L_m').value;\n  const d_mm    = +document.getElementById('d_mm').value;\n\n  if([disp_cc,rpm,p_bar,mu_cP,L_m,d_mm].some(v => !isFinite(v) || v<=0)){\n    return show(`<span class=\"bad\">\u26a0\ufe0f Completa todos los campos con valores positivos.<\/span>`);\n  }\n\n  \/\/ --- Conversi\u00f3n de unidades ---\n  const mu = mu_cP * 1e-3;      \/\/ Pa\u00b7s\n  const d  = d_mm \/ 1000;       \/\/ m\n  const r  = d \/ 2;             \/\/ m\n  const dP = p_bar * 1e5;       \/\/ Pa\n  const disp_m3_rev = disp_cc \/ 1e6; \/\/ m\u00b3\/rev\n\n  \/\/ --- Caudal te\u00f3rico (m\u00b3\/s) ---\n  const Qt_m3_s = (disp_m3_rev * rpm) \/ 60;\n\n  \/\/ --- Modelo simple de slip (deslizamiento) ---\n  \/\/ slip \u2248 k * \u0394P \/ (\u03bc)  ; k depende de tipo de bomba (ajuste emp\u00edrico).\n  \/\/ Acotamos entre 0 y 0.4 (40%).\n  let k;\n  if(tipo === 'engranes') k = 1.4e-9;\n  else if(tipo === 'piston') k = 6e-10;\n  else \/* dosificadora *\/ k = 8e-10;\n\n  let slip = k * dP \/ Math.max(mu,1e-6);\n  slip = Math.max(0, Math.min(slip, 0.4));\n\n  const Qa_m3_s = Qt_m3_s * (1 - slip); \/\/ Caudal real a la salida de la bomba\n\n  \/\/ --- P\u00e9rdida de presi\u00f3n en la l\u00ednea (laminar) ---\n  \/\/ Q = \u03c0\u00b7\u0394P\u00b7r^4 \/ (8\u00b7\u03bc\u00b7L)  -> \u0394P_linea = 8\u00b7\u03bc\u00b7L\u00b7Q \/ (\u03c0\u00b7r^4)\n  const dP_line = 8 * mu * L_m * Qa_m3_s \/ (Math.PI * Math.pow(r,4)); \/\/ Pa\n  const dP_line_bar = dP_line \/ 1e5;\n\n  \/\/ --- Velocidad y Reynolds (para advertencias) ---\n  const area = Math.PI * r * r;\n  const v_ms = Qa_m3_s \/ area;\n  const Re   = rho * v_ms * d \/ mu;\n\n  \/\/ --- \u201cCaudal al final\u201d (si \u0394P_line > \u0394P disponible, avisar) ---\n  let msg = `\n    <div class=\"kpi\">\n      <div><div>Caudal te\u00f3rico Q<sub>t<\/sub><\/div><b>${(Qt_m3_s*1000*60).toFixed(3)} L\/min<\/b><\/div>\n      <div><div>Slip estimado<\/div><b>${(slip*100).toFixed(1)} %<\/b><\/div>\n      <div><div>Caudal real Q<sub>a<\/sub> (salida bomba)<\/div><b>${(Qa_m3_s*1000*60).toFixed(3)} L\/min<\/b><\/div>\n      <div><div>\u0394P en l\u00ednea<\/div><b>${dP_line_bar.toFixed(2)} bar<\/b><\/div>\n      <div><div>Velocidad en tuber\u00eda<\/div><b>${v_ms.toFixed(3)} m\/s<\/b><\/div>\n      <div><div>Reynolds<\/div><b>${Re.toFixed(0)}<\/b><\/div>\n    <\/div>\n  `;\n\n  if(dP_line > dP){\n    msg += `<p class=\"bad\">\u26a0\ufe0f La p\u00e9rdida de presi\u00f3n en la l\u00ednea (${dP_line_bar.toFixed(2)} bar) supera la presi\u00f3n disponible (${p_bar.toFixed(2)} bar). El caudal al extremo ser\u00e1 significativamente menor (o nulo). Revisa di\u00e1metro\/largo\/viscosidad o aumenta presi\u00f3n.<\/p>`;\n  } else {\n    msg += `<p>Con la presi\u00f3n disponible, el sistema deber\u00eda entregar el caudal indicado. <span class=\"warn\">${Re<1500 ? 'R\u00e9gimen laminar (modelo v\u00e1lido).' : 'Posible r\u00e9gimen transitorio\/turbulento; la estimaci\u00f3n puede variar.'}<\/span><\/p>`;\n  }\n\n  show(msg);\n}\n\nfunction show(html){\n  const o = document.getElementById('out');\n  o.style.display='block';\n  o.innerHTML = html;\n}\n<\/script>\n<\/body>\n<\/html>\n\n\n\n\n<!-- Bot\u00f3n Volver (elegante con animaci\u00f3n) -->\r\n<div class=\"as-back-wrap\">\r\n  <button class=\"as-back-btn\" aria-label=\"Volver a la p\u00e1gina anterior\" title=\"Volver\">\r\n    <span class=\"as-icon\" aria-hidden=\"true\">\r\n      <!-- Flecha SVG -->\r\n      <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\">\r\n        <path d=\"M15 5l-7 7 7 7\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n      <\/svg>\r\n    <\/span>\r\n    <span class=\"as-text\">Volver<\/span>\r\n    <span class=\"as-glow\"><\/span>\r\n  <\/button>\r\n<\/div>\r\n\r\n<style>\r\n  .as-back-wrap{\r\n    position: fixed;\r\n    bottom: 22px; left: 22px; \/* c\u00e1mbialo a left si prefieres *\/\r\n    z-index: 9999;\r\n  }\r\n  .as-back-btn{\r\n    --bg: rgba(20,22,27,.75);\r\n    --bg2: rgba(20,22,27,.55);\r\n    --accent: #DE643F; \/* salm\u00f3n Any-Serv *\/\r\n    --txt: #f6f7fb;\r\n\r\n    display: inline-flex; align-items: center; gap: .6rem;\r\n    padding: .9rem 1.15rem;\r\n    color: var(--txt); background: linear-gradient(135deg,var(--bg),var(--bg2));\r\n    border: 1px solid rgba(255,255,255,.08);\r\n    border-radius: 14px;\r\n    backdrop-filter: blur(8px);\r\n    box-shadow: 0 10px 24px rgba(0,0,0,.18), inset 0 0 0 1px rgba(255,255,255,.04);\r\n    cursor: pointer;\r\n    transition: transform .18s ease, box-shadow .25s ease;\r\n    position: relative; overflow: hidden;\r\n  }\r\n  .as-icon{ display: inline-grid; place-items:center; }\r\n  .as-text{ font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, \"Helvetica Neue\", Arial, sans-serif; font-weight: 600; letter-spacing:.2px; }\r\n\r\n  \/* Microinteracciones *\/\r\n  .as-back-btn:hover{ transform: translateY(-2px); box-shadow: 0 16px 32px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.06); }\r\n  .as-back-btn:active{ transform: translateY(0); }\r\n\r\n  \/* \u201cRespiraci\u00f3n\u201d sutil *\/\r\n  .as-back-btn::after{\r\n    content:\"\"; position:absolute; inset:-1px; border-radius:inherit;\r\n    background: radial-gradient(120px 120px at var(--mx,50%) var(--my,50%), rgba(222,100,63,.18), transparent 55%);\r\n    transition: background .15s ease;\r\n    pointer-events:none;\r\n  }\r\n\r\n  \/* Glow lateral *\/\r\n  .as-glow{\r\n    position:absolute; inset:-2px; border-radius:inherit;\r\n    background: conic-gradient(from 180deg at 50% 50%, transparent 0 20%, rgba(222,100,63,.18) 20% 30%, transparent 30% 100%);\r\n    filter: blur(10px); opacity:.0; transition: opacity .25s ease;\r\n    pointer-events:none;\r\n  }\r\n  .as-back-btn:hover .as-glow{ opacity:.8; }\r\n\r\n  \/* Animaci\u00f3n de la flecha *\/\r\n  .as-back-btn:hover .as-icon svg{ transform: translateX(-2px); }\r\n  .as-icon svg{ transition: transform .18s ease; }\r\n\r\n  \/* Modo reducido en m\u00f3viles *\/\r\n  @media (max-width:480px){\r\n    .as-text{ display:none; }\r\n    .as-back-btn{ padding:.8rem; border-radius:12px; }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n  (function(){\r\n    const FALLBACK_URL = '\/'; \/\/ <-- Cambia aqu\u00ed si quieres otro destino por defecto\r\n    const btn = document.querySelector('.as-back-btn');\r\n\r\n    \/\/ Efecto \u201cfollow cursor\u201d para el brillo\r\n    btn.addEventListener('pointermove', (e)=>{\r\n      const r = e.currentTarget.getBoundingClientRect();\r\n      const x = e.clientX - r.left, y = e.clientY - r.top;\r\n      e.currentTarget.style.setProperty('--mx', x+'px');\r\n      e.currentTarget.style.setProperty('--my', y+'px');\r\n    });\r\n\r\n    btn.addEventListener('click', (e)=>{\r\n      e.preventDefault();\r\n      \/\/ Si hay historial \u201creal\u201d, volvemos. Si no, usamos fallback.\r\n      if (window.history.length > 1) {\r\n        window.history.back();\r\n      } else {\r\n        window.location.href = FALLBACK_URL;\r\n      }\r\n    });\r\n  })();\r\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Estimador de Caudal (Bomba + Lubricante + L\u00ednea) Estimador de Caudal Final Ingresa bomba, fluido y tuber\u00eda. El c\u00e1lculo es orientativo (flujo laminar, modelo simplificado). Datos de la bomba Tipo de bomba Engranes (aceite\/fluido)Pist\u00f3n (aceite\/fluido)Dosificadora (grasa) Desplazamiento (cm\u00b3\/rev) o (mL\/curso) Velocidad (rpm) o ciclos\/min Presi\u00f3n disponible del sistema (bar) Caudal te\u00f3rico: Qt=Desplazamiento\u00d7Velocidad. Caudal real considera<\/p>\n<div class=\"more-link\">\n\t\t\t\t <a href=\"https:\/\/tools.anyservspa.cl\/index.php\/estimador-de-caudal-final\/\" class=\"link-btn theme-btn\"><span>Read More <\/span> <i class=\"fa fa-caret-right\"><\/i><\/a>\n\t\t\t<\/div>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-108","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/pages\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/comments?post=108"}],"version-history":[{"count":2,"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/pages\/108\/revisions"}],"predecessor-version":[{"id":112,"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/pages\/108\/revisions\/112"}],"wp:attachment":[{"href":"https:\/\/tools.anyservspa.cl\/index.php\/wp-json\/wp\/v2\/media?parent=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}