{"id":100204,"date":"2026-02-15T20:27:17","date_gmt":"2026-02-15T20:27:17","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100204"},"modified":"2026-07-11T18:31:37","modified_gmt":"2026-07-11T18:31:37","slug":"residual-unbalance-iso1940","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/ar\/calculators\/residual-unbalance-iso1940\/","title":{"rendered":"\u062d\u0627\u0633\u0628\u0629 \u0639\u062f\u0645 \u0627\u0644\u062a\u0648\u0627\u0632\u0646 \u0627\u0644\u0645\u062a\u0628\u0642\u064a | ISO 21940-11 | \u0641\u064a\u0628\u0631\u0648\u0645\u064a\u0631\u0627"},"content":{"rendered":"\r\n<script type=\"application\/ld+json\">\r\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Permissible Residual Unbalance Calculator\",\"alternateName\":[\"Balance Grade Calculator\",\"ISO 1940 Calculator\",\"Unbalance Tolerance Calculator\"],\"description\":\"Free online engineering calculator for permissible residual unbalance per ISO 21940-11 (formerly ISO 1940). Supports all balance quality grades G0.4 to G4000.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/residual-unbalance-iso1940\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"datePublished\":\"2024-01-01\",\"dateModified\":\"2025-02-14\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"Balance grades G0.4 to G4000\",\"Metric and Imperial units\",\"Per-plane unbalance distribution\",\"Eccentricity calculation\",\"Auto-calculation on input change\",\"URL parameter sharing\",\"Calculation history\"],\"keywords\":\"residual unbalance, ISO 21940, ISO 1940, balance grade, rotor balancing, eccentricity\"}\r\n<\/script>\r\n\r\n<script type=\"application\/ld+json\">\r\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\r\n{\"@type\":\"Question\",\"name\":\"What is permissible residual unbalance?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Permissible residual unbalance is the maximum amount of unbalance allowed to remain in a rotor after balancing, defined by ISO 21940-11 (formerly ISO 1940). It depends on the rotor mass, maximum service speed, and the required balance quality grade G.\"}},\r\n{\"@type\":\"Question\",\"name\":\"How do I choose the right balance grade G?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use the grade specified by the rotor drawing, manufacturer, applicable product standard, or engineering agreement. Example application lists are informative and must not be used as a universal automatic grade selector.\"}},\r\n{\"@type\":\"Question\",\"name\":\"What is the difference between ISO 1940 and ISO 21940-11?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"ISO 21940-11 replaced the older ISO 1940-1 standard. The technical content is essentially the same \u2014 the formula and balance grades remain unchanged. The new number reflects the reorganization of the ISO 21940 series.\"}},\r\n{\"@type\":\"Question\",\"name\":\"How do I split unbalance between two correction planes?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"For rotors balanced in two planes, the total permissible unbalance is distributed between the planes based on their distance from the center of gravity. A common simplification is to allocate 50% to each plane when the CG is approximately centered.\"}},\r\n{\"@type\":\"Question\",\"name\":\"What units is unbalance measured in?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Unbalance is typically measured in g\u00b7mm (gram-millimeters) or oz\u00b7in (ounce-inches). The SI unit is kg\u00b7m, but g\u00b7mm is more practical for most industrial rotors. 1 oz\u00b7in \u2248 720 g\u00b7mm.\"}}\r\n]}\r\n<\/script>\r\n\r\n<script type=\"application\/ld+json\">\r\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[\r\n{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},\r\n{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},\r\n{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Residual Unbalance Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/residual-unbalance-iso1940\/\"}\r\n]}\r\n<\/script>\r\n\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&#038;family=JetBrains+Mono:wght@400;500;600&#038;family=Fraunces:opsz,wght@9..144,700;9..144,800&#038;display=swap\" rel=\"stylesheet\">\r\n\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.css\">\r\n\r\n<style>\r\n:root {\r\n    --vc-bg: #f4f1ec;\r\n    --vc-surface: #ffffff;\r\n    --vc-surface-alt: #f8f6f2;\r\n    --vc-ink: #1a1a1a;\r\n    --vc-ink-secondary: #5a5650;\r\n    --vc-ink-muted: #8a857e;\r\n    --vc-accent: #c85a2a;\r\n    --vc-accent-hover: #b04d22;\r\n    --vc-accent-light: #fdf0ea;\r\n    --vc-blue: #2a5c8c;\r\n    --vc-blue-light: #eaf1f8;\r\n    --vc-green: #2a7a4b;\r\n    --vc-green-light: #eaf8ef;\r\n    --vc-yellow: #a67c00;\r\n    --vc-yellow-light: #fef9e8;\r\n    --vc-red: #b91c1c;\r\n    --vc-red-light: #fef2f2;\r\n    --vc-border: #d9d4cc;\r\n    --vc-border-light: #e8e4dd;\r\n    --vc-shadow: 0 1px 3px rgba(26,26,26,0.06), 0 4px 12px rgba(26,26,26,0.04);\r\n    --vc-shadow-lg: 0 4px 12px rgba(26,26,26,0.08), 0 16px 40px rgba(26,26,26,0.06);\r\n    --vc-radius: 8px;\r\n    --vc-radius-lg: 12px;\r\n    --vc-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n    --vc-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace;\r\n    --vc-display: 'Fraunces', Georgia, serif;\r\n}\r\n\r\n.vc-calculator {\r\n    font-family: var(--vc-font);\r\n    font-size: 15px;\r\n    line-height: 1.65;\r\n    color: var(--vc-ink);\r\n    max-width: 960px;\r\n    margin: 0 auto;\r\n    padding: 20px 16px 40px;\r\n    -webkit-font-smoothing: antialiased;\r\n}\r\n.vc-calculator *, .vc-calculator *::before, .vc-calculator *::after { box-sizing: border-box; }\r\n\r\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\r\n.vc-header { text-align: center; padding: 48px 24px 40px; position: relative; }\r\n.vc-header::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:80px; height:3px; background:var(--vc-accent); border-radius:2px; }\r\n.vc-header-eyebrow { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:var(--vc-accent); margin:0 0 12px; }\r\n.vc-header-title { font-family:var(--vc-display); font-size:clamp(24px,4vw,36px); font-weight:800; line-height:1.15; color:var(--vc-ink); margin:0 0 16px; letter-spacing:-0.02em; }\r\n.vc-header-subtitle { font-size:15px; color:var(--vc-ink-secondary); margin:0 auto 20px; max-width:600px; }\r\n.vc-badges { display:inline-flex; gap:8px; flex-wrap:wrap; justify-content:center; }\r\n.vc-badge { font-family:var(--vc-mono); font-size:11px; font-weight:500; padding:4px 10px; border-radius:4px; background:var(--vc-surface); border:1px solid var(--vc-border); color:var(--vc-ink-secondary); }\r\n\r\n\/* \u2500\u2500 CARD \u2500\u2500 *\/\r\n.vc-card { background:var(--vc-surface); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); box-shadow:var(--vc-shadow); overflow:hidden; margin-top:32px; }\r\n\r\n\/* \u2500\u2500 UNIT TOGGLE \u2500\u2500 *\/\r\n.vc-unit-bar { display:flex; border-bottom:1px solid var(--vc-border-light); background:var(--vc-surface-alt); }\r\n.vc-unit-btn { flex:1; padding:12px; border:none; background:transparent; font-family:var(--vc-font); font-size:13px; font-weight:600; color:var(--vc-ink-muted); cursor:pointer; transition:all 0.2s; position:relative; }\r\n.vc-unit-btn:hover { color:var(--vc-ink-secondary); background:rgba(200,90,42,0.04); }\r\n.vc-unit-btn.vc-active { color:var(--vc-accent); background:var(--vc-surface); }\r\n.vc-unit-btn.vc-active::after { content:''; position:absolute; bottom:-1px; left:16px; right:16px; height:2px; background:var(--vc-accent); border-radius:1px 1px 0 0; }\r\n\r\n\/* \u2500\u2500 FORM \u2500\u2500 *\/\r\n.vc-form { padding:24px; }\r\n.vc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }\r\n@media(max-width:600px) { .vc-form-grid { grid-template-columns:1fr; } }\r\n.vc-field { display:flex; flex-direction:column; }\r\n.vc-field-full { grid-column: 1 \/ -1; }\r\n.vc-label { font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--vc-ink-secondary); margin-bottom:6px; }\r\n.vc-label-hint { font-weight:400; text-transform:none; letter-spacing:0; color:var(--vc-ink-muted); font-size:11px; }\r\n.vc-select, .vc-input { width:100%; padding:10px 12px; border:1.5px solid var(--vc-border); border-radius:6px; font-family:var(--vc-font); font-size:14px; color:var(--vc-ink); background:var(--vc-surface); transition:border-color 0.15s, box-shadow 0.15s; }\r\n.vc-select { padding-right:36px; appearance:none; -webkit-appearance:none; cursor:pointer; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='none' stroke='%235a5650' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:right 10px center; }\r\n.vc-select:focus, .vc-input:focus { outline:none; border-color:var(--vc-accent); box-shadow:0 0 0 3px rgba(200,90,42,0.12); }\r\n.vc-select:hover, .vc-input:hover { border-color:var(--vc-ink-muted); }\r\n\r\n\/* \u2500\u2500 PRESETS \u2500\u2500 *\/\r\n.vc-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid var(--vc-border-light); }\r\n.vc-presets-label { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); width:100%; margin-bottom:2px; }\r\n.vc-preset-btn { padding:5px 12px; font-family:var(--vc-font); font-size:12px; font-weight:500; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\r\n.vc-preset-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\r\n\r\n\/* \u2500\u2500 RESULTS \u2500\u2500 *\/\r\n.vc-results { border-top:1px solid var(--vc-border-light); background:var(--vc-surface-alt); padding:0; max-height:0; overflow:hidden; transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1), padding 0.3s; }\r\n.vc-results.vc-visible { max-height:2000px; padding:24px; }\r\n.vc-results-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }\r\n.vc-results-title { font-family:var(--vc-display); font-size:20px; font-weight:700; color:var(--vc-ink); margin:0; }\r\n.vc-copy-btn { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface); font-family:var(--vc-font); font-size:12px; font-weight:500; color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\r\n.vc-copy-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); }\r\n.vc-copy-btn.vc-copied { background:var(--vc-green-light); border-color:var(--vc-green); color:var(--vc-green); }\r\n\r\n.vc-result-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }\r\n@media(max-width:500px) { .vc-result-grid { grid-template-columns:1fr; } }\r\n.vc-rcard { background:var(--vc-surface); border:1px solid var(--vc-border-light); border-radius:var(--vc-radius); padding:16px; transition:transform 0.2s; }\r\n.vc-rcard:hover { transform:translateY(-1px); }\r\n.vc-rcard-primary { border-color:var(--vc-accent); border-width:2px; background:linear-gradient(135deg, #fdf6f2 0%, var(--vc-surface) 100%); grid-column:1 \/ -1; }\r\n.vc-rcard-label { font-family:var(--vc-mono); font-size:10px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); margin-bottom:4px; }\r\n.vc-rcard-value { font-family:var(--vc-mono); font-size:22px; font-weight:600; color:var(--vc-ink); line-height:1.2; }\r\n.vc-rcard-primary .vc-rcard-value { font-size:30px; color:var(--vc-accent); }\r\n.vc-rcard-unit { font-size:14px; font-weight:400; color:var(--vc-ink-secondary); }\r\n\r\n\/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\r\n.vc-section { margin-top:24px; border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); background:var(--vc-surface); box-shadow:var(--vc-shadow); overflow:hidden; }\r\n.vc-section-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border:none; background:transparent; cursor:pointer; font-family:var(--vc-font); text-align:left; transition:background 0.15s; }\r\n.vc-section-toggle:hover { background:var(--vc-surface-alt); }\r\n.vc-section-toggle-text { display:flex; align-items:center; gap:10px; }\r\n.vc-section-icon { font-size:20px; line-height:1; }\r\n.vc-section-title { font-family:var(--vc-display); font-size:18px; font-weight:700; color:var(--vc-ink); margin:0; }\r\n.vc-section-chevron { width:20px; height:20px; color:var(--vc-ink-muted); transition:transform 0.3s; flex-shrink:0; }\r\n.vc-section.vc-open .vc-section-chevron { transform:rotate(180deg); }\r\n.vc-section-body { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1); }\r\n.vc-section.vc-open .vc-section-body { max-height:20000px; }\r\n.vc-section-inner { padding:0 24px 24px; border-top:1px solid var(--vc-border-light); }\r\n\r\n\/* \u2500\u2500 THEORY \u2500\u2500 *\/\r\n.vc-theory h3 { font-family:var(--vc-display); font-size:17px; font-weight:700; color:var(--vc-ink); margin:28px 0 10px; }\r\n.vc-theory h3:first-child { margin-top:20px; }\r\n.vc-theory p { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 10px; }\r\n.vc-theory ul, .vc-theory ol { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 12px 18px; padding:0; }\r\n.vc-theory li { margin-bottom:5px; }\r\n.vc-formula-box { background:var(--vc-surface-alt); border:2px solid var(--vc-border); border-radius:6px; padding:14px 20px; font-family:var(--vc-mono); font-size:16px; font-weight:500; text-align:center; margin:14px 0; color:var(--vc-ink); overflow-x:auto; }\r\n.vc-info-box { background:var(--vc-blue-light); border-left:3px solid var(--vc-blue); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\r\n.vc-info-box p { margin:0; font-size:14px; color:var(--vc-ink-secondary); }\r\n.vc-warning-box { background:var(--vc-yellow-light); border-left:3px solid var(--vc-yellow); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\r\n.vc-example-box { background:var(--vc-surface-alt); border:1px solid var(--vc-border-light); border-radius:6px; padding:16px; margin:14px 0; }\r\n.vc-example-title { font-family:var(--vc-mono); font-size:13px; font-weight:600; color:var(--vc-accent); margin-bottom:8px; }\r\n.vc-table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }\r\n.vc-table th, .vc-table td { padding:10px 12px; border:1px solid var(--vc-border-light); text-align:left; }\r\n.vc-table th { background:var(--vc-surface-alt); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--vc-ink-secondary); }\r\n.vc-table tr:nth-child(even) { background:var(--vc-surface-alt); }\r\n@media(max-width:600px) { .vc-table { font-size:12px; } .vc-table th, .vc-table td { padding:8px; } }\r\n\r\n\/* \u2500\u2500 FAQ \u2500\u2500 *\/\r\n.vc-faq-list { display:flex; flex-direction:column; gap:8px; margin-top:20px; }\r\n.vc-faq-item { border:1px solid var(--vc-border-light); border-radius:6px; overflow:hidden; }\r\n.vc-faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border:none; background:var(--vc-surface-alt); cursor:pointer; font-family:var(--vc-font); font-size:15px; font-weight:600; color:var(--vc-ink); text-align:left; transition:background 0.15s; }\r\n.vc-faq-q:hover { background:#ede9e3; }\r\n.vc-faq-chevron { width:16px; height:16px; color:var(--vc-ink-muted); flex-shrink:0; transition:transform 0.25s; }\r\n.vc-faq-item.vc-open .vc-faq-chevron { transform:rotate(180deg); }\r\n.vc-faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s; }\r\n.vc-faq-item.vc-open .vc-faq-a { max-height:1200px; }\r\n.vc-faq-a-inner { padding:14px 16px; border-top:1px solid var(--vc-border-light); font-size:14px; color:var(--vc-ink-secondary); }\r\n.vc-faq-a-inner p { margin:0 0 8px; }\r\n.vc-faq-a-inner p:last-child { margin-bottom:0; }\r\n.vc-faq-a-inner ul { margin:4px 0 8px 16px; padding:0; }\r\n.vc-faq-a-inner li { margin-bottom:3px; }\r\n\r\n\/* \u2500\u2500 RELATED \u2500\u2500 *\/\r\n.vc-related { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }\r\n.vc-related-link { display:inline-block; padding:8px 16px; font-family:var(--vc-font); font-size:13px; font-weight:600; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); border:1px solid var(--vc-border); border-radius:var(--vc-radius); text-decoration:none; transition:all 0.15s; }\r\n.vc-related-link:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\r\n\r\n\/* \u2500\u2500 PROMO \u2500\u2500 *\/\r\n.vc-promo { margin-top:24px; padding:20px; background:linear-gradient(135deg, var(--vc-accent-light), var(--vc-surface)); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); display:flex; align-items:center; gap:16px; }\r\n.vc-promo-text { flex:1; font-size:14px; color:var(--vc-ink-secondary); }\r\n.vc-promo-text strong { color:var(--vc-ink); }\r\n.vc-promo-link { padding:8px 20px; font-size:13px; font-weight:700; color:#fff; background:var(--vc-accent); border-radius:var(--vc-radius); text-decoration:none; white-space:nowrap; transition:background 0.15s; }\r\n.vc-promo-link:hover { background:var(--vc-accent-hover); }\r\n\r\n\/* \u2500\u2500 FOOTER \u2500\u2500 *\/\r\n.vc-footer { text-align:center; padding:32px 16px; font-size:13px; color:var(--vc-ink-muted); }\r\n.vc-footer a { color:var(--vc-accent); text-decoration:none; }\r\n.vc-footer a:hover { text-decoration:underline; }\r\n.vc-footer-links { margin-top:8px; font-size:12px; }\r\n.vc-footer-links a { margin:0 8px; }\r\n\r\n\/* \u2500\u2500 PRINT \u2500\u2500 *\/\r\n@media print {\r\n    .vc-section-body { max-height:none!important; }\r\n    .vc-faq-a { max-height:none!important; }\r\n    .vc-results { max-height:none!important; padding:24px!important; }\r\n    .vc-copy-btn, .vc-section-chevron, .vc-faq-chevron, .vc-presets, .vc-promo { display:none!important; }\r\n}\r\n<\/style>\r\n\r\n<div class=\"vc-calculator\" id=\"vc-residual-unbalance\">\r\n\r\n<!-- Header -->\r\n<header class=\"vc-header\">\r\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\r\n    <h1 class=\"vc-header-title\">Permissible Residual Unbalance Calculator<\/h1>\r\n    <p class=\"vc-header-subtitle\">Calculate permissible residual unbalance for a rigid rotor using ISO 21940-11. Enter rotor mass, maximum service speed, and the specified balance quality grade.<\/p>\r\n    <div class=\"vc-badges\">\r\n        <span class=\"vc-badge\">ISO 21940-11:2016 + Amd 1:2022<\/span>\r\n        <span class=\"vc-badge\">ISO 1940-1<\/span>\r\n        <span class=\"vc-badge\">G0.4 \u2013 G4000<\/span>\r\n    <\/div>\r\n<\/header>\r\n\r\n<!-- Calculator Card -->\r\n<div class=\"vc-card\">\r\n    <div class=\"vc-unit-bar\">\r\n        <button type=\"button\" class=\"vc-unit-btn vc-active\" data-system=\"metric\">Metric (kg, g\u00b7mm)<\/button>\r\n        <button type=\"button\" class=\"vc-unit-btn\" data-system=\"imperial\">Imperial (lb, oz\u00b7in)<\/button>\r\n    <\/div>\r\n\r\n    <form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\">\r\n        <div class=\"vc-form-grid\">\r\n            <div class=\"vc-field\">\r\n                <label class=\"vc-label\" for=\"vc-mass\">Rotor Mass <span class=\"vc-label-hint\" id=\"vc-mass-unit-hint\">(kg)<\/span><\/label>\r\n                <input class=\"vc-input\" type=\"text\" id=\"vc-mass\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"e.g. 120 or 120,0\" value=\"120\">\r\n            <\/div>\r\n            <div class=\"vc-field\">\r\n                <label class=\"vc-label\" for=\"vc-speed\">Maximum Service Speed <span class=\"vc-label-hint\">(RPM)<\/span><\/label>\r\n                <input class=\"vc-input\" type=\"text\" id=\"vc-speed\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"e.g. 1500 or 1500,0\" value=\"1500\">\r\n            <\/div>\r\n            <div class=\"vc-field\">\r\n                <label class=\"vc-label\" for=\"vc-grade\">Balance Grade G<\/label>\r\n                <select class=\"vc-select\" id=\"vc-grade\">\r\n                    <option value=\"4000\">G4000<\/option>\r\n                    <option value=\"1600\">G1600<\/option>\r\n                    <option value=\"630\">G630<\/option>\r\n                    <option value=\"250\">G250<\/option>\r\n                    <option value=\"100\">G100<\/option>\r\n                    <option value=\"40\">G40<\/option>\r\n                    <option value=\"16\">G16<\/option>\r\n                    <option value=\"6.3\" selected>G6.3<\/option>\r\n                    <option value=\"2.5\">G2.5<\/option>\r\n                    <option value=\"1\">G1.0<\/option>\r\n                    <option value=\"0.4\">G0.4<\/option>\r\n                <\/select>\r\n            <\/div>\r\n            <div class=\"vc-field\">\r\n                <label class=\"vc-label\" for=\"vc-planes\">Correction Planes<\/label>\r\n                <select class=\"vc-select\" id=\"vc-planes\">\r\n                    <option value=\"1\">1 plane<\/option>\r\n                    <option value=\"2\" selected>2 planes (assumed 50\/50 split)<\/option>\r\n                <\/select>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Presets -->\r\n        <div class=\"vc-presets\">\r\n            <div class=\"vc-presets-label\">Quick presets<\/div>\r\n            <button type=\"button\" class=\"vc-preset-btn\" data-m=\"50\" data-s=\"3000\" data-g=\"6.3\">Example: 50 kg \/ 3000 RPM \/ G6.3<\/button>\r\n            <button type=\"button\" class=\"vc-preset-btn\" data-m=\"120\" data-s=\"1500\" data-g=\"6.3\">Example: 120 kg \/ 1500 RPM \/ G6.3<\/button>\r\n            <button type=\"button\" class=\"vc-preset-btn\" data-m=\"25\" data-s=\"10000\" data-g=\"2.5\">Example: 25 kg \/ 10000 RPM \/ G2.5<\/button>\r\n            <button type=\"button\" class=\"vc-preset-btn\" data-m=\"500\" data-s=\"750\" data-g=\"6.3\">Example: 500 kg \/ 750 RPM \/ G6.3<\/button>\r\n        <\/div>\r\n    <\/form>\r\n\r\n    <!-- Results -->\r\n    <div class=\"vc-results\" id=\"vc-results\">\r\n        <div class=\"vc-results-head\">\r\n            <h2 class=\"vc-results-title\">Results<\/h2>\r\n            <button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">\r\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg>\r\n                Copy\r\n            <\/button>\r\n        <\/div>\r\n        <div class=\"vc-result-grid\">\r\n            <div class=\"vc-rcard vc-rcard-primary\">\r\n                <div class=\"vc-rcard-label\">Total Permissible Unbalance<\/div>\r\n                <div class=\"vc-rcard-value\" id=\"vc-r-ubal\">\u2014<\/div>\r\n            <\/div>\r\n            <div class=\"vc-rcard\">\r\n                <div class=\"vc-rcard-label\">Specific Unbalance (eccentricity)<\/div>\r\n                <div class=\"vc-rcard-value\" id=\"vc-r-ecc\">\u2014<\/div>\r\n            <\/div>\r\n            <div class=\"vc-rcard\">\r\n                <div class=\"vc-rcard-label\">Per-Plane Unbalance<\/div>\r\n                <div class=\"vc-rcard-value\" id=\"vc-r-plane\">\u2014<\/div>\r\n            <\/div>\r\n            <div class=\"vc-rcard\">\r\n                <div class=\"vc-rcard-label\">Angular Velocity \u03c9<\/div>\r\n                <div class=\"vc-rcard-value\" id=\"vc-r-omega\">\u2014<\/div>\r\n            <\/div>\r\n            <div class=\"vc-rcard\">\r\n                <div class=\"vc-rcard-label\">Balance Grade<\/div>\r\n                <div class=\"vc-rcard-value\" id=\"vc-r-grade\">\u2014<\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- Theory & Reference -->\r\n<div class=\"vc-section vc-open\" id=\"vc-sec-theory\">\r\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\">\r\n        <span class=\"vc-section-toggle-text\">\r\n            <span class=\"vc-section-icon\">\ud83d\udcd8<\/span>\r\n            <span class=\"vc-section-title\">Theory &amp; Formulas<\/span>\r\n        <\/span>\r\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\r\n    <\/button>\r\n    <div class=\"vc-section-body\">\r\n        <div class=\"vc-section-inner vc-theory\">\r\n            <h3>Permissible Specific Unbalance<\/h3>\r\n            <p>Per ISO 21940-11, the permissible specific unbalance (eccentricity) is:<\/p>\r\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\r\n            <ul>\r\n                <li><strong>G<\/strong> \u2014 balance quality grade (mm\/s)<\/li>\r\n                <li><strong>n<\/strong> \u2014 maximum service speed (RPM)<\/li>\r\n                <li><strong>\u03c9<\/strong> \u2014 angular velocity (rad\/s)<\/li>\r\n            <\/ul>\r\n            <h3>Total Permissible Residual Unbalance<\/h3>\r\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\r\n            <p>Where <strong>m<\/strong> is rotor mass in kg. Result U<sub>per<\/sub> is in g\u00b7mm when e<sub>per<\/sub> is in \u03bcm and m in kg.<\/p>\r\n\r\n            <h3>Balance Quality Grades<\/h3>\r\n            <table class=\"vc-table\">\r\n                <thead><tr><th>Grade<\/th><th>e\u00b7\u03c9 (mm\/s)<\/th><\/tr><\/thead>\r\n                <tbody>\r\n                    <tr><td>G0.4<\/td><td>0.4<\/td><\/tr>\r\n                    <tr><td>G1.0<\/td><td>1.0<\/td><\/tr>\r\n                    <tr><td>G2.5<\/td><td>2.5<\/td><\/tr>\r\n                    <tr><td>G6.3<\/td><td>6.3<\/td><\/tr>\r\n                    <tr><td>G16<\/td><td>16<\/td><\/tr>\r\n                    <tr><td>G40<\/td><td>40<\/td><\/tr>\r\n                    <tr><td>G100<\/td><td>100<\/td><\/tr>\r\n                    <tr><td>G250<\/td><td>250<\/td><\/tr>\r\n                    <tr><td>G630<\/td><td>630<\/td><\/tr>\r\n                    <tr><td>G1600<\/td><td>1600<\/td><\/tr>\r\n                    <tr><td>G4000<\/td><td>4000<\/td><\/tr>\r\n                <\/tbody>\r\n            <\/table>\r\n\r\n            <h3>Practical Example<\/h3>\r\n            <div class=\"vc-example-box\">\r\n                <div class=\"vc-example-title\">Example calculation \u2014 specified grade G6.3<\/div>\r\n                <p><strong>Given:<\/strong> Rotor mass = 120 kg, Speed = 1500 RPM, Grade = G6.3<\/p>\r\n                <p>\u03c9 = 2\u03c0 \u00d7 1500 \/ 60 = 157.08 rad\/s<\/p>\r\n                <p>e<sub>per<\/sub> = 6.3 \u00d7 1000 \/ 157.08 = <strong>40.11 \u03bcm<\/strong><\/p>\r\n                <p>U<sub>per<\/sub> = 40.11 \u00d7 120 = <strong>4,813 g\u00b7mm<\/strong><\/p>\r\n                <p>Per-plane (2 planes, 50\/50): 4,813 \/ 2 = <strong>2,407 g\u00b7mm<\/strong><\/p>\r\n            <\/div>\r\n\r\n            <div class=\"vc-warning-box\">\r\n                <p style=\"margin:0;font-size:14px;color:var(--vc-ink-secondary);\"><strong>\u26a0\ufe0f Note:<\/strong> For disc-like rotors, 50\/50 split between planes is acceptable when CG is centered. For long rotors, use the lever rule based on actual CG position relative to correction planes.<\/p>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- Related Calculators -->\r\n<div class=\"vc-section\" id=\"vc-sec-related\">\r\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\r\n        <span class=\"vc-section-toggle-text\">\r\n            <span class=\"vc-section-icon\">\ud83d\udd17<\/span>\r\n            <span class=\"vc-section-title\">Related Calculators<\/span>\r\n        <\/span>\r\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\r\n    <\/button>\r\n    <div class=\"vc-section-body\">\r\n        <div class=\"vc-section-inner\">\r\n            <div class=\"vc-related\">\r\n                <a class=\"vc-related-link\" href=\"\/calculators\/trial-weight-calculator\/\">Trial Weight Calculator<\/a>\r\n                <a class=\"vc-related-link\" href=\"\/calculators\/vibration-velocity\/\">Vibration Velocity (ISO 10816)<\/a>\r\n                <a class=\"vc-related-link\" href=\"\/calculators\/vibration-displacement\/\">Vibration Displacement<\/a>\r\n                <a class=\"vc-related-link\" href=\"\/calculators\/vibration-acceleration\/\">Vibration Acceleration<\/a>\r\n                <a class=\"vc-related-link\" href=\"\/calculators\/shaft-radial-runout\/\">Shaft Radial Runout<\/a>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- FAQ -->\r\n<div class=\"vc-section\" id=\"vc-sec-faq\">\r\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\r\n        <span class=\"vc-section-toggle-text\">\r\n            <span class=\"vc-section-icon\">\u2753<\/span>\r\n            <span class=\"vc-section-title\">Frequently Asked Questions<\/span>\r\n        <\/span>\r\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\r\n    <\/button>\r\n    <div class=\"vc-section-body\">\r\n        <div class=\"vc-section-inner\">\r\n            <div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- Promo -->\r\n<div class=\"vc-promo\">\r\n    <div class=\"vc-promo-text\">\r\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\r\n        Professional field balancing instruments and software for on-site measurements and ISO 21940-11 tolerance checks. Used in 50+ countries.\r\n    <\/div>\r\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\r\n<\/div>\r\n\r\n<!-- Footer -->\r\n<footer class=\"vc-footer\">\r\n    <p>\u00a9 2024\u20132025 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p>\r\n    <p style=\"font-size:12px;margin-top:4px;\">Formula basis: ISO 21940-11:2016 with Amendment 1:2022 (replacing ISO 1940-1). Grade and allocation must follow the rotor specification.<\/p>\r\n    <div class=\"vc-footer-links\">\r\n        <a href=\"\/calculators\/engineering-calculators\/\">All 298 Calculators<\/a>\r\n        <a href=\"https:\/\/vibromera.eu\/contacts\/\">Contact<\/a>\r\n    <\/div>\r\n<\/footer>\r\n\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.js\"><\/script>\r\n<script>\r\n(function() {\r\n    'use strict';\r\n\r\n    var SLUG = 'residual-unbalance-iso1940';\r\n    var unitSystem = 'metric';\r\n    var KG2LB = 2.2046226218487757;\r\n    var GMM2OZIN = 1 \/ (28.349523125 * 25.4);\r\n\r\n    function $(id) { return document.getElementById(id); }\r\n    function fmt(n, d) { if(isNaN(n)) return '\u2014'; var f=n.toFixed(d===undefined?2:d); return f.replace(\/(\\.\\d*?)0+$\/,'$1').replace(\/\\.$\/,''); }\r\n    function parseLocaleNumber(raw) {\r\n        var normalized = String(raw).trim().replace(\/\\s+\/g, '');\r\n        if (!\/^[+-]?(?:\\d+(?:[.,]\\d*)?|[.,]\\d+)$\/.test(normalized)) return NaN;\r\n        return Number(normalized.replace(',', '.'));\r\n    }\r\n\r\n    \/* \u2500\u2500 CALCULATION \u2500\u2500 *\/\r\n    function calculate() {\r\n        var massVal = parseLocaleNumber($('vc-mass').value);\r\n        var speed = parseLocaleNumber($('vc-speed').value);\r\n        var grade = parseFloat($('vc-grade').value);\r\n        var planes = parseInt($('vc-planes').value);\r\n\r\n        if (!isFinite(massVal) || massVal <= 0 || !isFinite(speed) || speed <= 0 || !isFinite(grade) || grade <= 0 || (planes !== 1 && planes !== 2)) {\r\n            $('vc-results').classList.remove('vc-visible');\r\n            return;\r\n        }\r\n\r\n        var massKg = unitSystem === 'imperial' ? massVal \/ KG2LB : massVal;\r\n        var omega = 2 * Math.PI * speed \/ 60;\r\n        var eper = grade * 1000 \/ omega; \/\/ \u03bcm\r\n        var uper = eper * massKg; \/\/ g\u00b7mm\r\n        var uperPlane = uper \/ planes;\r\n\r\n        \/\/ Display\r\n        if (unitSystem === 'imperial') {\r\n            var uOzIn = uper * GMM2OZIN;\r\n            var uPlaneOzIn = uperPlane * GMM2OZIN;\r\n            $('vc-r-ubal').innerHTML = fmt(uOzIn, uOzIn < 1 ? 3 : 2) + ' <span class=\"vc-rcard-unit\">oz\u00b7in<\/span>';\r\n            $('vc-r-plane').innerHTML = fmt(uPlaneOzIn, uPlaneOzIn < 1 ? 3 : 2) + ' <span class=\"vc-rcard-unit\">oz\u00b7in<\/span> <span class=\"vc-rcard-unit\">(' + planes + ' plane' + (planes > 1 ? 's, assumed 50\/50' : '') + ')<\/span>';\r\n        } else {\r\n            $('vc-r-ubal').innerHTML = (uper >= 1000 ? fmt(uper, 0) : fmt(uper, 1)) + ' <span class=\"vc-rcard-unit\">g\u00b7mm<\/span>';\r\n            $('vc-r-plane').innerHTML = (uperPlane >= 1000 ? fmt(uperPlane, 0) : fmt(uperPlane, 1)) + ' <span class=\"vc-rcard-unit\">g\u00b7mm<\/span> <span class=\"vc-rcard-unit\">(' + planes + ' plane' + (planes > 1 ? 's, assumed 50\/50' : '') + ')<\/span>';\r\n        }\r\n\r\n        $('vc-r-ecc').innerHTML = fmt(eper, 2) + ' <span class=\"vc-rcard-unit\">\u03bcm<\/span>';\r\n        $('vc-r-omega').innerHTML = fmt(omega, 2) + ' <span class=\"vc-rcard-unit\">rad\/s<\/span>';\r\n        $('vc-r-grade').innerHTML = 'G' + grade;\r\n\r\n        $('vc-results').classList.add('vc-visible');\r\n\r\n        \/\/ URL params\r\n        var u = new URL(window.location);\r\n        u.searchParams.set('mass', $('vc-mass').value);\r\n        u.searchParams.set('speed', speed);\r\n        u.searchParams.set('grade', grade);\r\n        u.searchParams.set('planes', planes);\r\n        u.searchParams.set('system', unitSystem);\r\n        history.replaceState(null, '', u.toString());\r\n\r\n        \/\/ History\r\n        saveHistory({\r\n            mass: $('vc-mass').value,\r\n            speed: speed,\r\n            grade: grade,\r\n            planes: planes,\r\n            _summary: 'm=' + $('vc-mass').value + (unitSystem === 'imperial' ? ' lb' : ' kg') + ', n=' + speed + ' RPM, G' + grade\r\n        });\r\n    }\r\n\r\n    \/* \u2500\u2500 UNIT TOGGLE \u2500\u2500 *\/\r\n    var unitBtns = document.querySelectorAll('.vc-unit-btn');\r\n    unitBtns.forEach(function(btn) {\r\n        btn.addEventListener('click', function() {\r\n            var nextSystem = this.getAttribute('data-system');\r\n            if (nextSystem !== unitSystem) {\r\n                var currentMass = parseLocaleNumber($('vc-mass').value);\r\n                if (isFinite(currentMass) && currentMass > 0) {\r\n                    var convertedMass = nextSystem === 'imperial' ? currentMass * KG2LB : currentMass \/ KG2LB;\r\n                    $('vc-mass').value = fmt(convertedMass, 4);\r\n                }\r\n                unitSystem = nextSystem;\r\n            }\r\n            unitBtns.forEach(function(b) { b.classList.toggle('vc-active', b.getAttribute('data-system') === unitSystem); });\r\n            $('vc-mass-unit-hint').textContent = unitSystem === 'imperial' ? '(lb)' : '(kg)';\r\n            try { localStorage.setItem('vc_units_' + SLUG, unitSystem); } catch(e) {}\r\n            calculate();\r\n        });\r\n    });\r\n\r\n    \/* \u2500\u2500 PRESETS \u2500\u2500 *\/\r\n    document.querySelectorAll('.vc-preset-btn').forEach(function(btn) {\r\n        btn.addEventListener('click', function(e) {\r\n            e.preventDefault();\r\n            var m = parseFloat(this.getAttribute('data-m'));\r\n            $('vc-mass').value = unitSystem === 'imperial' ? fmt(m * KG2LB, 1) : m;\r\n            $('vc-speed').value = this.getAttribute('data-s');\r\n            $('vc-grade').value = this.getAttribute('data-g');\r\n            calculate();\r\n        });\r\n    });\r\n\r\n    \/* \u2500\u2500 AUTO-CALCULATE \u2500\u2500 *\/\r\n    $('vc-form').addEventListener('input', calculate);\r\n    $('vc-form').addEventListener('change', calculate);\r\n\r\n    \/* \u2500\u2500 COPY \u2500\u2500 *\/\r\n    $('vc-copy-btn').addEventListener('click', function() {\r\n        var torqueEl = $('vc-r-ubal');\r\n        var text = 'Residual Unbalance Calculation\\n' +\r\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\r\n            'Mass: ' + $('vc-mass').value + (unitSystem === 'imperial' ? ' lb' : ' kg') + '\\n' +\r\n            'Speed: ' + $('vc-speed').value + ' RPM\\n' +\r\n            'Grade: G' + $('vc-grade').value + '\\n' +\r\n            'Total Unbalance: ' + torqueEl.textContent + '\\n' +\r\n            'Eccentricity: ' + $('vc-r-ecc').textContent + '\\n' +\r\n            'Per-Plane: ' + $('vc-r-plane').textContent + '\\n' +\r\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\r\n            'vibromera.eu\/calculators\/residual-unbalance-iso1940\/';\r\n\r\n        if (navigator.clipboard) {\r\n            navigator.clipboard.writeText(text).then(function() {\r\n                var btn = $('vc-copy-btn');\r\n                btn.classList.add('vc-copied');\r\n                btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg> Copied!';\r\n                setTimeout(function() {\r\n                    btn.classList.remove('vc-copied');\r\n                    btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg> Copy';\r\n                }, 2000);\r\n            });\r\n        }\r\n    });\r\n\r\n    \/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\r\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\r\n        btn.addEventListener('click', function() {\r\n            var section = this.closest('.vc-section');\r\n            var isOpen = section.classList.contains('vc-open');\r\n            section.classList.toggle('vc-open');\r\n            this.setAttribute('aria-expanded', !isOpen);\r\n        });\r\n    });\r\n\r\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\r\n    var faqData = [\r\n        { q: 'What is permissible residual unbalance?', a: '<p>Permissible residual unbalance is the maximum amount of unbalance allowed to remain in a rotor after balancing, defined by ISO 21940-11 (formerly ISO 1940). It depends on the rotor mass, operating speed, and the required balance quality grade (G).<\/p><p>Exceeding this limit leads to increased vibration, bearing wear, and reduced equipment life.<\/p>' },\r\n        { q: 'How do I choose the right balance grade G?', a: '<p>Select the balance grade from the rotor drawing, manufacturer specification, product standard, or engineering agreement.<\/p><p>G6.3 is common for some fans, pumps and motors, but it is not a universal default. Do not choose a grade solely from this example list when the required grade is unknown.<\/p>' },\r\n        { q: 'What is the difference between ISO 1940 and ISO 21940-11?', a: '<p>ISO 21940-11 replaced the older ISO 1940-1 standard. The technical content is essentially the same \u2014 the permissible specific unbalance formula and balance grades remain unchanged.<\/p><p>The new number reflects the reorganization of the ISO 21940 series covering all aspects of rotor balancing.<\/p>' },\r\n        { q: 'How do I split unbalance between two correction planes?', a: '<p>For disc-like rotors with CG approximately centered: allocate 50% to each plane.<\/p><p>For long rotors: use the lever rule \u2014 U\u2081 = U_total \u00d7 L\u2082\/(L\u2081+L\u2082) and U\u2082 = U_total \u00d7 L\u2081\/(L\u2081+L\u2082), where L\u2081 and L\u2082 are distances from CG to each correction plane.<\/p>' },\r\n        { q: 'What units is unbalance measured in?', a: '<p>Common units:<\/p><ul><li><strong>g\u00b7mm<\/strong> (gram-millimeters) \u2014 most common for industrial rotors<\/li><li><strong>oz\u00b7in<\/strong> (ounce-inches) \u2014 used in North America<\/li><li><strong>kg\u00b7m<\/strong> \u2014 SI unit (rarely used in practice)<\/li><\/ul><p>Conversion: 1 oz\u00b7in \u2248 720 g\u00b7mm<\/p>' }\r\n    ];\r\n\r\n    var faqList = $('vc-faq-list');\r\n    faqData.forEach(function(faq, i) {\r\n        faqList.innerHTML += '<div class=\"vc-faq-item\"><button type=\"button\" class=\"vc-faq-q\"><span>' + faq.q + '<\/span><svg class=\"vc-faq-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><div class=\"vc-faq-a\"><div class=\"vc-faq-a-inner\">' + faq.a + '<\/div><\/div><\/div>';\r\n    });\r\n    faqList.addEventListener('click', function(e) {\r\n        var btn = e.target.closest('.vc-faq-q');\r\n        if (!btn) return;\r\n        btn.closest('.vc-faq-item').classList.toggle('vc-open');\r\n    });\r\n\r\n    \/* \u2500\u2500 HISTORY \u2500\u2500 *\/\r\n    function saveHistory(entry) {\r\n        var key = 'vc_history_' + SLUG;\r\n        var arr = [];\r\n        try { arr = JSON.parse(localStorage.getItem(key)) || []; } catch(e) {}\r\n        entry._ts = new Date().toISOString();\r\n        arr.unshift(entry);\r\n        if (arr.length > 10) arr = arr.slice(0, 10);\r\n        try { localStorage.setItem(key, JSON.stringify(arr)); } catch(e) {}\r\n    }\r\n\r\n    \/* \u2500\u2500 URL PARAMS \u2500\u2500 *\/\r\n    function loadParams() {\r\n        var p = new URLSearchParams(window.location.search);\r\n        var requestedSystem = p.get('system');\r\n        if (requestedSystem === 'metric' || requestedSystem === 'imperial') unitSystem = requestedSystem;\r\n        p.forEach(function(v, k) {\r\n            if (k === 'system') return;\r\n            var el = $(k) || $('vc-' + k);\r\n            if (el) el.value = v;\r\n        });\r\n        unitBtns.forEach(function(b) { b.classList.toggle('vc-active', b.getAttribute('data-system') === unitSystem); });\r\n        $('vc-mass-unit-hint').textContent = unitSystem === 'imperial' ? '(lb)' : '(kg)';\r\n    }\r\n\r\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\r\n    function renderFormulas() {\r\n        try {\r\n            katex.render('e_{per} = \\\\frac{G \\\\times 1000}{\\\\omega} = \\\\frac{G \\\\times 1000}{2\\\\pi n \/ 60} \\\\quad [\\\\mu m]', $('vc-katex-1'), { displayMode: true, throwOnError: false });\r\n            katex.render('U_{per} = e_{per} \\\\times m \\\\quad [g \\\\cdot mm]', $('vc-katex-2'), { displayMode: true, throwOnError: false });\r\n        } catch(e) {}\r\n    }\r\n\r\n    \/* \u2500\u2500 INIT \u2500\u2500 *\/\r\n    function init() {\r\n        try {\r\n            var saved = localStorage.getItem('vc_units_' + SLUG);\r\n            if (saved === 'imperial') {\r\n                unitSystem = 'imperial';\r\n                unitBtns.forEach(function(b) { b.classList.toggle('vc-active', b.getAttribute('data-system') === 'imperial'); });\r\n                $('vc-mass-unit-hint').textContent = '(lb)';\r\n            }\r\n        } catch(e) {}\r\n\r\n        loadParams();\r\n        renderFormulas();\r\n        calculate();\r\n    }\r\n\r\n    if (document.readyState === 'loading') {\r\n        document.addEventListener('DOMContentLoaded', init);\r\n    } else {\r\n        init();\r\n    }\r\n})();\r\n<\/script>\r\n","protected":false},"excerpt":{"rendered":"<p>\u062d\u0627\u0633\u0628\u0629 \u0645\u062c\u0627\u0646\u064a\u0629 \u0639\u0628\u0631 \u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a \u0644\u062d\u0633\u0627\u0628 \u0639\u062f\u0645 \u0627\u0644\u062a\u0648\u0627\u0632\u0646 \u0627\u0644\u0645\u062a\u0628\u0642\u064a \u0627\u0644\u0645\u0633\u0645\u0648\u062d \u0628\u0647 \u0648\u0641\u0642\u064b\u0627 \u0644\u0644\u0645\u0639\u064a\u0627\u0631 ISO 21940-11 (\u0627\u0644\u0645\u0639\u0631\u0648\u0641 \u0633\u0627\u0628\u0642\u064b\u0627 \u0628\u0627\u0633\u0645 ISO 1940). \u0623\u062f\u062e\u0644 \u0643\u062a\u0644\u0629 \u0627\u0644\u062f\u0648\u0627\u0631 \u0648\u0633\u0631\u0639\u062a\u0647 \u0648\u062f\u0631\u062c\u0629 \u062c\u0648\u062f\u0629 \u0627\u0644\u062a\u0648\u0627\u0632\u0646 G \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u062d\u062f \u0627\u0644\u0623\u0642\u0635\u0649 \u0627\u0644\u0645\u0633\u0645\u0648\u062d \u0628\u0647 \u0644\u0639\u062f\u0645 \u0627\u0644\u062a\u0648\u0627\u0632\u0646 \u0628\u0648\u062d\u062f\u0629 \u063a\u0631\u0627\u0645\u00b7\u0645\u0644\u064a\u0645\u062a\u0631 \u0648\u0627\u0644\u0644\u0627\u0645\u0631\u0643\u0632\u064a\u0629.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100204","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/ar\/wp-json\/wp\/v2\/calculator\/100204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/ar\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/ar\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":4,"href":"https:\/\/vibromera.eu\/ar\/wp-json\/wp\/v2\/calculator\/100204\/revisions"}],"predecessor-version":[{"id":102307,"href":"https:\/\/vibromera.eu\/ar\/wp-json\/wp\/v2\/calculator\/100204\/revisions\/102307"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/ar\/wp-json\/wp\/v2\/media?parent=100204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/ar\/wp-json\/wp\/v2\/categories?post=100204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/ar\/wp-json\/wp\/v2\/tags?post=100204"}],"curies":[{"name":"\u0648\u0648\u0631\u062f\u0628\u0631\u064a\u0633","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}