{"id":21143,"date":"2026-01-23T21:46:32","date_gmt":"2026-01-23T21:46:32","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=glossary&#038;p=21143"},"modified":"2026-05-24T00:08:16","modified_gmt":"2026-05-24T00:08:16","slug":"how-to-split-permissible-residual-unbalance-between-two-correction-planes-iso-21940-11","status":"publish","type":"glossary","link":"https:\/\/vibromera.eu\/nb\/glossary\/how-to-split-permissible-residual-unbalance-between-two-correction-planes-iso-21940-11\/","title":{"rendered":"Hvordan dele tillatt restubalanse mellom to korreksjonsplan (ISO 21940-11)"},"content":{"rendered":"<div id=\"pl-21143\"  class=\"panel-layout\" ><div id=\"pg-21143-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-21143-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-21143-0-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"0\" ><div class=\"textwidget custom-html-widget\"><!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\n  <title>How to Split Permissible Residual Unbalance Between Two Correction Planes (ISO 21940-11)<\/title>\n  \n  <meta name=\"keywords\" content=\"ISO 21940-11, permissible residual unbalance, Uper, two-plane balancing, unbalance tolerance, split between planes, rotor center of mass, lever rule, 70 30 rule\" \/>\n\n  <!-- Math rendering (formulas) -->\n  <script>\n    window.MathJax = {\n      tex: { inlineMath: [['(',')'], ['$', '$']] },\n      svg: { fontCache: 'global' }\n    };\n  <\/script>\n  <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/mathjax@3\/es5\/tex-svg.js\"><\/script>\n<\/head>\n\n<body>\n  <header>\n    <h1 style=\"font-size:30px;\">How to Split Total Permissible Residual Unbalance Between Two Planes<\/h1>\n    <p style=\"font-size:16px;\">\n      For a two-support rotor, the total permissible residual unbalance (U_{mathrm{per}}) is distributed between two correction planes\n      based on rotor geometry and the rotor center of mass (CM) position. Below are the core rules from ISO 21940-11, plus the practical 70:30 limitation.\n    <\/p>\n  <\/header>\n\n  <main>\n    <section>\n      <h2 style=\"font-size:22px;\">Definitions<\/h2>\n      <ul style=\"font-size:16px;\">\n        <li>(U_{mathrm{per}}): total permissible residual unbalance for the rotor.<\/li>\n        <li>(U_{mathrm{per}A}), (U_{mathrm{per}B}): permissible residual unbalance allocated to planes A and B.<\/li>\n        <li>(L): distance between planes A and B.<\/li>\n        <li>(L_A): distance from CM to plane A.<\/li>\n        <li>(L_B): distance from CM to plane B.<\/li>\n        <li>Geometry relation: (L = L_A + L_B).<\/li>\n      <\/ul>\n    <\/section>\n\n    <hr \/>\n\n    <section>\n      <h2 style=\"font-size:22px;\">1) Symmetric Rotor<\/h2>\n      <p style=\"font-size:16px;\">\n        If the rotor is symmetric and the CM is approximately centered between the planes, split the allowance equally:\n      <\/p>\n      <p style=\"font-size:16px; text-align:center;\">\n        (U_{mathrm{per}A} = U_{mathrm{per}B} = dfrac{U_{mathrm{per}}}{2})\n      <\/p>\n      <p style=\"font-size:16px;\">\n        This method fits most standard cases where the rotor is close to symmetric.\n      <\/p>\n    <\/section>\n\n    <hr \/>\n\n    <section>\n      <h2 style=\"font-size:22px;\">2) Asymmetric Rotor (Lever Rule)<\/h2>\n      <p style=\"font-size:16px;\">\n        If the CM shifts toward one support, distribute the allowance using the lever rule,\n        proportional to the distance from the CM to the opposite plane:\n      <\/p>\n\n      <p style=\"font-size:16px; text-align:center;\">\n        (U_{mathrm{per}A} = U_{mathrm{per}} cdot dfrac{L_B}{L})\n      <\/p>\n      <p style=\"font-size:16px; text-align:center;\">\n        (U_{mathrm{per}B} = U_{mathrm{per}} cdot dfrac{L_A}{L})\n      <\/p>\n\n      <p style=\"font-size:16px;\">\n        Here, (L) is the distance between planes, and (L_A) and (L_B) are distances from the CM to planes A and B respectively.\n      <\/p>\n    <\/section>\n\n    <hr \/>\n\n    <section>\n      <h2 style=\"font-size:22px;\">Important Limitation: 70:30 Rule<\/h2>\n      <p style=\"font-size:16px;\">\n        To avoid extreme accuracy requirements in one plane, the standard recommends limiting the split to a 70:30 ratio.\n        Even if the CM is very close to one plane\/support:\n      <\/p>\n      <ul style=\"font-size:16px;\">\n        <li>The smaller share should not be less than (0.3 cdot U_{mathrm{per}}).<\/li>\n        <li>The larger share should not exceed (0.7 cdot U_{mathrm{per}}).<\/li>\n      <\/ul>\n      <p style=\"font-size:16px; text-align:center;\">\n        (0.3 cdot U_{mathrm{per}} le U_{mathrm{per}A},, U_{mathrm{per}B} le 0.7 cdot U_{mathrm{per}})\n      <\/p>\n    <\/section>\n\n    <hr \/>\n\n    <section>\n      <h2 style=\"font-size:22px;\">Calculator<\/h2>\n\n      <p style=\"font-size:16px;\">\n        Enter (U_{mathrm{per}}) and distances. The calculator supports symmetric split and lever-rule split.\n        It also applies the 70:30 limitation when enabled.\n      <\/p>\n\n      <form id=\"calcForm\" onsubmit=\"return false;\" style=\"font-size:16px;\">\n        <fieldset>\n          <legend style=\"font-size:18px;\">Mode<\/legend>\n\n          <label style=\"display:block; margin:6px 0;\">\n            <input type=\"radio\" name=\"mode\" value=\"symmetric\" checked \/>\n            Symmetric rotor: (U_{mathrm{per}A} = U_{mathrm{per}B} = U_{mathrm{per}}\/2)\n          <\/label>\n\n          <label style=\"display:block; margin:6px 0;\">\n            <input type=\"radio\" name=\"mode\" value=\"lever\" \/>\n            Asymmetric rotor (lever rule): use (L_A) and (L_B)\n          <\/label>\n        <\/fieldset>\n\n        <fieldset style=\"margin-top:14px;\">\n          <legend style=\"font-size:18px;\">Inputs<\/legend>\n\n          <div style=\"margin:8px 0;\">\n            <label for=\"uper\">Total permissible residual unbalance (U_{mathrm{per}}):<\/label><br \/>\n            <input id=\"uper\" type=\"number\" step=\"any\" min=\"0\" value=\"100\" style=\"width:240px;\" \/>\n          <\/div>\n\n          <div style=\"margin:8px 0;\">\n            <label for=\"la\">Distance (L_A) (CM to plane A):<\/label><br \/>\n            <input id=\"la\" type=\"number\" step=\"any\" min=\"0\" value=\"200\" style=\"width:240px;\" \/>\n          <\/div>\n\n          <div style=\"margin:8px 0;\">\n            <label for=\"lb\">Distance (L_B) (CM to plane B):<\/label><br \/>\n            <input id=\"lb\" type=\"number\" step=\"any\" min=\"0\" value=\"200\" style=\"width:240px;\" \/>\n          <\/div>\n\n          <label style=\"display:block; margin:10px 0;\">\n            <input id=\"limit7030\" type=\"checkbox\" checked \/>\n            Apply 70:30 limitation\n          <\/label>\n\n          <button type=\"button\" id=\"btnCalc\" style=\"font-size:16px; padding:6px 10px;\">Calculate<\/button>\n        <\/fieldset>\n      <\/form>\n\n      <div id=\"result\" style=\"margin-top:16px; font-size:16px;\">\n        <h3 style=\"font-size:18px;\">Results<\/h3>\n        <div id=\"resultText\">Click \u201cCalculate\u201d.<\/div>\n      <\/div>\n    <\/section>\n  <\/main>\n\n  <footer style=\"margin-top:24px;\">\n    <p style=\"font-size:14px;\">\n      Notes: Use consistent units for (L_A) and (L_B). The calculator keeps (U_{mathrm{per}A} + U_{mathrm{per}B} = U_{mathrm{per}}).\n    <\/p>\n  <\/footer>\n\n  <script>\n    function getMode() {\n      var radios = document.getElementsByName('mode');\n      for (var i = 0; i < radios.length; i++) {\n        if (radios[i].checked) return radios[i].value;\n      }\n      return 'symmetric';\n    }\n\n    function formatNumber(x) {\n      if (!isFinite(x)) return '\u2014';\n      var s = String(x);\n      if (s.indexOf('e') !== -1 || s.indexOf('E') !== -1) return x.toFixed(6);\n      var rounded = Math.round(x * 1000000) \/ 1000000;\n      return String(rounded);\n    }\n\n    function clamp7030(uper, a, b) {\n      var minShare = 0.3 * uper;\n      var maxShare = 0.7 * uper;\n\n      if (a < minShare) {\n        a = minShare;\n        b = uper - a;\n      } else if (a > maxShare) {\n        a = maxShare;\n        b = uper - a;\n      }\n\n      if (b < minShare) {\n        b = minShare;\n        a = uper - b;\n      } else if (b > maxShare) {\n        b = maxShare;\n        a = uper - b;\n      }\n\n      return { a: a, b: b };\n    }\n\n    function calculate() {\n      var mode = getMode();\n      var uper = parseFloat(document.getElementById('uper').value);\n      var la = parseFloat(document.getElementById('la').value);\n      var lb = parseFloat(document.getElementById('lb').value);\n      var applyLimit = document.getElementById('limit7030').checked;\n\n      var resultText = document.getElementById('resultText');\n\n      if (!isFinite(uper) || uper <= 0) {\n        resultText.textContent = 'Enter a positive value for U_per.';\n        return;\n      }\n\n      var a = 0;\n      var b = 0;\n      var l = 0;\n\n      if (mode === 'symmetric') {\n        a = uper \/ 2;\n        b = uper \/ 2;\n        l = la + lb;\n      } else {\n        if (!isFinite(la) || !isFinite(lb) || la <= 0 || lb <= 0) {\n          resultText.textContent = 'Enter positive values for L_A and L_B.';\n          return;\n        }\n        l = la + lb;\n        if (l <= 0) {\n          resultText.textContent = 'L must be positive (L = L_A + L_B).';\n          return;\n        }\n\n        a = uper * (lb \/ l);\n        b = uper * (la \/ l);\n\n        if (applyLimit) {\n          var clamped = clamp7030(uper, a, b);\n          a = clamped.a;\n          b = clamped.b;\n        }\n      }\n\n      var minShareText = formatNumber(0.3 * uper);\n      var maxShareText = formatNumber(0.7 * uper);\n\n      var html = '';\n      html += '<p><strong>Inputs<\/strong><\/p>';\n      html += '<ul>';\n      html += '<li>U<sub>per<\/sub> = ' + formatNumber(uper) + '<\/li>';\n      html += '<li>L<sub>A<\/sub> = ' + (isFinite(la) ? formatNumber(la) : '\u2014') + '<\/li>';\n      html += '<li>L<sub>B<\/sub> = ' + (isFinite(lb) ? formatNumber(lb) : '\u2014') + '<\/li>';\n      html += '<li>L = L<sub>A<\/sub> + L<sub>B<\/sub> = ' + formatNumber(l) + '<\/li>';\n      html += '<li>70:30 limitation = ' + (applyLimit ? 'ON' : 'OFF') + '<\/li>';\n      html += '<\/ul>';\n\n      html += '<p><strong>Allocated permissible residual unbalance<\/strong><\/p>';\n      html += '<ul>';\n      html += '<li>U<sub>perA<\/sub> = ' + formatNumber(a) + '<\/li>';\n      html += '<li>U<sub>perB<\/sub> = ' + formatNumber(b) + '<\/li>';\n      html += '<li>Check: U<sub>perA<\/sub> + U<sub>perB<\/sub> = ' + formatNumber(a + b) + '<\/li>';\n      html += '<\/ul>';\n\n      if (applyLimit) {\n        html += '<p><strong>70:30 bounds<\/strong><\/p>';\n        html += '<ul>';\n        html += '<li>Minimum share = 0.3 \u00b7 U<sub>per<\/sub> = ' + minShareText + '<\/li>';\n        html += '<li>Maximum share = 0.7 \u00b7 U<sub>per<\/sub> = ' + maxShareText + '<\/li>';\n        html += '<\/ul>';\n      }\n\n      resultText.innerHTML = html;\n    }\n\n    document.getElementById('btnCalc').addEventListener('click', calculate);\n\n    var inputs = ['uper', 'la', 'lb', 'limit7030'];\n    for (var i = 0; i < inputs.length; i++) {\n      document.getElementById(inputs[i]).addEventListener('input', function() {});\n    }\n  <\/script>\n<\/body>\n<\/html>\n<\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>How to Split Permissible Residual Unbalance Between Two Correction Planes (ISO 21940-11) How to Split Total Permissible Residual Unbalance Between Two Planes For a two-support rotor, the total permissible residual unbalance (U_{mathrm{per}}) is distributed between two correction planes based on rotor geometry and the rotor center of mass (CM) position. [&hellip;]<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[4,54],"tags":[],"class_list":["post-21143","glossary","type-glossary","status-publish","hentry","category-example","category-content"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/glossary\/21143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/glossary"}],"about":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/types\/glossary"}],"version-history":[{"count":5,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/glossary\/21143\/revisions"}],"predecessor-version":[{"id":101502,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/glossary\/21143\/revisions\/101502"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/media?parent=21143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/categories?post=21143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/tags?post=21143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}