{"id":6443,"date":"2025-07-05T21:51:35","date_gmt":"2025-07-05T21:51:35","guid":{"rendered":"https:\/\/vibromera.eu\/?p=6443"},"modified":"2025-07-23T17:35:26","modified_gmt":"2025-07-23T17:35:26","slug":"trial-weight-calculator","status":"publish","type":"post","link":"https:\/\/vibromera.eu\/bn\/content\/trial-weight-calculator\/","title":{"rendered":"\u09b0\u09cb\u099f\u09b0 \u09ad\u09be\u09b0\u09b8\u09be\u09ae\u09cd\u09af\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u099f\u09cd\u09b0\u09be\u09af\u09bc\u09be\u09b2 \u0993\u099c\u09a8 \u0995\u09cd\u09af\u09be\u09b2\u0995\u09c1\u09b2\u09c7\u099f\u09b0"},"content":{"rendered":"<div id=\"pl-6443\"  class=\"panel-layout\" ><div id=\"pg-6443-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-6443-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-6443-0-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"0\" ><h3 class=\"widget-title\">Trial Weight Calculator<\/h3><div class=\"textwidget custom-html-widget\">    <style>\n        body {\n            font-family: Arial, sans-serif;\n            margin: 0;\n            padding: 20px;\n            background-color: #f5f5f5;\n        }\n        .container {\n            max-width: 1000px;\n            margin: 0 auto;\n        }\n        .calculator {\n            background-color: white;\n            padding: 30px;\n            border-radius: 10px;\n            box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n            margin-bottom: 20px;\n        }\n        h1 {\n            color: #333;\n            text-align: center;\n            margin-bottom: 10px;\n        }\n        .subtitle {\n            text-align: center;\n            color: #666;\n            margin-bottom: 30px;\n            font-size: 0.9em;\n        }\n        .formula-box {\n            background-color: #f0f8ff;\n            border: 2px solid #4169e1;\n            border-radius: 8px;\n            padding: 20px;\n            margin-bottom: 30px;\n            text-align: center;\n        }\n        .formula {\n            font-size: 1.3em;\n            font-family: 'Times New Roman', serif;\n            margin: 10px 0;\n        }\n        .where {\n            text-align: left;\n            margin-top: 15px;\n            font-size: 0.9em;\n            line-height: 1.6;\n        }\n        .input-group {\n            margin-bottom: 20px;\n        }\n        .input-with-unit {\n            display: flex;\n            gap: 10px;\n            align-items: stretch;\n        }\n        .input-with-unit input {\n            flex: 1;\n        }\n        .input-with-unit select {\n            width: 100px;\n        }\n        label {\n            display: block;\n            margin-bottom: 5px;\n            color: #333;\n            font-weight: bold;\n        }\n        input[type=\"number\"] {\n            width: 100%;\n            padding: 10px;\n            border: 2px solid #ddd;\n            border-radius: 5px;\n            font-size: 16px;\n            box-sizing: border-box;\n        }\n        input[type=\"number\"]:focus {\n            outline: none;\n            border-color: #4169e1;\n        }\n        select {\n            padding: 10px;\n            border: 2px solid #ddd;\n            border-radius: 5px;\n            font-size: 16px;\n            background-color: white;\n            cursor: pointer;\n        }\n        select:focus {\n            outline: none;\n            border-color: #4169e1;\n        }\n        .slider-container {\n            margin-top: 10px;\n        }\n        input[type=\"range\"] {\n            width: 100%;\n            height: 8px;\n            background: linear-gradient(to right, #4caf50, #ff9800, #f44336);\n            border-radius: 5px;\n            outline: none;\n            -webkit-appearance: none;\n            margin: 10px 0;\n        }\n        input[type=\"range\"]::-webkit-slider-thumb {\n            -webkit-appearance: none;\n            appearance: none;\n            width: 20px;\n            height: 20px;\n            background: #4169e1;\n            cursor: pointer;\n            border-radius: 50%;\n            border: 2px solid white;\n            box-shadow: 0 2px 5px rgba(0,0,0,0.3);\n        }\n        input[type=\"range\"]::-moz-range-thumb {\n            width: 20px;\n            height: 20px;\n            background: #4169e1;\n            cursor: pointer;\n            border-radius: 50%;\n            border: 2px solid white;\n            box-shadow: 0 2px 5px rgba(0,0,0,0.3);\n        }\n        .slider-value {\n            text-align: center;\n            font-size: 1.2em;\n            font-weight: bold;\n            color: #4169e1;\n            margin-top: 5px;\n        }\n        .vibration-info {\n            display: flex;\n            gap: 10px;\n            align-items: center;\n            margin-top: 10px;\n        }\n        .vibration-level {\n            padding: 5px 10px;\n            border-radius: 5px;\n            font-weight: bold;\n            flex: 1;\n            text-align: center;\n        }\n        .level-low {\n            background-color: #c8e6c9;\n            color: #2e7d32;\n        }\n        .level-normal {\n            background-color: #fff9c4;\n            color: #f57f17;\n        }\n        .level-elevated {\n            background-color: #ffe0b2;\n            color: #e65100;\n        }\n        .level-high {\n            background-color: #ffcdd2;\n            color: #c62828;\n        }\n        button {\n            width: 100%;\n            padding: 15px;\n            background-color: #4169e1;\n            color: white;\n            border: none;\n            border-radius: 5px;\n            font-size: 18px;\n            font-weight: bold;\n            cursor: pointer;\n            transition: background-color 0.3s;\n            margin-top: 10px;\n        }\n        button:hover {\n            background-color: #1e50a2;\n        }\n        button[type=\"reset\"] {\n            background-color: #666;\n        }\n        button[type=\"reset\"]:hover {\n            background-color: #444;\n        }\n        .result {\n            margin-top: 30px;\n            padding: 30px;\n            background: linear-gradient(135deg, #4caf50 0%, #45a049 100%);\n            border-radius: 15px;\n            text-align: center;\n            display: none;\n            box-shadow: 0 5px 20px rgba(76, 175, 80, 0.3);\n            animation: slideIn 0.5s ease-out;\n        }\n        @keyframes slideIn {\n            from {\n                opacity: 0;\n                transform: translateY(20px);\n            }\n            to {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n        .result.show {\n            display: block;\n        }\n        .result h2 {\n            margin: 0 0 20px 0;\n            color: white;\n            font-size: 1.8em;\n            text-shadow: 2px 2px 4px rgba(0,0,0,0.2);\n        }\n        .result-value {\n            font-size: 3em;\n            font-weight: bold;\n            color: white;\n            margin: 20px 0;\n            padding: 20px;\n            background-color: rgba(255, 255, 255, 0.2);\n            border-radius: 10px;\n            text-shadow: 2px 2px 4px rgba(0,0,0,0.2);\n        }\n        .result-formula {\n            margin-top: 20px;\n            padding: 20px;\n            background-color: white;\n            border-radius: 10px;\n            font-family: 'Times New Roman', serif;\n            color: #333;\n            font-size: 1.1em;\n            box-shadow: inset 0 2px 5px rgba(0,0,0,0.1);\n            line-height: 1.8;\n        }\n        .info-section {\n            background-color: white;\n            padding: 30px;\n            border-radius: 10px;\n            box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n            margin-bottom: 20px;\n        }\n        .info-section h2 {\n            color: #4169e1;\n            margin-bottom: 20px;\n            border-bottom: 2px solid #4169e1;\n            padding-bottom: 10px;\n        }\n        .info-section h3 {\n            color: #333;\n            margin-top: 25px;\n            margin-bottom: 15px;\n        }\n        .info-section p, .info-section li {\n            line-height: 1.6;\n            color: #555;\n            margin-bottom: 10px;\n        }\n        .warning {\n            background-color: #fff3cd;\n            border: 1px solid #ffeaa7;\n            border-radius: 5px;\n            padding: 15px;\n            margin: 15px 0;\n        }\n        .warning strong {\n            color: #856404;\n        }\n        .important {\n            background-color: #ffebee;\n            border-left: 4px solid #f44336;\n            padding: 15px;\n            margin: 15px 0;\n            border-radius: 0 5px 5px 0;\n        }\n        .important strong {\n            color: #c62828;\n        }\n        ul {\n            padding-left: 20px;\n        }\n        ul li {\n            margin-bottom: 8px;\n        }\n        @media (max-width: 600px) {\n            .calculator, .info-section {\n                padding: 20px;\n            }\n            .formula {\n                font-size: 1.1em;\n            }\n            .result-value {\n                font-size: 2em;\n            }\n            .input-with-unit {\n                flex-direction: column;\n            }\n            .input-with-unit select {\n                width: 100%;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"container\">\n        <div class=\"calculator\">\n            <h1>Trial Weight Calculator for Rotor Balancing<\/h1>\n            <p class=\"subtitle\">Calculation of trial weight mass for rotor balancing<\/p>\n            \n            <div class=\"formula-box\">\n                <div class=\"formula\">\n                    M<sub>t<\/sub> = M<sub>r<\/sub> \u00d7 K<sub>supp<\/sub> \u00d7 K<sub>vib<\/sub> \/ (R<sub>t<\/sub> \u00d7 (N\/100)\u00b2)\n                <\/div>\n                <div class=\"where\">\n                    <strong>where:<\/strong><br>\n                    M<sub>t<\/sub> - trial weight mass, g<br>\n                    M<sub>r<\/sub> - rotor mass<br>\n                    K<sub>supp<\/sub> - support stiffness coefficient (1-5)<br>\n                    K<sub>vib<\/sub> - vibration level coefficient<br>\n                    R<sub>t<\/sub> - trial weight installation radius<br>\n                    N - rotor speed, rpm\n                <\/div>\n            <\/div>\n\n            <form id=\"calculatorForm\">\n                <div class=\"input-group\">\n                    <label for=\"rotorMass\">Rotor mass (M<sub>r<\/sub>)<\/label>\n                    <div class=\"input-with-unit\">\n                        <input type=\"number\" id=\"rotorMass\" name=\"rotorMass\" step=\"0.01\" min=\"0.01\" required>\n                        <select id=\"massUnit\">\n                            <option value=\"g\">grams<\/option>\n                            <option value=\"kg\">kilograms<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"input-group\">\n                    <label for=\"radius\">Trial weight installation radius (R<sub>t<\/sub>)<\/label>\n                    <div class=\"input-with-unit\">\n                        <input type=\"number\" id=\"radius\" name=\"radius\" step=\"0.01\" min=\"0.01\" required>\n                        <select id=\"radiusUnit\">\n                            <option value=\"mm\">mm<\/option>\n                            <option value=\"cm\">cm<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"input-group\">\n                    <label for=\"speed\">Rotor speed (N), rpm<\/label>\n                    <input type=\"number\" id=\"speed\" name=\"speed\" step=\"1\" min=\"1\" required>\n                <\/div>\n\n                <div class=\"input-group\">\n                    <label for=\"supportType\">Support stiffness coefficient (K<sub>supp<\/sub>)<\/label>\n                    <div class=\"slider-container\">\n                        <input type=\"range\" id=\"supportType\" min=\"1\" max=\"5\" step=\"0.1\" value=\"1\">\n                        <div class=\"slider-value\" id=\"supportValue\">1.0<\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"input-group\">\n                    <label for=\"vibrationLevel\">Vibration level, mm\/sec<\/label>\n                    <input type=\"number\" id=\"vibrationLevel\" step=\"0.1\" min=\"0.1\" placeholder=\"Enter vibration level\">\n                    <div class=\"vibration-info\">\n                        <div id=\"vibrationStatus\" class=\"vibration-level\">Enter value<\/div>\n                        <div>K<sub>vib<\/sub> = <span id=\"vibrationCoeff\">1.0<\/span><\/div>\n                    <\/div>\n                <\/div>\n\n                <button type=\"submit\">Calculate<\/button>\n                <button type=\"reset\">Clear<\/button>\n            <\/form>\n\n            <div id=\"result\" class=\"result\">\n                <h2>\u2713 Calculation Result<\/h2>\n                <div class=\"result-value\" id=\"resultValue\"><\/div>\n                <div class=\"result-formula\" id=\"resultFormula\"><\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"info-section\">\n            <h2>Calculator Description<\/h2>\n            \n            <p>This calculator is designed to calculate the trial weight mass required for the dynamic rotor balancing procedure. Proper selection of trial weight mass is critical for successful balancing.<\/p>\n            \n            <h3>How it works<\/h3>\n            <p>The calculator uses an empirical formula that takes into account rotor mass, weight installation radius, rotation speed, support stiffness, and vibration level.<\/p>\n\n            <h3>Support stiffness coefficient (K<sub>supp<\/sub>)<\/h3>\n            <ul>\n                <li><strong>1.0<\/strong> - Very soft supports (rubber dampers)<\/li>\n                <li><strong>2.0-3.0<\/strong> - Medium stiffness (standard bearings)<\/li>\n                <li><strong>4.0-5.0<\/strong> - Rigid supports (massive foundation)<\/li>\n            <\/ul>\n            \n            <h3>Vibration levels and coefficients<\/h3>\n            <ul>\n                <li><strong>Low (up to 5 mm\/sec)<\/strong> - K<sub>vib<\/sub> = 0.5<\/li>\n                <li><strong>Normal (5-10 mm\/sec)<\/strong> - K<sub>vib<\/sub> = 1.0<\/li>\n                <li><strong>Elevated (10-20 mm\/sec)<\/strong> - K<sub>vib<\/sub> = 1.5<\/li>\n                <li><strong>High (20-40 mm\/sec)<\/strong> - K<sub>vib<\/sub> = 2.0<\/li>\n                <li><strong>Very high (>40 mm\/sec)<\/strong> - K<sub>vib<\/sub> = 2.5<\/li>\n            <\/ul>\n\n            <div class=\"warning\">\n                <strong>Important!<\/strong> The trial weight mass is selected so that its installation causes a noticeable change (>20-30 degrees) in phase and (20-30%) in vibration amplitude.\n            <\/div>\n\n            <h3>Two-plane balancing procedure<\/h3>\n            <ol>\n                <li><strong>First run (without weights)<\/strong> - initial vibration is measured<\/li>\n                <li><strong>Second run<\/strong> - trial weight is installed in the first plane<\/li>\n                <li><strong>Third run<\/strong> - trial weight is removed from the first plane and installed in the second plane<\/li>\n            <\/ol>\n\n            <div class=\"important\">\n                <strong>Critical!<\/strong>\n                <ul>\n                    <li>Correction weights must be installed at the same radius as trial weights!<\/li>\n                    <li>After each trial run, trial weights are removed!<\/li>\n                    <li>Correction weight is installed at the calculated angle from the trial weight position in the direction of rotor rotation!<\/li>\n                <\/ul>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        const form = document.getElementById('calculatorForm');\n        const resultDiv = document.getElementById('result');\n        const resultValue = document.getElementById('resultValue');\n        const resultFormula = document.getElementById('resultFormula');\n        const supportSlider = document.getElementById('supportType');\n        const supportValue = document.getElementById('supportValue');\n        const vibrationInput = document.getElementById('vibrationLevel');\n        const vibrationStatus = document.getElementById('vibrationStatus');\n        const vibrationCoeff = document.getElementById('vibrationCoeff');\n\n        \/\/ Update slider value\n        supportSlider.addEventListener('input', function() {\n            supportValue.textContent = parseFloat(this.value).toFixed(1);\n        });\n\n        \/\/ Calculate vibration coefficient\n        function calculateVibrationCoeff(vibLevel) {\n            if (vibLevel <= 5) return 0.5;\n            if (vibLevel <= 10) return 1.0;\n            if (vibLevel <= 20) return 1.5;\n            if (vibLevel <= 40) return 2.0;\n            return 2.5;\n        }\n\n        \/\/ Determine vibration status\n        function getVibrationStatus(vibLevel) {\n            if (vibLevel <= 5) return { text: 'Low', class: 'level-low' };\n            if (vibLevel <= 10) return { text: 'Normal', class: 'level-normal' };\n            if (vibLevel <= 20) return { text: 'Elevated', class: 'level-elevated' };\n            if (vibLevel <= 40) return { text: 'High', class: 'level-high' };\n            return { text: 'Very High', class: 'level-high' };\n        }\n\n        \/\/ Update vibration status\n        vibrationInput.addEventListener('input', function() {\n            const value = parseFloat(this.value);\n            if (!isNaN(value) && value > 0) {\n                const coeff = calculateVibrationCoeff(value);\n                const status = getVibrationStatus(value);\n                \n                vibrationCoeff.textContent = coeff.toFixed(1);\n                vibrationStatus.textContent = status.text;\n                vibrationStatus.className = 'vibration-level ' + status.class;\n            } else {\n                vibrationStatus.textContent = 'Enter value';\n                vibrationStatus.className = 'vibration-level';\n                vibrationCoeff.textContent = '1.0';\n            }\n        });\n\n        form.addEventListener('submit', function(e) {\n            e.preventDefault();\n            calculate();\n        });\n\n        form.addEventListener('reset', function() {\n            resultDiv.classList.remove('show');\n            vibrationStatus.textContent = 'Enter value';\n            vibrationStatus.className = 'vibration-level';\n            vibrationCoeff.textContent = '1.0';\n            supportValue.textContent = '1.0';\n        });\n\n        function calculate() {\n            \/\/ Get form values\n            const Mp = parseFloat(document.getElementById('rotorMass').value);\n            const Rn = parseFloat(document.getElementById('radius').value);\n            const N = parseFloat(document.getElementById('speed').value);\n            const massUnit = document.getElementById('massUnit').value;\n            const radiusUnit = document.getElementById('radiusUnit').value;\n            const Ksupport = parseFloat(supportSlider.value);\n            const vibLevel = parseFloat(vibrationInput.value);\n\n            \/\/ Validation\n            if (isNaN(Mp) || isNaN(Rn) || isNaN(N) || Mp <= 0 || Rn <= 0 || N <= 0) {\n                alert('Please enter valid positive values');\n                return;\n            }\n\n            if (isNaN(vibLevel) || vibLevel <= 0) {\n                alert('Please enter vibration level in mm\/sec');\n                return;\n            }\n\n            \/\/ Unit conversion\n            let MpInGrams = massUnit === 'kg' ? Mp * 1000 : Mp;\n            let RnInCm = radiusUnit === 'mm' ? Rn \/ 10 : Rn;\n\n            \/\/ Get vibration coefficient\n            const Kvibration = calculateVibrationCoeff(vibLevel);\n\n            \/\/ Calculate trial weight mass\n            const Mn = (MpInGrams * Ksupport * Kvibration) \/ (RnInCm * Math.pow(N \/ 100, 2));\n\n            \/\/ Display result\n            resultValue.innerHTML = `M<sub>t<\/sub> = ${Mn.toFixed(3)} g`;\n            \n            \/\/ Show calculation formula with substituted values\n            const vibStatus = getVibrationStatus(vibLevel);\n            resultFormula.innerHTML = `\n                <strong>Input data:<\/strong><br>\n                Rotor mass: ${Mp} ${massUnit === 'kg' ? 'kg' : 'g'} = ${MpInGrams} g<br>\n                Installation radius: ${Rn} ${radiusUnit} = ${RnInCm} cm<br>\n                Speed: ${N} rpm<br>\n                Support stiffness: K<sub>supp<\/sub> = ${Ksupport.toFixed(1)}<br>\n                Vibration: ${vibLevel} mm\/sec (${vibStatus.text}) \u2192 K<sub>vib<\/sub> = ${Kvibration}<br><br>\n                <strong>Calculation:<\/strong><br>\n                M<sub>t<\/sub> = ${MpInGrams} \u00d7 ${Ksupport.toFixed(1)} \u00d7 ${Kvibration} \/ (${RnInCm} \u00d7 (${N}\/100)\u00b2)<br>\n                M<sub>t<\/sub> = ${(MpInGrams * Ksupport * Kvibration).toFixed(2)} \/ (${RnInCm} \u00d7 ${Math.pow(N\/100, 2).toFixed(4)})<br>\n                M<sub>t<\/sub> = ${(MpInGrams * Ksupport * Kvibration).toFixed(2)} \/ ${(RnInCm * Math.pow(N\/100, 2)).toFixed(4)}<br>\n                <strong>M<sub>t<\/sub> = ${Mn.toFixed(3)} g<\/strong>\n            `;\n\n            resultDiv.classList.add('show');\n            \n            \/\/ Scroll to result\n            resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n        }\n    <\/script>\n<\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Trial Weight Calculator Trial Weight Calculator for Rotor Balancing Calculation of trial weight mass for rotor balancing Mt = Mr \u00d7 Ksupp \u00d7 Kvib \/ (Rt \u00d7 (N\/100)\u00b2) where: Mt &#8211; trial weight mass, g Mr &#8211; rotor mass Ksupp &#8211; support stiffness coefficient (1-5) Kvib &#8211; vibration level coefficient [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":6447,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ai_generated_summary":"","footnotes":""},"categories":[54],"tags":[],"class_list":["post-6443","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-content"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/posts\/6443","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/comments?post=6443"}],"version-history":[{"count":1,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/posts\/6443\/revisions"}],"predecessor-version":[{"id":6646,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/posts\/6443\/revisions\/6646"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/media\/6447"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/media?parent=6443"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/categories?post=6443"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/tags?post=6443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}