{"id":1849,"date":"2026-05-14T05:51:56","date_gmt":"2026-05-14T05:51:56","guid":{"rendered":"https:\/\/tcpel.net\/?page_id=1849"},"modified":"2026-05-14T07:16:01","modified_gmt":"2026-05-14T07:16:01","slug":"biomass-dryer-sizing-calculator","status":"publish","type":"page","link":"https:\/\/tcpel.net\/es\/rotary-dryer\/triple-pass\/biomass-dryer-sizing-calculator\/","title":{"rendered":"Calculadora de dimensionamiento de secadores de biomasa"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-30d46a3\" data-block-id=\"30d46a3\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-30d46a3-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-55d7981\" data-v=\"4\" data-block-id=\"55d7981\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-55d7981-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-55d7981-inner-blocks\"><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-cd1c099\" data-block-id=\"cd1c099\"><style>.stk-cd1c099-column{--stk-columns-spacing:var(--stk--preset--spacing--40, 1rem) !important;}<\/style><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-cd1c099-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-e2940fb\" data-v=\"4\" data-block-id=\"e2940fb\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-e2940fb-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-e2940fb-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-4ada079\" data-block-id=\"4ada079\"><style>.stk-4ada079 {margin-bottom:0px !important;}<\/style><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-4ada079-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-db71d8b\" data-v=\"4\" data-block-id=\"db71d8b\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-db71d8b-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-db71d8b-inner-blocks\">\n<section id=\"tcpel-dryer-sizing-0601\" class=\"tcpel-section-wrapper\">\n    <style>\n        \/* ====================================================================\n           1. Scope & Isolation: Strict prefixing with #tcpel-dryer-sizing-0601\n           2. Typography: Inherit Blocksy global fonts (No external fonts)\n           3. Layout Strategy: CSS Flexbox, Dual-Pane Console, Zero Whitespace\n           ==================================================================== *\/\n\n        \/* Full-Bleed Engineering Canvas *\/\n        #tcpel-dryer-sizing-0601 {\n            position: relative !important;\n            width: 100% !important;\n            padding: 80px 0 !important;\n            background-color: #f4f6f8 !important; \/* Unified Light Industrial Base *\/\n            background-image: \n                linear-gradient(rgba(0, 120, 192, 0.03) 1px, transparent 1px), \n                linear-gradient(90deg, rgba(0, 120, 192, 0.03) 1px, transparent 1px) !important;\n            background-size: 40px 40px !important;\n            box-sizing: border-box !important;\n            overflow: hidden !important;\n            z-index: 1 !important;\n            border-top: 1px solid #eeeeee !important;\n        }\n\n        #tcpel-dryer-sizing-0601 * {\n            box-sizing: border-box !important;\n            margin: 0;\n            padding: 0;\n        }\n\n        \/* Abstract Layered Watermark *\/\n        #tcpel-dryer-sizing-0601::after {\n            content: \"ENGINEERING\" !important;\n            position: absolute !important;\n            top: 2% !important;\n            right: 0 !important;\n            font-size: 13vw !important;\n            font-weight: 900 !important;\n            color: rgba(0, 120, 192, 0.015) !important;\n            line-height: 1 !important;\n            z-index: -1 !important;\n            pointer-events: none !important;\n            white-space: nowrap !important;\n        }\n\n        \/* Anchored Container - max 1600px *\/\n        #tcpel-dryer-sizing-0601 .tcpel-sz-container {\n            max-width: 1600px !important;\n            margin: 0 auto !important;\n            padding: 0 40px !important;\n            position: relative !important;\n            z-index: 2 !important;\n        }\n\n        \/* ==================== Strict Semantic Heading Classes ==================== *\/\n        \n        #tcpel-dryer-sizing-0601 .tcpel-sz-header {\n            margin-bottom: 40px !important;\n            max-width: 1100px !important;\n        }\n\n        \/* EXPLICIT H2 as requested *\/\n        #tcpel-dryer-sizing-0601 h1.tcpel-sz-h2 {\n            font-size: 32px !important; \n            font-weight: 800 !important;\n            color: #111111 !important;\n            line-height: 1.25 !important;\n            margin-bottom: 15px !important;\n            position: relative !important;\n            padding-left: 20px !important;\n            display: block !important;\n        }\n\n        #tcpel-dryer-sizing-0601 h1.tcpel-sz-h2::before {\n            content: \"\" !important;\n            position: absolute !important;\n            left: 0 !important;\n            top: 4px !important;\n            bottom: 4px !important;\n            width: 6px !important;\n            background-color: #0078C0 !important; \/* Primary Blue *\/\n        }\n\n        #tcpel-dryer-sizing-0601 p.tcpel-sz-lead {\n            font-size: 16px !important;\n            color: #555555 !important;\n            line-height: 1.7 !important;\n            margin: 0 !important;\n        }\n\n        \/* ==================== Dual-Pane Console Grid ==================== *\/\n        \n        #tcpel-dryer-sizing-0601 .tcpel-sz-grid {\n            display: flex !important;\n            flex-wrap: wrap !important;\n            background: #ffffff !important;\n            box-shadow: 0 25px 60px rgba(0, 0, 0, 0.06) !important;\n            border-top: 4px solid #0078C0 !important;\n            border-radius: 2px !important;\n            overflow: hidden !important;\n            border-left: 1px solid #eeeeee !important;\n            border-right: 1px solid #eeeeee !important;\n        }\n\n        \/* LEFT PANE: Input Form *\/\n        #tcpel-dryer-sizing-0601 .tcpel-sz-form-pane {\n            flex: 1 1 50% !important;\n            padding: 50px 45px !important;\n            background: #ffffff !important;\n            display: flex !important;\n            flex-direction: column !important;\n        }\n\n        #tcpel-dryer-sizing-0601 h3.tcpel-sz-h3 {\n            font-size: 18px !important;\n            font-weight: 800 !important;\n            color: #111111 !important;\n            margin-bottom: 25px !important;\n            text-transform: uppercase !important;\n            letter-spacing: 0.5px !important;\n            display: flex !important;\n            align-items: center !important;\n        }\n\n        #tcpel-dryer-sizing-0601 h3.tcpel-sz-h3::before {\n            content: \"\u25a0\" !important;\n            color: #006030 !important; \/* Secondary *\/\n            font-size: 12px !important;\n            margin-right: 10px !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-input-matrix {\n            display: grid !important;\n            grid-template-columns: 1fr 1fr !important;\n            gap: 25px !important;\n            margin-bottom: 30px !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-input-group {\n            display: flex !important;\n            flex-direction: column !important;\n        }\n\n        #tcpel-dryer-sizing-0601 label.tcpel-label {\n            font-size: 14px !important;\n            font-weight: 800 !important;\n            color: #111111 !important;\n            margin-bottom: 8px !important;\n            line-height: 1.3 !important;\n        }\n\n        \/* Explicit height and padding fixes FlyingPress CLS bugs *\/\n        #tcpel-dryer-sizing-0601 input.tcpel-sz-input,\n        #tcpel-dryer-sizing-0601 select.tcpel-sz-select {\n            width: 100% !important;\n            height: 52px !important;\n            padding: 0 16px !important;\n            border: 2px solid #e2e8f0 !important;\n            border-radius: 2px !important;\n            font-size: 16px !important;\n            font-weight: 700 !important;\n            color: #111111 !important;\n            background: #f8f9fa !important;\n            transition: all 0.3s ease !important;\n            outline: none !important;\n            box-sizing: border-box !important;\n        }\n\n        #tcpel-dryer-sizing-0601 input.tcpel-sz-input {\n            font-family: monospace !important;\n            font-size: 18px !important;\n        }\n\n        #tcpel-dryer-sizing-0601 input.tcpel-sz-input:focus,\n        #tcpel-dryer-sizing-0601 select.tcpel-sz-select:focus {\n            border-color: #0078C0 !important;\n            background: #ffffff !important;\n            box-shadow: 0 0 0 3px rgba(0, 120, 192, 0.15) !important;\n        }\n\n        \/* Primary Action Button *\/\n        #tcpel-dryer-sizing-0601 button.tcpel-btn-calc {\n            display: flex !important;\n            align-items: center !important;\n            justify-content: center !important;\n            width: 100% !important;\n            height: 56px !important;\n            background: #006030 !important; \/* Secondary Color *\/\n            color: #ffffff !important;\n            border: none !important;\n            border-radius: 2px !important;\n            font-size: 16px !important;\n            font-weight: 800 !important;\n            cursor: pointer !important;\n            transition: all 0.3s ease !important;\n            text-transform: uppercase !important;\n            letter-spacing: 1px !important;\n            margin-top: auto !important;\n        }\n\n        #tcpel-dryer-sizing-0601 button.tcpel-btn-calc:hover {\n            background: #004d26 !important;\n            transform: translateY(-2px) !important;\n            box-shadow: 0 10px 20px rgba(0, 96, 48, 0.2) !important;\n        }\n\n        \/* RIGHT PANE: Deep Industrial Display *\/\n        #tcpel-dryer-sizing-0601 .tcpel-sz-display-pane {\n            flex: 1 1 50% !important;\n            background: #0f172a !important; \/* Deep Navy *\/\n            padding: 50px 45px !important;\n            position: relative !important;\n            color: #e2e8f0 !important;\n            border-left: 1px solid #1e293b !important;\n            display: flex !important;\n            flex-direction: column !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-sz-display-pane::before {\n            content: \"\" !important;\n            position: absolute !important;\n            top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;\n            background-image: \n                linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px), \n                linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px) !important;\n            background-size: 20px 20px !important;\n            pointer-events: none !important;\n        }\n\n        \/* Standby State *\/\n        #tcpel-dryer-sizing-0601 .tcpel-sz-standby {\n            flex-grow: 1 !important;\n            display: flex !important;\n            flex-direction: column !important;\n            align-items: center !important;\n            justify-content: center !important;\n            text-align: center !important;\n            opacity: 0.5 !important;\n            z-index: 2 !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-sz-standby[style*=\"display: none\"] {\n            display: none !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-sz-standby svg {\n            width: 50px !important;\n            height: 50px !important;\n            fill: #64748b !important;\n            margin-bottom: 15px !important;\n        }\n\n        \/* Result State *\/\n        #tcpel-dryer-sizing-0601 .tcpel-sz-result {\n            display: none;\n            flex-direction: column !important;\n            z-index: 2 !important;\n            position: relative !important;\n            animation: tcpelFadeIn 0.4s ease forwards !important;\n            height: 100% !important;\n        }\n\n        @keyframes tcpelFadeIn {\n            from { opacity: 0; transform: translateY(10px); }\n            to { opacity: 1; transform: translateY(0); }\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-sz-result.tcpel-active {\n            display: flex !important;\n        }\n\n        #tcpel-dryer-sizing-0601 h4.tcpel-sz-h4 {\n            font-size: 18px !important;\n            color: #0078C0 !important;\n            text-transform: uppercase !important;\n            letter-spacing: 1px !important;\n            margin-bottom: 20px !important;\n            font-weight: 800 !important;\n            border-bottom: 1px solid rgba(255,255,255,0.1) !important;\n            padding-bottom: 15px !important;\n        }\n\n        \/* Dynamic Warnings generated by JS *\/\n        #tcpel-dryer-sizing-0601 .tcpel-warn-box {\n            background: rgba(217, 119, 6, 0.1) !important;\n            border-left: 4px solid #d97706 !important;\n            padding: 15px 20px !important;\n            margin-bottom: 20px !important;\n            border-radius: 2px !important;\n            color: #fde68a !important;\n            font-size: 14px !important;\n            line-height: 1.6 !important;\n        }\n        #tcpel-dryer-sizing-0601 .tcpel-warn-box strong {\n            color: #fef3c7 !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-alert-box {\n            background: rgba(220, 38, 38, 0.1) !important;\n            border-left: 4px solid #dc2626 !important;\n            padding: 15px 20px !important;\n            margin-bottom: 20px !important;\n            border-radius: 2px !important;\n            color: #fca5a5 !important;\n            font-size: 14px !important;\n            line-height: 1.6 !important;\n        }\n        #tcpel-dryer-sizing-0601 .tcpel-alert-box strong {\n            color: #fef2f2 !important;\n        }\n\n        \/* Data Rows *\/\n        #tcpel-dryer-sizing-0601 .tcpel-data-list {\n            display: flex !important;\n            flex-direction: column !important;\n            gap: 12px !important;\n            margin-bottom: 25px !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-data-row {\n            display: flex !important;\n            justify-content: space-between !important;\n            align-items: center !important;\n            padding-bottom: 12px !important;\n            border-bottom: 1px solid rgba(255,255,255,0.05) !important;\n            font-size: 14.5px !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-data-row:last-child {\n            border-bottom: none !important;\n            padding-bottom: 0 !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-data-row .tcpel-dlbl {\n            color: #94a3b8 !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-data-row .tcpel-dval {\n            font-weight: 700 !important;\n            color: #ffffff !important;\n            font-family: monospace !important;\n            font-size: 15px !important;\n        }\n\n        #tcpel-dryer-sizing-0601 .tcpel-data-row.tcpel-highlight .tcpel-dval {\n            color: #4ade80 !important;\n            font-size: 18px !important;\n            font-weight: 900 !important;\n        }\n\n        \/* Action Buttons inside result *\/\n        #tcpel-dryer-sizing-0601 .tcpel-sz-cta-group {\n            display: flex !important;\n            gap: 15px !important;\n            flex-wrap: wrap !important;\n            margin-top: auto !important;\n        }\n\n        #tcpel-dryer-sizing-0601 a.tcpel-res-btn {\n            display: inline-flex !important;\n            align-items: center !important;\n            justify-content: center !important;\n            padding: 14px 24px !important;\n            background: #0078C0 !important; \/* Primary *\/\n            color: #ffffff !important;\n            text-decoration: none !important;\n            font-weight: 800 !important;\n            border-radius: 2px !important;\n            transition: all 0.3s ease !important;\n            flex: 1 1 auto !important;\n            text-transform: uppercase !important;\n            letter-spacing: 0.5px !important;\n        }\n\n        #tcpel-dryer-sizing-0601 a.tcpel-res-btn:hover {\n            background: #005a91 !important;\n        }\n\n        \/* Bottom Footer Bar *\/\n        #tcpel-dryer-sizing-0601 .tcpel-sz-footer {\n            background: #e2e8f0 !important;\n            padding: 20px 30px !important;\n            text-align: left !important;\n            font-size: 13px !important;\n            line-height: 1.6 !important;\n            color: #475569 !important;\n            border-bottom-left-radius: 4px !important;\n            border-bottom-right-radius: 4px !important;\n        }\n\n        \/* ==================== Responsive Adjustments ==================== *\/\n        @media (max-width: 992px) {\n            #tcpel-dryer-sizing-0601 .tcpel-sz-form-pane,\n            #tcpel-dryer-sizing-0601 .tcpel-sz-display-pane {\n                flex: 1 1 100% !important;\n            }\n            #tcpel-dryer-sizing-0601 .tcpel-sz-display-pane {\n                border-left: none !important;\n                border-top: 1px solid #1e293b !important;\n            }\n        }\n        @media (max-width:690px) {\n            #tcpel-dryer-sizing-0601 { padding: 50px 0 !important; }\n            #tcpel-dryer-sizing-0601 .tcpel-sz-container { padding: 0 20px !important; }\n            #tcpel-dryer-sizing-0601 h1.tcpel-sz-h2 { font-size: 26px !important; }\n            #tcpel-dryer-sizing-0601 .tcpel-sz-form-pane,\n            #tcpel-dryer-sizing-0601 .tcpel-sz-display-pane { padding: 35px 20px !important; }\n            #tcpel-dryer-sizing-0601 .tcpel-input-matrix { grid-template-columns: 1fr !important; gap: 20px !important; }\n            #tcpel-dryer-sizing-0601 a.tcpel-res-btn { width: 100% !important; }\n            #tcpel-dryer-sizing-0601 .tcpel-data-row { flex-direction: column !important; align-items: flex-start !important; gap: 4px !important; }\n        }\n    <\/style>\n\n    <div class=\"tcpel-sz-container\">\n        \n        <div class=\"tcpel-sz-header\">\n            <h1 class=\"tcpel-sz-h2\">Biomass Dryer Sizing Calculator<\/h1>\n            <p class=\"tcpel-sz-lead\">Enter your feedstock, throughput target, and moisture requirements. The tool recommends a TCSG triple pass rotary dryer model and estimates thermal and electrical demand. Powered by TCPEL engineering data and the peer-reviewed MDPI biomass drying benchmark (3.4 MJ\/kg water).<\/p>\n        <\/div>\n\n        <div class=\"tcpel-sz-grid\">\n            \n            <div class=\"tcpel-sz-form-pane\">\n                \n                <h3 class=\"tcpel-sz-h3\">1. Feedstock Inputs<\/h3>\n                \n                <div class=\"tcpel-input-matrix\">\n                    <div class=\"tcpel-input-group\">\n                        <label class=\"tcpel-label\" for=\"tcpel-feedstock\">Feedstock type<\/label>\n                        <select id=\"tcpel-feedstock\" class=\"tcpel-sz-select\">\n                            <option value=\"sawdust\">Wood sawdust<\/option>\n                            <option value=\"woodchip\">Wood chips<\/option>\n                            <option value=\"alfalfa\">Alfalfa \/ agricultural residue<\/option>\n                            <option value=\"rice\">Rice husk<\/option>\n                            <option value=\"bagasse\">Bagasse \/ sugarcane<\/option>\n                        <\/select>\n                    <\/div>\n                    <div class=\"tcpel-input-group\">\n                        <label class=\"tcpel-label\" for=\"tcpel-particle\">Particle size (mm)<\/label>\n                        <input type=\"number\" id=\"tcpel-particle\" class=\"tcpel-sz-input\" value=\"10\" min=\"1\" max=\"100\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"tcpel-input-matrix\">\n                    <div class=\"tcpel-input-group\">\n                        <label class=\"tcpel-label\" for=\"tcpel-throughput\">Target dry product throughput (T\/H)<\/label>\n                        <input type=\"number\" id=\"tcpel-throughput\" class=\"tcpel-sz-input\" value=\"3\" min=\"0.5\" max=\"10\" step=\"0.5\">\n                    <\/div>\n                    <div class=\"tcpel-input-group\">\n                        <label class=\"tcpel-label\" for=\"tcpel-hours\">Operating hours per day<\/label>\n                        <input type=\"number\" id=\"tcpel-hours\" class=\"tcpel-sz-input\" value=\"16\" min=\"1\" max=\"24\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"tcpel-input-matrix\">\n                    <div class=\"tcpel-input-group\">\n                        <label class=\"tcpel-label\" for=\"tcpel-inlet\">Inlet moisture (%)<\/label>\n                        <input type=\"number\" id=\"tcpel-inlet\" class=\"tcpel-sz-input\" value=\"50\" min=\"20\" max=\"65\">\n                    <\/div>\n                    <div class=\"tcpel-input-group\">\n                        <label class=\"tcpel-label\" for=\"tcpel-outlet\">Outlet target moisture (%)<\/label>\n                        <input type=\"number\" id=\"tcpel-outlet\" class=\"tcpel-sz-input\" value=\"15\" min=\"8\" max=\"20\">\n                    <\/div>\n                <\/div>\n\n                <button class=\"tcpel-btn-calc\" onclick=\"window.tcpelRunDryerSizing()\">Calculate Sizing &rarr;<\/button>\n            <\/div>\n\n            <div class=\"tcpel-sz-display-pane\">\n                \n                <div class=\"tcpel-sz-standby\" id=\"tcpel-sz-standby-screen\">\n                    <svg viewBox=\"0 0 24 24\"><path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9h-2V7h-2v5H6v2h2v5h2v-5h2v-2zM18 7h-2v2h2V7zm0 4h-2v2h2v-2zm0 4h-2v2h2v-2z\"\/><\/svg>\n                    <h4 style=\"font-size:16px; margin:0; text-transform:uppercase; letter-spacing:1px; color:#94a3b8;\">Awaiting Parameters<\/h4>\n                    <p style=\"font-size:13px; margin-top:5px; color:#64748b;\">Input feedstock specs to generate<\/p>\n                <\/div>\n\n                <div class=\"tcpel-sz-result\" id=\"tcpel-sz-result-screen\">\n                    <h4 class=\"tcpel-sz-h4\">Recommended Configuration<\/h4>\n                    \n                    <div id=\"tcpel-sz-result-body\">\n                        <\/div>\n\n                    <div class=\"tcpel-sz-cta-group\">\n                        <a href=\"#ct-popup-816\" class=\"tcpel-res-btn\">Request Detailed Quote for This Configuration &rarr;<\/a>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n\n            <div class=\"tcpel-sz-footer\">\n                Estimates use 3.4 MJ\/kg water (MDPI 2020 benchmark for indirect dryers) and the rated electrical power of each TCSG model. Real-world consumption varies &plusmn;15% depending on heat source efficiency and feedstock variability. For binding figures, request a commissioning audit.\n            <\/div>\n\n        <\/div>\n    <\/div>\n\n    <script>\n        (function() {\n            const models = [\n                { name: 'TCSG10', capTph: 1, evapKgh: 700, elecKw: 32 },\n                { name: 'TCSG20', capTph: 2, evapKgh: 1400, elecKw: 42 },\n                { name: 'TCSG30', capTph: 3, evapKgh: 2100, elecKw: 70 },\n                { name: 'TCSG40', capTph: 4, evapKgh: 2800, elecKw: 80 },\n                { name: 'TCSG50', capTph: 5, evapKgh: 3500, elecKw: 109 },\n                { name: 'TCSG60', capTph: 6, evapKgh: 4200, elecKw: 124 }\n            ];\n\n            \/\/ Exposed to window for inline onclick firing\n            window.tcpelRunDryerSizing = function() {\n                const feedstock = document.getElementById('tcpel-feedstock').value;\n                const particle = parseFloat(document.getElementById('tcpel-particle').value);\n                const throughput = parseFloat(document.getElementById('tcpel-throughput').value);\n                const hours = parseFloat(document.getElementById('tcpel-hours').value);\n                const inlet = parseFloat(document.getElementById('tcpel-inlet').value);\n                const outlet = parseFloat(document.getElementById('tcpel-outlet').value);\n\n                if(!particle || !throughput || !hours || !inlet || !outlet) {\n                    alert(\"Please complete all inputs.\");\n                    return;\n                }\n\n                \/\/ Particle size check (Logic preserved, styled with new B2B classes)\n                let particleWarn = '';\n                if (particle > 40) {\n                    particleWarn = '<div class=\"tcpel-alert-box\"><strong>Warning:<\/strong> Particle size above 40 mm exceeds the triple-pass recommended limit. Consider pre-shredding or a single-pass dryer.<\/div>';\n                } else if (particle > 25 && (feedstock === 'sawdust' || feedstock === 'rice')) {\n                    particleWarn = '<div class=\"tcpel-warn-box\"><strong>Note:<\/strong> Particle size is larger than typical for this feedstock. Pre-screening recommended.<\/div>';\n                }\n\n                \/\/ Water to evaporate per hour (wet basis)\n                \/\/ Dry product throughput \u2192 wet feed required \u2192 water mass\n                const dryThroughput = throughput * 1000; \/\/ kg\/h dry product\n                const dryFraction = 1 - outlet\/100;\n                const wetFeedKgh = dryThroughput \/ dryFraction;\n                const inletWaterKgh = wetFeedKgh * inlet\/100;\n                const outletWaterKgh = (wetFeedKgh - inletWaterKgh) * outlet\/(100-outlet);\n                const waterEvapKgh = inletWaterKgh - outletWaterKgh;\n\n                \/\/ Find the smallest model whose evap rating >= waterEvapKgh * 1.15 (buffer)\n                const sized = waterEvapKgh * 1.15;\n                let rec = models[models.length - 1];\n                let oversized = true;\n                for (const m of models) {\n                    if (m.evapKgh >= sized) { rec = m; oversized = false; break; }\n                }\n\n                const thermalMjh = waterEvapKgh * 3.4;\n                const dailyDry = throughput * hours;\n                const annualDry = dailyDry * 300;\n                const elecPerTonDry = rec.elecKw \/ throughput;\n\n                let oversizedMsg = '';\n                if (oversized) {\n                    oversizedMsg = '<div class=\"tcpel-alert-box\"><strong>Throughput above TCSG60 (4,200 kg\/h water evaporation).<\/strong> Recommended: twin-drum installation of two TCSG60 units, or custom build (75 to 90 days lead time).<\/div>';\n                }\n\n                \/\/ Constructing HTML output using highly styled B2B dark-mode classes\n                const outputHtml = `\n                    ${particleWarn}\n                    ${oversizedMsg}\n                    <div class=\"tcpel-data-list\">\n                        <div class=\"tcpel-data-row tcpel-highlight\">\n                            <span class=\"tcpel-dlbl\">Recommended model<\/span>\n                            <span class=\"tcpel-dval\">${rec.name}<\/span>\n                        <\/div>\n                        <div class=\"tcpel-data-row\">\n                            <span class=\"tcpel-dlbl\">Water to evaporate<\/span>\n                            <span class=\"tcpel-dval\">${Math.round(waterEvapKgh).toLocaleString()} kg\/h<\/span>\n                        <\/div>\n                        <div class=\"tcpel-data-row\">\n                            <span class=\"tcpel-dlbl\">Model evaporation rating<\/span>\n                            <span class=\"tcpel-dval\">${rec.evapKgh.toLocaleString()} kg\/h<\/span>\n                        <\/div>\n                        <div class=\"tcpel-data-row\">\n                            <span class=\"tcpel-dlbl\">Capacity buffer over your duty<\/span>\n                            <span class=\"tcpel-dval\">${Math.round((rec.evapKgh \/ waterEvapKgh - 1) * 100)}%<\/span>\n                        <\/div>\n                        <div class=\"tcpel-data-row\">\n                            <span class=\"tcpel-dlbl\">Thermal demand (MDPI benchmark)<\/span>\n                            <span class=\"tcpel-dval\">${Math.round(thermalMjh).toLocaleString()} MJ\/h<\/span>\n                        <\/div>\n                        <div class=\"tcpel-data-row\">\n                            <span class=\"tcpel-dlbl\">Total electrical power<\/span>\n                            <span class=\"tcpel-dval\">${rec.elecKw} kW<\/span>\n                        <\/div>\n                        <div class=\"tcpel-data-row\">\n                            <span class=\"tcpel-dlbl\">Electricity per ton dry product<\/span>\n                            <span class=\"tcpel-dval\">${elecPerTonDry.toFixed(1)} kWh\/ton<\/span>\n                        <\/div>\n                        <div class=\"tcpel-data-row\">\n                            <span class=\"tcpel-dlbl\">Daily dry product output<\/span>\n                            <span class=\"tcpel-dval\">${dailyDry.toFixed(1)} tons<\/span>\n                        <\/div>\n                        <div class=\"tcpel-data-row\">\n                            <span class=\"tcpel-dlbl\">Annual output (300 working days)<\/span>\n                            <span class=\"tcpel-dval\">${annualDry.toLocaleString()} tons<\/span>\n                        <\/div>\n                    <\/div>\n                `;\n\n                \/\/ Render & Switch Pane\n                document.getElementById('tcpel-sz-result-body').innerHTML = outputHtml;\n                document.getElementById('tcpel-sz-standby-screen').style.display = 'none';\n                document.getElementById('tcpel-sz-result-screen').classList.add('tcpel-active');\n            };\n        })();\n    <\/script>\n<\/section>\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Biomass Dryer Sizing Calculator Enter your feedstock, throughput target, and moisture requirements. The tool recommends a TCSG triple pass rotary dryer model and estimates thermal and electrical demand. Powered by TCPEL engineering data and the peer-reviewed MDPI biomass drying benchmark (3.4 MJ\/kg water). 1. Feedstock Inputs Feedstock type Wood sawdustWood chipsAlfalfa \/ agricultural residueRice huskBagasse [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":1589,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-1849","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/tcpel.net\/es\/wp-json\/wp\/v2\/pages\/1849","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tcpel.net\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tcpel.net\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tcpel.net\/es\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/tcpel.net\/es\/wp-json\/wp\/v2\/comments?post=1849"}],"version-history":[{"count":0,"href":"https:\/\/tcpel.net\/es\/wp-json\/wp\/v2\/pages\/1849\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/tcpel.net\/es\/wp-json\/wp\/v2\/pages\/1589"}],"wp:attachment":[{"href":"https:\/\/tcpel.net\/es\/wp-json\/wp\/v2\/media?parent=1849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}