{"id":100270,"date":"2026-02-15T20:31:11","date_gmt":"2026-02-15T20:31:11","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100270"},"modified":"2026-04-05T15:34:32","modified_gmt":"2026-04-05T15:34:32","slug":"turbine-blade-frequency-calculator","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/nb\/calculators\/turbine-blade-frequency-calculator\/","title":{"rendered":"Turbinbladets naturlige frekvens og Campbell-diagramverkt\u00f8y"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Turbine Blade Natural Frequency Calculator\",\"alternateName\":[\"Campbell Diagram Calculator\",\"Blade Resonance Check\",\"Blade Frequency Calculator\"],\"description\":\"Free online calculator for turbine blade natural frequency with simplified Campbell diagram. Check harmonic crossings and resonance risks.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/turbine-blade-frequency-calculator\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"datePublished\":\"2025-01-01\",\"dateModified\":\"2025-06-01\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"First-mode natural frequency calculation\",\"Simplified Campbell diagram\",\"Harmonic crossing detection (1\u00d7\u201312\u00d7)\",\"Material property database\",\"Blade geometry inputs\",\"Visual interference diagram\"],\"keywords\":\"turbine blade, natural frequency, Campbell diagram, resonance, harmonic, blade vibration, cantilever\"}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[\n{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},\n{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},\n{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Turbine Blade Frequency Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/turbine-blade-frequency-calculator\/\"}\n]}\n<\/script>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\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\">\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.css\">\n\n<style>\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-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}\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}\n.vc-calculator *,.vc-calculator *::before,.vc-calculator *::after{box-sizing:border-box}\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}\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}\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}\n.vc-header-subtitle{font-size:15px;color:var(--vc-ink-secondary);margin:0 auto 20px;max-width:640px}\n.vc-badges{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}\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)}\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}\n.vc-form{padding:24px}.vc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}\n@media(max-width:600px){.vc-form-grid{grid-template-columns:1fr}}\n.vc-field{display:flex;flex-direction:column}.vc-field-full{grid-column:1\/-1}\n.vc-label{font-size:12px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--vc-ink-secondary);margin-bottom:6px}\n.vc-label-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--vc-ink-muted);font-size:11px}\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}\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}\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)}\n.vc-select:hover,.vc-input:hover{border-color:var(--vc-ink-muted)}\n.vc-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:18px;border-top:1px solid var(--vc-border-light)}\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}\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}\n.vc-preset-btn:hover{border-color:var(--vc-accent);color:var(--vc-accent);background:var(--vc-accent-light)}\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}\n.vc-results.vc-visible{max-height:5000px;padding:24px}\n.vc-results-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}\n.vc-results-title{font-family:var(--vc-display);font-size:20px;font-weight:700;color:var(--vc-ink);margin:0}\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}\n.vc-copy-btn:hover{border-color:var(--vc-accent);color:var(--vc-accent)}\n.vc-copy-btn.vc-copied{background:var(--vc-green-light);border-color:var(--vc-green);color:var(--vc-green)}\n.vc-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}\n@media(max-width:500px){.vc-result-grid{grid-template-columns:1fr}}\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}\n.vc-rcard:hover{transform:translateY(-1px)}\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}\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}\n.vc-rcard-value{font-family:var(--vc-mono);font-size:22px;font-weight:600;color:var(--vc-ink);line-height:1.2}\n.vc-rcard-primary .vc-rcard-value{font-size:30px;color:var(--vc-accent)}\n.vc-rcard-unit{font-size:14px;font-weight:400;color:var(--vc-ink-secondary)}\n.vc-rcard-good{border-color:var(--vc-green);background:var(--vc-green-light)}\n.vc-rcard-warn{border-color:var(--vc-yellow);background:var(--vc-yellow-light)}\n.vc-rcard-bad{border-color:var(--vc-red);background:var(--vc-red-light)}\n.vc-chart-wrap{background:var(--vc-surface);border:1px solid var(--vc-border-light);border-radius:var(--vc-radius);padding:16px;margin-bottom:16px}\n.vc-chart-wrap svg{width:100%;height:auto}\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}\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}\n.vc-section-toggle:hover{background:var(--vc-surface-alt)}\n.vc-section-toggle-text{display:flex;align-items:center;gap:10px}\n.vc-section-icon{font-size:20px;line-height:1}\n.vc-section-title{font-family:var(--vc-display);font-size:18px;font-weight:700;color:var(--vc-ink);margin:0}\n.vc-section-chevron{width:20px;height:20px;color:var(--vc-ink-muted);transition:transform 0.3s;flex-shrink:0}\n.vc-section.vc-open .vc-section-chevron{transform:rotate(180deg)}\n.vc-section-body{max-height:0;overflow:hidden;transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1)}\n.vc-section.vc-open .vc-section-body{max-height:20000px}\n.vc-section-inner{padding:0 24px 24px;border-top:1px solid var(--vc-border-light)}\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}\n.vc-theory p{font-size:14px;color:var(--vc-ink-secondary);margin:0 0 10px}\n.vc-theory ul{font-size:14px;color:var(--vc-ink-secondary);margin:0 0 12px 18px;padding:0}.vc-theory li{margin-bottom:5px}\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}\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}\n.vc-info-box p{margin:0;font-size:14px;color:var(--vc-ink-secondary)}\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}\n.vc-example-box{background:var(--vc-surface-alt);border:1px solid var(--vc-border-light);border-radius:6px;padding:16px;margin:14px 0}\n.vc-example-title{font-family:var(--vc-mono);font-size:13px;font-weight:600;color:var(--vc-accent);margin-bottom:8px}\n.vc-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13px}\n.vc-table th,.vc-table td{padding:10px 12px;border:1px solid var(--vc-border-light);text-align:left}\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)}\n.vc-table tr:nth-child(even){background:var(--vc-surface-alt)}\n@media(max-width:600px){.vc-table{font-size:12px}.vc-table th,.vc-table td{padding:8px}}\n.vc-faq-list{display:flex;flex-direction:column;gap:8px;margin-top:20px}\n.vc-faq-item{border:1px solid var(--vc-border-light);border-radius:6px;overflow:hidden}\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}\n.vc-faq-q:hover{background:#ede9e3}\n.vc-faq-chevron{width:16px;height:16px;color:var(--vc-ink-muted);flex-shrink:0;transition:transform 0.25s}\n.vc-faq-item.vc-open .vc-faq-chevron{transform:rotate(180deg)}\n.vc-faq-a{max-height:0;overflow:hidden;transition:max-height 0.35s}\n.vc-faq-item.vc-open .vc-faq-a{max-height:1200px}\n.vc-faq-a-inner{padding:14px 16px;border-top:1px solid var(--vc-border-light);font-size:14px;color:var(--vc-ink-secondary)}\n.vc-faq-a-inner p{margin:0 0 8px}.vc-faq-a-inner p:last-child{margin-bottom:0}\n.vc-faq-a-inner ul{margin:4px 0 8px 16px;padding:0}.vc-faq-a-inner li{margin-bottom:3px}\n.vc-related{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}\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}\n.vc-related-link:hover{border-color:var(--vc-accent);color:var(--vc-accent);background:var(--vc-accent-light)}\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}\n.vc-promo-text{flex:1;font-size:14px;color:var(--vc-ink-secondary)}.vc-promo-text strong{color:var(--vc-ink)}\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}\n.vc-promo-link:hover{background:var(--vc-accent-hover)}\n.vc-footer{text-align:center;padding:32px 16px;font-size:13px;color:var(--vc-ink-muted)}\n.vc-footer a{color:var(--vc-accent);text-decoration:none}.vc-footer a:hover{text-decoration:underline}\n.vc-footer-links{margin-top:8px;font-size:12px}.vc-footer-links a{margin:0 8px}\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}}\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-blade-freq\">\n\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\n    <h1 class=\"vc-header-title\">Turbine Blade Natural Frequency &amp; Campbell Check<\/h1>\n    <p class=\"vc-header-subtitle\">Calculate the first-mode natural frequency of a turbine blade (cantilever beam model) and check for harmonic crossings within the operating speed range using a simplified Campbell diagram.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">Cantilever Beam Model<\/span>\n        <span class=\"vc-badge\">Campbell Diagram<\/span>\n        <span class=\"vc-badge\">Harmonics 1\u00d7\u201312\u00d7<\/span>\n    <\/div>\n<\/header>\n\n<div class=\"vc-card\">\n    <form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\">\n        <div class=\"vc-form-grid\">\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-length\">Blade Length <span class=\"vc-label-hint\">(mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-length\" inputmode=\"decimal\" step=\"any\" min=\"1\" placeholder=\"e.g. 500\" value=\"500\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-thick\">Blade Thickness <span class=\"vc-label-hint\">(mm, in bending direction)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-thick\" inputmode=\"decimal\" step=\"any\" min=\"0.1\" placeholder=\"e.g. 12\" value=\"12\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-width\">Blade Width <span class=\"vc-label-hint\">(mm, chord)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-width\" inputmode=\"decimal\" step=\"any\" min=\"0.1\" placeholder=\"e.g. 80\" value=\"80\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-material\">Material<\/label>\n                <select class=\"vc-select\" id=\"vc-material\">\n                    <option value=\"steel\" selected>Alloy Steel (E=200 GPa, \u03c1=7850 kg\/m\u00b3)<\/option>\n                    <option value=\"titanium\">Titanium Ti-6Al-4V (E=114 GPa, \u03c1=4430 kg\/m\u00b3)<\/option>\n                    <option value=\"inconel\">Inconel 718 (E=205 GPa, \u03c1=8190 kg\/m\u00b3)<\/option>\n                    <option value=\"aluminum\">Aluminum 7075 (E=72 GPa, \u03c1=2810 kg\/m\u00b3)<\/option>\n                    <option value=\"custom\">Custom<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-E-field\" style=\"display:none\">\n                <label class=\"vc-label\" for=\"vc-E\">Young&#8217;s Modulus E <span class=\"vc-label-hint\">(GPa)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-E\" inputmode=\"decimal\" step=\"any\" min=\"1\" value=\"200\">\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-rho-field\" style=\"display:none\">\n                <label class=\"vc-label\" for=\"vc-rho\">Density \u03c1 <span class=\"vc-label-hint\">(kg\/m\u00b3)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-rho\" inputmode=\"decimal\" step=\"any\" min=\"1\" value=\"7850\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-nblades\">Number of Blades<\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-nblades\" inputmode=\"numeric\" step=\"1\" min=\"1\" placeholder=\"e.g. 60\" value=\"60\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-rpmmin\">Min Speed <span class=\"vc-label-hint\">(RPM)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-rpmmin\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 2400\" value=\"2400\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-rpmmax\">Max Speed <span class=\"vc-label-hint\">(RPM)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-rpmmax\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 3600\" value=\"3600\">\n            <\/div>\n        <\/div>\n\n        <div class=\"vc-presets\">\n            <div class=\"vc-presets-label\">Quick presets<\/div>\n            <button type=\"button\" class=\"vc-preset-btn\" data-l=\"500\" data-t=\"12\" data-w=\"80\" data-m=\"steel\" data-n=\"60\" data-rmin=\"2400\" data-rmax=\"3600\">Steam Turbine LP<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-l=\"200\" data-t=\"8\" data-w=\"40\" data-m=\"inconel\" data-n=\"72\" data-rmin=\"8000\" data-rmax=\"12000\">Gas Turbine HP<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-l=\"300\" data-t=\"10\" data-w=\"60\" data-m=\"titanium\" data-n=\"48\" data-rmin=\"5000\" data-rmax=\"8000\">Compressor Blade<\/button>\n        <\/div>\n    <\/form>\n\n    <div class=\"vc-results\" id=\"vc-results\">\n        <div class=\"vc-results-head\">\n            <h2 class=\"vc-results-title\">Results<\/h2>\n            <button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">\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>\n                Copy\n            <\/button>\n        <\/div>\n        <div class=\"vc-result-grid\">\n            <div class=\"vc-rcard vc-rcard-primary\">\n                <div class=\"vc-rcard-label\">First Mode Natural Frequency (f\u2081)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-f1\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Second Mode (f\u2082 \u2248 6.27 \u00d7 f\u2081)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-f2\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Third Mode (f\u2083 \u2248 17.55 \u00d7 f\u2081)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-f3\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\" id=\"vc-r-crossing-card\">\n                <div class=\"vc-rcard-label\">Harmonic Crossings in Speed Range<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-crossings\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Blade Passing Frequency (at max RPM)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-bpf\">\u2014<\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Campbell Diagram -->\n        <div class=\"vc-chart-wrap\">\n            <svg id=\"vc-campbell\" viewBox=\"0 0 700 450\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><\/svg>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Theory -->\n<div class=\"vc-section vc-open\" id=\"vc-sec-theory\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udcd8<\/span>\n            <span class=\"vc-section-title\">Theory &amp; Formulas<\/span>\n        <\/span>\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>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner vc-theory\">\n            <h3>Cantilever Beam Natural Frequency<\/h3>\n            <p>A turbine blade can be modeled as a cantilever beam fixed at the root. The natural frequencies are:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n            <ul>\n                <li><strong>\u03bb<sub>n<\/sub><\/strong> \u2014 eigenvalue: \u03bb\u2081 = 1.8751, \u03bb\u2082 = 4.6941, \u03bb\u2083 = 7.8548<\/li>\n                <li><strong>E<\/strong> \u2014 Young&#8217;s modulus (Pa)<\/li>\n                <li><strong>I<\/strong> \u2014 second moment of area (m\u2074) = b\u00b7h\u00b3\/12 for rectangular cross-section<\/li>\n                <li><strong>\u03c1<\/strong> \u2014 material density (kg\/m\u00b3)<\/li>\n                <li><strong>A<\/strong> \u2014 cross-sectional area (m\u00b2) = b\u00b7h<\/li>\n                <li><strong>L<\/strong> \u2014 blade length (m)<\/li>\n            <\/ul>\n\n            <h3>Campbell Diagram<\/h3>\n            <p>The Campbell diagram plots blade natural frequency (horizontal lines) against engine order excitation lines (diagonal lines: f = n \u00d7 RPM\/60). Intersections within the operating speed range indicate potential resonance.<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n            <p>A minimum 10% separation margin between natural frequencies and excitation frequencies at operating speed is generally required.<\/p>\n\n            <h3>Mode Shape Ratios<\/h3>\n            <table class=\"vc-table\">\n                <thead><tr><th>Mode<\/th><th>\u03bb<sub>n<\/sub><\/th><th>f<sub>n<\/sub> \/ f\u2081 ratio<\/th><th>Character<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>1st<\/td><td>1.8751<\/td><td>1.000<\/td><td>First bending<\/td><\/tr>\n                    <tr><td>2nd<\/td><td>4.6941<\/td><td>6.267<\/td><td>Second bending<\/td><\/tr>\n                    <tr><td>3rd<\/td><td>7.8548<\/td><td>17.55<\/td><td>Third bending<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n\n            <div class=\"vc-example-box\">\n                <div class=\"vc-example-title\">Example \u2014 Steam Turbine LP Blade<\/div>\n                <p><strong>Given:<\/strong> L = 500 mm, thickness h = 12 mm, width b = 80 mm, Steel (E = 200 GPa, \u03c1 = 7850 kg\/m\u00b3)<\/p>\n                <p>I = 80 \u00d7 12\u00b3 \/ 12 = 11,520 mm\u2074 = 1.152 \u00d7 10\u207b\u2078 m\u2074<\/p>\n                <p>A = 80 \u00d7 12 = 960 mm\u00b2 = 9.6 \u00d7 10\u207b\u2074 m\u00b2<\/p>\n                <p>f\u2081 = (1.8751\u00b2 \/ (2\u03c0)) \u00d7 \u221a(200\u00d710\u2079 \u00d7 1.152\u00d710\u207b\u2078 \/ (7850 \u00d7 9.6\u00d710\u207b\u2074 \u00d7 0.5\u2074))<\/p>\n                <p>f\u2081 \u2248 <strong>44.8 Hz<\/strong><\/p>\n            <\/div>\n\n            <div class=\"vc-warning-box\">\n                <p style=\"margin:0;font-size:14px;color:var(--vc-ink-secondary);\"><strong>\u26a0\ufe0f Note:<\/strong> This is a simplified uniform cantilever beam model. Actual turbine blades have tapered profiles, twist, shrouds, platform effects, centrifugal stiffening, and temperature-dependent material properties that significantly affect natural frequencies. Use FEA for detailed design.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Related -->\n<div class=\"vc-section\" id=\"vc-sec-related\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udd17<\/span>\n            <span class=\"vc-section-title\">Related Calculators<\/span>\n        <\/span>\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>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-related\">\n                <a class=\"vc-related-link\" href=\"\/calculators\/generator-bearing-temp-monitor\/\">Bearing Temp Monitor<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/rul-prognostics-calculator\/\">RUL Prognostics<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/vibration-velocity\/\">Vibration Velocity (ISO 10816)<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/residual-unbalance-iso1940\/\">Residual Unbalance (ISO 1940)<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- FAQ -->\n<div class=\"vc-section\" id=\"vc-sec-faq\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\u2753<\/span>\n            <span class=\"vc-section-title\">Frequently Asked Questions<\/span>\n        <\/span>\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>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\">\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\n        Professional vibration analysis and field balancing instruments for turbomachinery. Used in 50+ countries.\n    <\/div>\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\n<\/div>\n\n<footer class=\"vc-footer\">\n    <p>\u00a9 2024\u20132025 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p>\n    <p style=\"font-size:12px;margin-top:4px;\">Based on cantilever beam theory and Campbell diagram analysis. Last updated: June 2025<\/p>\n    <div class=\"vc-footer-links\">\n        <a href=\"\/calculators\/engineering-calculators\/\">All Calculators<\/a>\n        <a href=\"https:\/\/vibromera.eu\/contacts\/\">Contact<\/a>\n    <\/div>\n<\/footer>\n\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.js\"><\/script>\n<script>\n(function(){\n    'use strict';\n    function $(id){ return document.getElementById(id); }\n    function fmt(n,d){ if(isNaN(n)||!isFinite(n)) return '\u2014'; var f=n.toFixed(d===undefined?2:d); return f.replace(\/(\\.\\d*?)0+$\/,'$1').replace(\/\\.$\/,''); }\n\n    var materials = {\n        steel: { E: 200e9, rho: 7850 },\n        titanium: { E: 114e9, rho: 4430 },\n        inconel: { E: 205e9, rho: 8190 },\n        aluminum: { E: 72e9, rho: 2810 },\n        custom: { E: 200e9, rho: 7850 }\n    };\n\n    \/\/ Cantilever eigenvalues\n    var lambdas = [1.8751, 4.6941, 7.8548];\n    var modeRatios = [1, 6.267, 17.55];\n\n    \/\/ Harmonic line colors\n    var harmColors = ['#c85a2a','#2a5c8c','#2a7a4b','#a67c00','#8a4090','#b91c1c','#1a7a7a','#555','#888','#aaa','#bbb','#ccc'];\n\n    function drawCampbell(f1, rpmMin, rpmMax, nBlades) {\n        var svg = $('vc-campbell');\n        var W = 700, H = 450, pad = { l:65, r:30, t:30, b:55 };\n        var pw = W - pad.l - pad.r, ph = H - pad.t - pad.b;\n\n        var rMax = rpmMax * 1.15;\n        var fMax = Math.max(f1 * 1.8, rpmMax \/ 60 * 12 * 0.3, f1 * modeRatios[1] * 0.15);\n        if (fMax < f1 * 1.5) fMax = f1 * 1.5;\n\n        function sx(r) { return pad.l + (r \/ rMax) * pw; }\n        function sy(f) { return pad.t + ph - (f \/ fMax) * ph; }\n\n        var html = '<rect width=\"' + W + '\" height=\"' + H + '\" fill=\"var(--vc-surface)\" rx=\"4\"\/>';\n\n        \/\/ Operating speed range band\n        html += '<rect x=\"' + sx(rpmMin) + '\" y=\"' + pad.t + '\" width=\"' + (sx(rpmMax) - sx(rpmMin)) + '\" height=\"' + ph + '\" fill=\"rgba(200,90,42,0.06)\" stroke=\"var(--vc-accent)\" stroke-width=\"1\" stroke-dasharray=\"4,4\"\/>';\n        html += '<text x=\"' + ((sx(rpmMin) + sx(rpmMax)) \/ 2) + '\" y=\"' + (pad.t + 16) + '\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--vc-accent)\" font-weight=\"600\" font-family=\"var(--vc-mono)\">Operating Range<\/text>';\n\n        \/\/ Grid\n        for (var i = 0; i <= 5; i++) {\n            var gf = fMax * i \/ 5;\n            html += '<line x1=\"' + pad.l + '\" y1=\"' + sy(gf) + '\" x2=\"' + (W - pad.r) + '\" y2=\"' + sy(gf) + '\" stroke=\"var(--vc-border-light)\" stroke-width=\"1\"\/>';\n            html += '<text x=\"' + (pad.l - 8) + '\" y=\"' + (sy(gf) + 4) + '\" text-anchor=\"end\" font-size=\"10\" fill=\"var(--vc-ink-muted)\" font-family=\"var(--vc-mono)\">' + fmt(gf, 0) + '<\/text>';\n        }\n        for (var i = 0; i <= 5; i++) {\n            var gr = rMax * i \/ 5;\n            html += '<line x1=\"' + sx(gr) + '\" y1=\"' + pad.t + '\" x2=\"' + sx(gr) + '\" y2=\"' + (H - pad.b) + '\" stroke=\"var(--vc-border-light)\" stroke-width=\"1\"\/>';\n            html += '<text x=\"' + sx(gr) + '\" y=\"' + (H - pad.b + 16) + '\" text-anchor=\"middle\" font-size=\"10\" fill=\"var(--vc-ink-muted)\" font-family=\"var(--vc-mono)\">' + fmt(gr, 0) + '<\/text>';\n        }\n\n        \/\/ Axis labels\n        html += '<text x=\"' + (pad.l + pw \/ 2) + '\" y=\"' + (H - 5) + '\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--vc-ink-secondary)\" font-family=\"var(--vc-font)\">Rotor Speed (RPM)<\/text>';\n        html += '<text x=\"14\" y=\"' + (pad.t + ph \/ 2) + '\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--vc-ink-secondary)\" font-family=\"var(--vc-font)\" transform=\"rotate(-90,14,' + (pad.t + ph \/ 2) + ')\">Frequency (Hz)<\/text>';\n\n        \/\/ Natural frequency lines (horizontal)\n        var freqs = [f1, f1 * modeRatios[1], f1 * modeRatios[2]];\n        var freqLabels = ['f\u2081', 'f\u2082', 'f\u2083'];\n        for (var m = 0; m < 3; m++) {\n            if (freqs[m] <= fMax) {\n                html += '<line x1=\"' + pad.l + '\" y1=\"' + sy(freqs[m]) + '\" x2=\"' + (W - pad.r) + '\" y2=\"' + sy(freqs[m]) + '\" stroke=\"var(--vc-accent)\" stroke-width=\"2\"\/>';\n                html += '<text x=\"' + (W - pad.r + 4) + '\" y=\"' + (sy(freqs[m]) + 4) + '\" font-size=\"11\" fill=\"var(--vc-accent)\" font-weight=\"600\" font-family=\"var(--vc-mono)\">' + freqLabels[m] + '<\/text>';\n            }\n        }\n\n        \/\/ Harmonic lines (diagonal: f = n \u00d7 RPM \/ 60)\n        var crossings = [];\n        var maxHarm = 12;\n        for (var n = 1; n <= maxHarm; n++) {\n            var fAtMax = n * rMax \/ 60;\n            if (fAtMax < fMax * 0.05 && n > 1) continue; \/\/ skip if line barely shows\n            var y0 = sy(0), y1 = sy(fAtMax);\n            var opacity = n <= 6 ? 0.7 : 0.35;\n            html += '<line x1=\"' + sx(0) + '\" y1=\"' + y0 + '\" x2=\"' + sx(rMax) + '\" y2=\"' + y1 + '\" stroke=\"' + harmColors[Math.min(n - 1, harmColors.length - 1)] + '\" stroke-width=\"1.5\" opacity=\"' + opacity + '\"\/>';\n            \/\/ Label\n            var labelX = sx(rMax) - 2;\n            var labelY = y1 + 4;\n            if (fAtMax <= fMax) {\n                html += '<text x=\"' + labelX + '\" y=\"' + labelY + '\" text-anchor=\"end\" font-size=\"9\" fill=\"' + harmColors[Math.min(n - 1, harmColors.length - 1)] + '\" font-family=\"var(--vc-mono)\">' + n + '\u00d7<\/text>';\n            }\n\n            \/\/ Check crossings with f1 within speed range\n            \/\/ n \u00d7 RPM\/60 = f1 \u2192 RPM = f1 \u00d7 60 \/ n\n            for (var m = 0; m < 3; m++) {\n                var crossRPM = freqs[m] * 60 \/ n;\n                if (crossRPM >= rpmMin && crossRPM <= rpmMax && freqs[m] <= fMax) {\n                    crossings.push({ harmonic: n, mode: m + 1, rpm: crossRPM, freq: freqs[m] });\n                    html += '<circle cx=\"' + sx(crossRPM) + '\" cy=\"' + sy(freqs[m]) + '\" r=\"6\" fill=\"none\" stroke=\"var(--vc-red)\" stroke-width=\"2.5\"\/>';\n                    html += '<circle cx=\"' + sx(crossRPM) + '\" cy=\"' + sy(freqs[m]) + '\" r=\"3\" fill=\"var(--vc-red)\"\/>';\n                }\n            }\n        }\n\n        svg.innerHTML = html;\n        return crossings;\n    }\n\n    function calculate() {\n        var L_mm = parseFloat($('vc-length').value);\n        var h_mm = parseFloat($('vc-thick').value);\n        var b_mm = parseFloat($('vc-width').value);\n        var matKey = $('vc-material').value;\n        var nBlades = parseInt($('vc-nblades').value);\n        var rpmMin = parseFloat($('vc-rpmmin').value);\n        var rpmMax = parseFloat($('vc-rpmmax').value);\n\n        $('vc-E-field').style.display = matKey === 'custom' ? 'flex' : 'none';\n        $('vc-rho-field').style.display = matKey === 'custom' ? 'flex' : 'none';\n\n        var E = matKey === 'custom' ? parseFloat($('vc-E').value) * 1e9 : materials[matKey].E;\n        var rho = matKey === 'custom' ? parseFloat($('vc-rho').value) : materials[matKey].rho;\n\n        if (!L_mm || !h_mm || !b_mm || !E || !rho || !nBlades || isNaN(rpmMin) || isNaN(rpmMax)) {\n            $('vc-results').classList.remove('vc-visible');\n            return;\n        }\n\n        var L = L_mm \/ 1000; \/\/ m\n        var h = h_mm \/ 1000;\n        var b = b_mm \/ 1000;\n\n        \/\/ I = b*h^3\/12, A = b*h\n        var I = b * h * h * h \/ 12;\n        var A = b * h;\n\n        \/\/ f_n = (lambda_n^2 \/ (2*pi)) * sqrt(E*I \/ (rho*A*L^4))\n        var coeff = Math.sqrt(E * I \/ (rho * A * L * L * L * L));\n        var f1 = (lambdas[0] * lambdas[0] \/ (2 * Math.PI)) * coeff;\n        var f2 = (lambdas[1] * lambdas[1] \/ (2 * Math.PI)) * coeff;\n        var f3 = (lambdas[2] * lambdas[2] \/ (2 * Math.PI)) * coeff;\n\n        \/\/ Blade passing frequency\n        var bpf = nBlades * rpmMax \/ 60;\n\n        \/\/ Display\n        $('vc-r-f1').innerHTML = fmt(f1, 1) + ' <span class=\"vc-rcard-unit\">Hz<\/span>';\n        $('vc-r-f2').innerHTML = fmt(f2, 1) + ' <span class=\"vc-rcard-unit\">Hz<\/span>';\n        $('vc-r-f3').innerHTML = fmt(f3, 1) + ' <span class=\"vc-rcard-unit\">Hz<\/span>';\n        $('vc-r-bpf').innerHTML = fmt(bpf, 0) + ' <span class=\"vc-rcard-unit\">Hz<\/span> <span class=\"vc-rcard-unit\">(' + nBlades + ' blades \u00d7 ' + fmt(rpmMax, 0) + ' RPM)<\/span>';\n\n        \/\/ Draw Campbell and get crossings\n        var crossings = drawCampbell(f1, rpmMin, rpmMax, nBlades);\n\n        var card = $('vc-r-crossing-card');\n        if (crossings.length === 0) {\n            $('vc-r-crossings').innerHTML = '<span style=\"color:var(--vc-green)\">None<\/span> <span class=\"vc-rcard-unit\">\u2014 no resonance risk in speed range<\/span>';\n            card.className = 'vc-rcard vc-rcard-good';\n        } else {\n            var desc = crossings.map(function(c) {\n                return c.harmonic + '\u00d7 at ' + fmt(c.rpm, 0) + ' RPM (mode ' + c.mode + ')';\n            }).join(', ');\n            $('vc-r-crossings').innerHTML = '<span style=\"color:var(--vc-red)\">' + crossings.length + ' crossing' + (crossings.length > 1 ? 's' : '') + '<\/span> <span class=\"vc-rcard-unit\">' + desc + '<\/span>';\n            card.className = 'vc-rcard vc-rcard-bad';\n        }\n\n        $('vc-results').classList.add('vc-visible');\n    }\n\n    \/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-preset-btn').forEach(function(btn) {\n        btn.addEventListener('click', function(e) {\n            e.preventDefault();\n            $('vc-length').value = this.getAttribute('data-l');\n            $('vc-thick').value = this.getAttribute('data-t');\n            $('vc-width').value = this.getAttribute('data-w');\n            $('vc-material').value = this.getAttribute('data-m');\n            $('vc-nblades').value = this.getAttribute('data-n');\n            $('vc-rpmmin').value = this.getAttribute('data-rmin');\n            $('vc-rpmmax').value = this.getAttribute('data-rmax');\n            calculate();\n        });\n    });\n\n    $('vc-form').addEventListener('input', calculate);\n    $('vc-form').addEventListener('change', calculate);\n\n    \/* \u2500\u2500 COPY \u2500\u2500 *\/\n    $('vc-copy-btn').addEventListener('click', function() {\n        var text = 'Turbine Blade Frequency & Campbell Check\\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'Blade: ' + $('vc-length').value + '\u00d7' + $('vc-thick').value + '\u00d7' + $('vc-width').value + ' mm\\n' +\n            'Material: ' + $('vc-material').options[$('vc-material').selectedIndex].text + '\\n' +\n            'Speed Range: ' + $('vc-rpmmin').value + '\u2013' + $('vc-rpmmax').value + ' RPM\\n' +\n            'f\u2081: ' + $('vc-r-f1').textContent + '\\n' +\n            'f\u2082: ' + $('vc-r-f2').textContent + '\\n' +\n            'Crossings: ' + $('vc-r-crossings').textContent + '\\n' +\n            'BPF: ' + $('vc-r-bpf').textContent + '\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\nvibromera.eu\/calculators\/turbine-blade-frequency-calculator\/';\n        if (navigator.clipboard) {\n            navigator.clipboard.writeText(text).then(function() {\n                var btn = $('vc-copy-btn'); btn.classList.add('vc-copied');\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!';\n                setTimeout(function() { btn.classList.remove('vc-copied'); 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'; }, 2000);\n            });\n        }\n    });\n\n    \/* \u2500\u2500 SECTIONS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            var s = this.closest('.vc-section'); s.classList.toggle('vc-open');\n            this.setAttribute('aria-expanded', s.classList.contains('vc-open'));\n        });\n    });\n\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\n    var faqData = [\n        { q: 'What is a Campbell diagram?', a: '<p>A Campbell diagram (also called an interference diagram) plots blade natural frequencies as horizontal lines and engine order excitation frequencies as diagonal lines (f = n \u00d7 RPM\/60). Intersections within the operating speed range indicate potential resonance conditions that must be avoided.<\/p>' },\n        { q: 'Why is the cantilever beam model used?', a: '<p>The cantilever beam model provides a good first approximation for turbine blade natural frequencies. The blade root is essentially fixed, and the free end vibrates. For preliminary design and quick checks, this analytical model gives results within 10\u201320% of FEA for simple blade geometries.<\/p>' },\n        { q: 'What is the minimum separation margin?', a: '<p>A minimum 10% separation margin between natural frequencies and excitation frequencies at the design speed is typically required. Some codes and manufacturers require 15% or even 20% for critical applications. If a crossing falls within the operating range, the blade design must be modified.<\/p>' },\n        { q: 'What causes blade excitation?', a: '<p>Common excitation sources include:<\/p><ul><li><strong>Nozzle passing<\/strong> \u2014 number of nozzle vanes \u00d7 RPM\/60<\/li><li><strong>Rotor harmonics<\/strong> \u2014 1\u00d7, 2\u00d7, 3\u00d7 running speed<\/li><li><strong>Upstream wakes<\/strong> \u2014 from struts, bearings, combustors<\/li><li><strong>Partial admission<\/strong> \u2014 arc of admission in impulse stages<\/li><\/ul>' },\n        { q: 'How does centrifugal stiffening affect frequency?', a: '<p>At higher rotational speeds, centrifugal forces increase the effective stiffness of the blade, raising its natural frequency. This is why Campbell diagram lines for real blades curve upward slightly (not perfectly horizontal). This calculator uses a simplified model without centrifugal stiffening.<\/p>' }\n    ];\n    var faqList = $('vc-faq-list');\n    faqData.forEach(function(faq) { 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>'; });\n    faqList.addEventListener('click', function(e) { var btn = e.target.closest('.vc-faq-q'); if (btn) btn.closest('.vc-faq-item').classList.toggle('vc-open'); });\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas() {\n        try {\n            katex.render('f_n = \\\\frac{\\\\lambda_n^2}{2\\\\pi} \\\\sqrt{\\\\frac{EI}{\\\\rho A L^4}} \\\\quad \\\\text{where } I = \\\\frac{bh^3}{12}, \\\\; A = bh', $('vc-katex-1'), { displayMode: true, throwOnError: false });\n            katex.render('f_{\\\\text{excitation}} = n \\\\times \\\\frac{\\\\text{RPM}}{60} \\\\quad (n = 1, 2, 3, \\\\ldots \\\\text{engine order})', $('vc-katex-2'), { displayMode: true, throwOnError: false });\n        } catch (e) {}\n    }\n\n    function init() { renderFormulas(); calculate(); }\n    if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Gratis kalkulator for naturlig frekvens for turbinblader p\u00e5 nett med Campbell-diagramsjekk. Beregn f\u00f8rstemodusfrekvens, sjekk harmoniske kryssinger og identifiser resonansrisikoer i hele driftshastighetsomr\u00e5det.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100270","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator\/100270","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":3,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator\/100270\/revisions"}],"predecessor-version":[{"id":100910,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator\/100270\/revisions\/100910"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/media?parent=100270"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/categories?post=100270"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/tags?post=100270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}