{"id":100049,"date":"2026-02-15T20:09:20","date_gmt":"2026-02-15T20:09:20","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100049"},"modified":"2026-07-11T22:34:19","modified_gmt":"2026-07-11T22:34:19","slug":"campbell-diagram-calculator","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/pl\/calculators\/campbell-diagram-calculator\/","title":{"rendered":"Order-Crossing Candidates | Constant-Frequency Screening"},"content":{"rendered":"\r\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Constant-Frequency Order-Crossing Calculator\",\"description\":\"Calculate arithmetic speed crossings between user-supplied constant modal frequencies and excitation-order lines. Results are screening candidates, not a rotordynamic Campbell solution or operating-speed approval.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/campbell-diagram-calculator\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"dateModified\":\"2026-07-11\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true}<\/script>\r\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Is this a full Campbell diagram analysis?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. It assumes each entered modal frequency is constant with speed and only solves the intersection with an order line.\"}},{\"@type\":\"Question\",\"name\":\"Is every arithmetic crossing a dangerous critical speed?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. The excitation must exist and couple to the mode; response depends on speed-dependent modes, mode shape, damping, forcing, stability and operating history.\"}},{\"@type\":\"Question\",\"name\":\"Does the page prescribe a separation margin?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Any prohibited band, separation margin or run-up procedure must come from the applicable design standard, owner requirement and validated rotordynamic analysis.\"}}]}<\/script>\r\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Order-Crossing Candidates\",\"item\":\"https:\/\/vibromera.eu\/calculators\/campbell-diagram-calculator\/\"}]}<\/script>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<style>\r\n:root{--vc-bg:#f4f1ec;--vc-surface:#ffffff;--vc-surface-alt:#f8f6f2;--vc-ink:#1a1a1a;--vc-ink-secondary:#5a5650;--vc-ink-muted:#8a857e;--vc-accent:#c85a2a;--vc-accent-hover:#b04d22;--vc-accent-light:#fdf0ea;--vc-blue:#2a5c8c;--vc-blue-light:#eaf1f8;--vc-green:#2a7a4b;--vc-green-light:#eaf8ef;--vc-yellow:#a67c00;--vc-yellow-light:#fef9e8;--vc-red:#b91c1c;--vc-red-light:#fef2f2;--vc-border:#d9d4cc;--vc-border-light:#e8e4dd;--vc-shadow:0 1px 3px rgba(26,26,26,0.06),0 4px 12px rgba(26,26,26,0.04);--vc-shadow-lg:0 4px 12px rgba(26,26,26,0.08),0 16px 40px rgba(26,26,26,0.06);--vc-radius:8px;--vc-radius-lg:12px;--vc-font:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--vc-mono:'JetBrains Mono','Consolas','Monaco',monospace;--vc-display:'Fraunces',Georgia,serif}\r\n.vc-calculator{font-family:var(--vc-font);font-size:15px;line-height:1.65;color:var(--vc-ink);max-width:960px;margin:0 auto;padding:20px 16px 40px;-webkit-font-smoothing:antialiased}.vc-calculator *,.vc-calculator *::before,.vc-calculator *::after{box-sizing:border-box}\r\n.vc-header{text-align:center;padding:48px 24px 40px;position:relative}.vc-header::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:80px;height:3px;background:var(--vc-accent);border-radius:2px}.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}.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}.vc-header-subtitle{font-size:15px;color:var(--vc-ink-secondary);margin:0 auto 20px;max-width:600px}.vc-badges{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}.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.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.vc-form{padding:24px}.vc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:600px){.vc-form-grid{grid-template-columns:1fr}}.vc-field{display:flex;flex-direction:column}.vc-field-full{grid-column:1\/-1}.vc-label{font-size:12px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--vc-ink-secondary);margin-bottom:6px}.vc-label-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--vc-ink-muted);font-size:11px}.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}.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}.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)}.vc-select:hover,.vc-input:hover{border-color:var(--vc-ink-muted)}\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)}.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}.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}.vc-preset-btn:hover{border-color:var(--vc-accent);color:var(--vc-accent);background:var(--vc-accent-light)}\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}.vc-results.vc-visible{max-height:4000px;padding:24px}.vc-results-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.vc-results-title{font-family:var(--vc-display);font-size:20px;font-weight:700;color:var(--vc-ink);margin:0}.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}.vc-copy-btn:hover{border-color:var(--vc-accent);color:var(--vc-accent)}.vc-copy-btn.vc-copied{background:var(--vc-green-light);border-color:var(--vc-green);color:var(--vc-green)}\r\n.vc-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}@media(max-width:500px){.vc-result-grid{grid-template-columns:1fr}}.vc-rcard{background:var(--vc-surface);border:1px solid var(--vc-border-light);border-radius:var(--vc-radius);padding:16px;transition:transform 0.2s}.vc-rcard:hover{transform:translateY(-1px)}.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}.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}.vc-rcard-value{font-family:var(--vc-mono);font-size:22px;font-weight:600;color:var(--vc-ink);line-height:1.2}.vc-rcard-primary .vc-rcard-value{font-size:30px;color:var(--vc-accent)}.vc-rcard-unit{font-size:14px;font-weight:400;color:var(--vc-ink-secondary)}\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}.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}.vc-section-toggle:hover{background:var(--vc-surface-alt)}.vc-section-toggle-text{display:flex;align-items:center;gap:10px}.vc-section-icon{font-size:20px;line-height:1}.vc-section-title{font-family:var(--vc-display);font-size:18px;font-weight:700;color:var(--vc-ink);margin:0}.vc-section-chevron{width:20px;height:20px;color:var(--vc-ink-muted);transition:transform 0.3s;flex-shrink:0}.vc-section.vc-open .vc-section-chevron{transform:rotate(180deg)}.vc-section-body{max-height:0;overflow:hidden;transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1)}.vc-section.vc-open .vc-section-body{max-height:20000px}.vc-section-inner{padding:0 24px 24px;border-top:1px solid var(--vc-border-light)}\r\n.vc-theory h3{font-family:var(--vc-display);font-size:17px;font-weight:700;color:var(--vc-ink);margin:28px 0 10px}.vc-theory h3:first-child{margin-top:20px}.vc-theory p{font-size:14px;color:var(--vc-ink-secondary);margin:0 0 10px}.vc-theory ul,.vc-theory ol{font-size:14px;color:var(--vc-ink-secondary);margin:0 0 12px 18px;padding:0}.vc-theory li{margin-bottom:5px}.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}.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}.vc-info-box p{margin:0;font-size:14px;color:var(--vc-ink-secondary)}.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}.vc-example-box{background:var(--vc-surface-alt);border:1px solid var(--vc-border-light);border-radius:6px;padding:16px;margin:14px 0}.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}.vc-table th,.vc-table td{padding:10px 12px;border:1px solid var(--vc-border-light);text-align:left}.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)}.vc-table tr:nth-child(even){background:var(--vc-surface-alt)}@media(max-width:600px){.vc-table{font-size:12px}.vc-table th,.vc-table td{padding:8px}}\r\n.vc-faq-list{display:flex;flex-direction:column;gap:8px;margin-top:20px}.vc-faq-item{border:1px solid var(--vc-border-light);border-radius:6px;overflow:hidden}.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}.vc-faq-q:hover{background:#ede9e3}.vc-faq-chevron{width:16px;height:16px;color:var(--vc-ink-muted);flex-shrink:0;transition:transform 0.25s}.vc-faq-item.vc-open .vc-faq-chevron{transform:rotate(180deg)}.vc-faq-a{max-height:0;overflow:hidden;transition:max-height 0.35s}.vc-faq-item.vc-open .vc-faq-a{max-height:1200px}.vc-faq-a-inner{padding:14px 16px;border-top:1px solid var(--vc-border-light);font-size:14px;color:var(--vc-ink-secondary)}.vc-faq-a-inner p{margin:0 0 8px}.vc-faq-a-inner p:last-child{margin-bottom:0}.vc-faq-a-inner ul{margin:4px 0 8px 16px;padding:0}.vc-faq-a-inner li{margin-bottom:3px}\r\n.vc-related{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.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}.vc-related-link:hover{border-color:var(--vc-accent);color:var(--vc-accent);background:var(--vc-accent-light)}\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}.vc-promo-text{flex:1;font-size:14px;color:var(--vc-ink-secondary)}.vc-promo-text strong{color:var(--vc-ink)}.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}.vc-promo-link:hover{background:var(--vc-accent-hover)}\r\n.vc-footer{text-align:center;padding:32px 16px;font-size:13px;color:var(--vc-ink-muted)}.vc-footer a{color:var(--vc-accent);text-decoration:none}.vc-footer a:hover{text-decoration:underline}.vc-footer-links{margin-top:8px;font-size:12px}.vc-footer-links a{margin:0 8px}\r\n@media print{.vc-section-body{max-height:none!important}.vc-faq-a{max-height:none!important}.vc-results{max-height:none!important;padding:24px!important}.vc-copy-btn,.vc-section-chevron,.vc-faq-chevron,.vc-presets,.vc-promo{display:none!important}}\r\n.vc-crossing-table{margin-top:12px}.vc-crossing-warn{color:var(--vc-red);font-weight:600}\r\n.vc-viz{margin:20px 0;background:var(--vc-surface);border:1px solid var(--vc-border-light);border-radius:var(--vc-radius);padding:16px;overflow:hidden}.vc-viz svg{width:100%;height:auto;display:block}.vc-viz-title{font-family:var(--vc-mono);font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:var(--vc-ink-muted);margin-bottom:12px}\r\n<\/style>\r\n<div class=\"vc-calculator\" id=\"vc-order-crossings\"><header class=\"vc-header\"><p class=\"vc-header-eyebrow\">Rotordynamic screening arithmetic<\/p><h1 class=\"vc-header-title\">Constant-Frequency Order-Crossing Calculator<\/h1><p class=\"vc-header-subtitle\">Intersect user-supplied constant modal frequencies with excitation-order lines over a speed range. Results are candidates for further analysis, not confirmed critical speeds.<\/p><div class=\"vc-badges\"><span class=\"vc-badge\">fexc = order\u00b7RPM\/60<\/span><span class=\"vc-badge\">Constant-mode approximation<\/span><span class=\"vc-badge\">No universal margin<\/span><\/div><\/header>\r\n<div class=\"vc-card\"><form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\"><div class=\"vc-form-grid\"><div class=\"vc-field\"><label class=\"vc-label\" for=\"vc-min\">Minimum speed <span class=\"vc-label-hint\">(rpm; zero allowed)<\/span><\/label><input class=\"vc-input\" type=\"text\" id=\"vc-min\" inputmode=\"decimal\"><\/div><div class=\"vc-field\"><label class=\"vc-label\" for=\"vc-max\">Maximum speed <span class=\"vc-label-hint\">(rpm)<\/span><\/label><input class=\"vc-input\" type=\"text\" id=\"vc-max\" inputmode=\"decimal\"><\/div><div class=\"vc-field\" style=\"grid-column:1\/-1\"><label class=\"vc-label\" for=\"vc-modes\">Constant modal frequencies <span class=\"vc-label-hint\">(Hz; one per line or semicolon)<\/span><\/label><textarea class=\"vc-input\" id=\"vc-modes\" rows=\"3\" inputmode=\"decimal\" placeholder=\"25; 48\"><\/textarea><\/div><div class=\"vc-field\" style=\"grid-column:1\/-1\"><label class=\"vc-label\" for=\"vc-orders\">Excitation orders <span class=\"vc-label-hint\">(positive; one per line or semicolon)<\/span><\/label><textarea class=\"vc-input\" id=\"vc-orders\" rows=\"3\" inputmode=\"decimal\" placeholder=\"1; 2; 3\"><\/textarea><\/div><\/div><div class=\"vc-warning-box\"><p style=\"margin:0\"><strong>Input boundary:<\/strong> every order must represent a physically identified excitation and every modal frequency must come from a defined model\/test condition. Decimal commas are supported; use semicolons or new lines between values.<\/p><\/div><\/form>\r\n<div class=\"vc-results\" id=\"vc-results\"><div class=\"vc-results-head\"><h2 class=\"vc-results-title\">Arithmetic crossing candidates<\/h2><button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">Copy<\/button><\/div><div class=\"vc-result-grid\"><div class=\"vc-rcard vc-rcard-primary\"><div class=\"vc-rcard-label\">Candidates inside entered inclusive range<\/div><div class=\"vc-rcard-value\" id=\"vc-r-total\">\u2014<\/div><\/div><div class=\"vc-rcard\"><div class=\"vc-rcard-label\">Speed range<\/div><div class=\"vc-rcard-value\" id=\"vc-r-range\">\u2014<\/div><\/div><div class=\"vc-rcard\"><div class=\"vc-rcard-label\">Input combinations<\/div><div class=\"vc-rcard-value\" id=\"vc-r-combos\">\u2014<\/div><\/div><\/div><div id=\"vc-table\"><\/div><p id=\"vc-r-note\" style=\"margin:12px 0 0;color:var(--vc-ink-secondary)\"><\/p><\/div><\/div>\r\n<div class=\"vc-section vc-open\"><button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\"><span class=\"vc-section-toggle-text\"><span class=\"vc-section-icon\">\ud83d\udcd8<\/span><span class=\"vc-section-title\">Equation and Campbell boundary<\/span><\/span><\/button><div class=\"vc-section-body\"><div class=\"vc-section-inner vc-theory\"><h3>Order-line intersection<\/h3><div class=\"vc-formula-box\">fexc = k\u00b7n\/60; &nbsp; ncandidate = 60\u00b7fmode\/k<\/div><p>The calculation is exact for the entered constant fmode and order k. Fractional orders are allowed because asynchronous\/subharmonic excitations can exist, but the page does not assert that any entered order is physically present.<\/p><h3>Why this is not a full Campbell solution<\/h3><p>The <a href=\"https:\/\/ansyshelp.ansys.com\/public\/Views\/Secured\/corp\/v252\/en\/ans_rot\/Hlp_G_ROTCAMPDIAGS.html\" target=\"_blank\" rel=\"noopener\">Ansys Rotordynamic Analysis Guide<\/a> describes Campbell curves from modal analyses at multiple rotational-speed load steps, including speed-dependent frequencies, forward\/backward whirl, stability and sufficient resolution. It notes that crossing accuracy depends on Campbell-diagram quality. A <a href=\"https:\/\/ntrs.nasa.gov\/api\/citations\/20250005209\/downloads\/TM-20250005209_final_060225.pdf?attachment=true\" target=\"_blank\" rel=\"noopener\">2025 NASA technical memorandum<\/a> likewise plots varying modal frequencies against engine-order lines and calls their intersections potential resonant conditions.<\/p><div class=\"vc-warning-box\"><p style=\"margin:0\"><strong>No operating-speed verdict:<\/strong> this page omits gyroscopic\/Coriolis effects, bearing\/seal\/support speed dependence, mode tracking and shape, damping\/logarithmic decrement, stability, forcing amplitude\/phase, excitation coupling, nonlinearities, thermal\/load states, uncertainty and response analysis. It does not prescribe a 20% margin or tell an operator to traverse a resonance quickly.<\/p><\/div><\/div><\/div><\/div>\r\n<div class=\"vc-section\"><button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\"><span class=\"vc-section-toggle-text\"><span class=\"vc-section-icon\">\u2753<\/span><span class=\"vc-section-title\">Frequently Asked Questions<\/span><\/span><\/button><div class=\"vc-section-body\"><div class=\"vc-section-inner\"><div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div><\/div><\/div><\/div><footer class=\"vc-footer\"><p>\u00a9 2024\u20132026 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a><\/p><p>Constant-frequency crossing arithmetic only; not a Campbell solution or speed approval. Scientific review: July 2026.<\/p><\/footer><\/div>\r\n<script>(function(){'use strict';function $(i){return document.getElementById(i)}function p(raw,zero){var s=String(raw).trim().replace(\/\\s+\/g,'');if(!\/^[+]?(?:\\d+(?:[.,]\\d*)?|[.,]\\d+)$\/.test(s))return NaN;var n=Number(s.replace(',','.'));return Number.isFinite(n)&&(zero?n>=0:n>0)?n:NaN}function list(raw){var a=String(raw).split(\/[;\\n\\r]+\/).map(function(v){return v.trim()}).filter(Boolean).map(function(v){return p(v,false)});return a.length&&a.every(Number.isFinite)?a:null}function f(n){return n.toFixed(6).replace(\/(\\.\\d*?)0+$\/,'$1').replace(\/\\.$\/,'')}function calc(){var lo=p($('vc-min').value,true),hi=p($('vc-max').value),m=list($('vc-modes').value),o=list($('vc-orders').value);if(![lo,hi].every(Number.isFinite)||hi<=lo||!m||!o){$('vc-results').classList.remove('vc-visible');return}var c=[];o.forEach(function(k,oi){m.forEach(function(freq,mi){var rpm=60*freq\/k;if(rpm>=lo&&rpm<=hi)c.push({order:k,freq:freq,rpm:rpm,mode:mi+1,orderIndex:oi+1})})});c.sort(function(a,b){return a.rpm-b.rpm||a.mode-b.mode||a.orderIndex-b.orderIndex});$('vc-r-total').innerHTML=c.length+' <span class=\"vc-rcard-unit\">candidate'+(c.length===1?'':'s')+'<\/span>';$('vc-r-range').innerHTML=f(lo)+'\u2013'+f(hi)+' <span class=\"vc-rcard-unit\">rpm<\/span>';$('vc-r-combos').textContent=m.length+' modes \u00d7 '+o.length+' orders = '+(m.length*o.length);var h;if(c.length){h='<table class=\"vc-table\"><thead><tr><th>Mode input<\/th><th>fmode (Hz)<\/th><th>Order k<\/th><th>Candidate speed (rpm)<\/th><\/tr><\/thead><tbody>';c.forEach(function(x){h+='<tr><td>'+x.mode+'<\/td><td>'+f(x.freq)+'<\/td><td>'+f(x.order)+'\u00d7<\/td><td><strong>'+f(x.rpm)+'<\/strong><\/td><\/tr>'});h+='<\/tbody><\/table>'}else h='<div class=\"vc-info-box\"><p>No arithmetic crossings fall inside the entered inclusive speed range.<\/p><\/div>';$('vc-table').innerHTML=h;$('vc-r-note').textContent='Each row is only a constant-frequency\/order intersection. Confirm speed-dependent modes, excitation, coupling, damping, stability and response before using it in a design or operating procedure.';$('vc-results').classList.add('vc-visible');var u=new URL(location);u.searchParams.set('minimum_speed_rpm',lo);u.searchParams.set('maximum_speed_rpm',hi);u.searchParams.set('constant_modal_frequencies_hz',m.join(';'));u.searchParams.set('excitation_orders',o.join(';'));history.replaceState(null,'',u.toString())}$('vc-form').addEventListener('input',calc);$('vc-form').addEventListener('change',calc);$('vc-copy-btn').addEventListener('click',function(){if(navigator.clipboard)navigator.clipboard.writeText($('vc-results').innerText)});document.querySelectorAll('.vc-section-toggle').forEach(function(b){b.addEventListener('click',function(){var s=this.closest('.vc-section');s.classList.toggle('vc-open');this.setAttribute('aria-expanded',s.classList.contains('vc-open'))})});var q=[['Is this a full Campbell diagram?','No. It intersects constant entered frequencies with order lines.'],['Is every crossing a dangerous critical speed?','No. Excitation presence, coupling, damping, stability and response must be established.'],['What separation margin should I use?','This page prescribes none; use the applicable requirements and validated rotordynamic analysis.']];var l=$('vc-faq-list');q.forEach(function(v){l.innerHTML+='<div class=\"vc-faq-item\"><button type=\"button\" class=\"vc-faq-q\">'+v[0]+'<\/button><div class=\"vc-faq-a\"><div class=\"vc-faq-a-inner\"><p>'+v[1]+'<\/p><\/div><\/div><\/div>'});l.addEventListener('click',function(e){var b=e.target.closest('.vc-faq-q');if(b)b.closest('.vc-faq-item').classList.toggle('vc-open')});var z=new URLSearchParams(location.search),map={minimum_speed_rpm:'vc-min',maximum_speed_rpm:'vc-max',constant_modal_frequencies_hz:'vc-modes',excitation_orders:'vc-orders'};Object.keys(map).forEach(function(k){if(z.has(k))$(map[k]).value=z.get(k)});calc()})();<\/script>\r\n","protected":false},"excerpt":{"rendered":"<p>Calculate arithmetic speed crossings between constant user-supplied modal frequencies and excitation-order lines; not a full Campbell solution or operating-speed approval.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100049","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/pl\/wp-json\/wp\/v2\/calculator\/100049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/pl\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/pl\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":2,"href":"https:\/\/vibromera.eu\/pl\/wp-json\/wp\/v2\/calculator\/100049\/revisions"}],"predecessor-version":[{"id":102340,"href":"https:\/\/vibromera.eu\/pl\/wp-json\/wp\/v2\/calculator\/100049\/revisions\/102340"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/pl\/wp-json\/wp\/v2\/media?parent=100049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/pl\/wp-json\/wp\/v2\/categories?post=100049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/pl\/wp-json\/wp\/v2\/tags?post=100049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}