{"id":100210,"date":"2026-02-15T20:27:34","date_gmt":"2026-02-15T20:27:34","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100210"},"modified":"2026-02-15T20:27:34","modified_gmt":"2026-02-15T20:27:34","slug":"rotor-critical-speed","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/uz\/calculators\/rotor-critical-speed\/","title":{"rendered":"Rotor Kritik Tezlik Kalkulyatori | Val Tabiiy Chastotasi"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Rotor Critical Speed Calculator\",\"alternateName\":[\"Shaft Natural Frequency Calculator\",\"Critical RPM Calculator\"],\"description\":\"Free online engineering calculator for rotor critical speed and shaft natural frequency. Supports simply supported, cantilever, and fixed-fixed shafts with central or distributed mass.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/rotor-critical-speed\/\",\"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-02-14\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"Simply supported, cantilever, fixed-fixed supports\",\"Central mass and Rayleigh distributed mass\",\"Steel, stainless, aluminum, custom modulus\",\"Operating speed margin comparison\",\"Auto-calculation on input change\",\"URL parameter sharing\"],\"keywords\":\"critical speed, natural frequency, rotor dynamics, shaft bending, Rayleigh method\"}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"What is critical speed?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Critical speed is the rotational speed at which a shaft's rotational frequency equals one of its natural bending frequencies, causing resonance. At critical speed, even small unbalance produces large vibrations that can damage bearings, seals, and the shaft itself.\"}},\n{\"@type\":\"Question\",\"name\":\"Why avoid operating near critical speed?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Operating near critical speed amplifies vibrations exponentially due to resonance. The standard practice is to operate at least 20\u201330% below or above the critical speed. The region within \u00b120% of critical speed is called the critical speed band and should be avoided.\"}},\n{\"@type\":\"Question\",\"name\":\"How to raise critical speed?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Critical speed can be raised by increasing shaft diameter (raises stiffness by d\u2074), using a stiffer material (higher E modulus), reducing shaft length, reducing rotor mass, or changing support conditions from simply supported to fixed-fixed.\"}},\n{\"@type\":\"Question\",\"name\":\"What is the difference between rigid and flexible rotor?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A rigid rotor operates well below its first critical speed (typically below 70% of Ncr). A flexible rotor operates above its first critical speed and must pass through resonance during run-up and coast-down. Flexible rotors require more careful balancing.\"}},\n{\"@type\":\"Question\",\"name\":\"What safety margin is recommended?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"API 610 and API 617 recommend that the first critical speed be at least 20% above the maximum continuous operating speed (for rigid rotors) or that operating speed be at least 15\u201320% above the critical speed (for flexible rotors passing through resonance).\"}}\n]}\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\":\"Rotor Critical Speed Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/rotor-critical-speed\/\"}\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 {\n    --vc-bg: #f4f1ec;\n    --vc-surface: #ffffff;\n    --vc-surface-alt: #f8f6f2;\n    --vc-ink: #1a1a1a;\n    --vc-ink-secondary: #5a5650;\n    --vc-ink-muted: #8a857e;\n    --vc-accent: #c85a2a;\n    --vc-accent-hover: #b04d22;\n    --vc-accent-light: #fdf0ea;\n    --vc-blue: #2a5c8c;\n    --vc-blue-light: #eaf1f8;\n    --vc-green: #2a7a4b;\n    --vc-green-light: #eaf8ef;\n    --vc-yellow: #a67c00;\n    --vc-yellow-light: #fef9e8;\n    --vc-red: #b91c1c;\n    --vc-red-light: #fef2f2;\n    --vc-border: #d9d4cc;\n    --vc-border-light: #e8e4dd;\n    --vc-shadow: 0 1px 3px rgba(26,26,26,0.06), 0 4px 12px rgba(26,26,26,0.04);\n    --vc-shadow-lg: 0 4px 12px rgba(26,26,26,0.08), 0 16px 40px rgba(26,26,26,0.06);\n    --vc-radius: 8px;\n    --vc-radius-lg: 12px;\n    --vc-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    --vc-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace;\n    --vc-display: 'Fraunces', Georgia, serif;\n}\n\n.vc-calculator {\n    font-family: var(--vc-font);\n    font-size: 15px;\n    line-height: 1.65;\n    color: var(--vc-ink);\n    max-width: 960px;\n    margin: 0 auto;\n    padding: 20px 16px 40px;\n    -webkit-font-smoothing: antialiased;\n}\n.vc-calculator *, .vc-calculator *::before, .vc-calculator *::after { box-sizing: border-box; }\n\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\n.vc-header { text-align: center; padding: 48px 24px 40px; position: relative; }\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; }\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:600px; }\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\n\/* \u2500\u2500 CARD \u2500\u2500 *\/\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\n\/* \u2500\u2500 FORM \u2500\u2500 *\/\n.vc-form { padding:24px; }\n.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; }\n.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\n\/* \u2500\u2500 PRESETS \u2500\u2500 *\/\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\n\/* \u2500\u2500 RESULTS \u2500\u2500 *\/\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:2000px; 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\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\n\/* \u2500\u2500 MARGIN INDICATOR \u2500\u2500 *\/\n.vc-margin-ok { color: var(--vc-green); }\n.vc-margin-warn { color: var(--vc-yellow); }\n.vc-margin-danger { color: var(--vc-red); }\n\n\/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\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\n\/* \u2500\u2500 THEORY \u2500\u2500 *\/\n.vc-theory h3 { font-family:var(--vc-display); font-size:17px; font-weight:700; color:var(--vc-ink); margin:28px 0 10px; }\n.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, .vc-theory ol { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 12px 18px; padding:0; }\n.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\n\/* \u2500\u2500 FAQ \u2500\u2500 *\/\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; }\n.vc-faq-a-inner p:last-child { margin-bottom:0; }\n.vc-faq-a-inner ul { margin:4px 0 8px 16px; padding:0; }\n.vc-faq-a-inner li { margin-bottom:3px; }\n\n\/* \u2500\u2500 RELATED \u2500\u2500 *\/\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\n\/* \u2500\u2500 PROMO \u2500\u2500 *\/\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); }\n.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\n\/* \u2500\u2500 FOOTER \u2500\u2500 *\/\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; }\n.vc-footer a:hover { text-decoration:underline; }\n.vc-footer-links { margin-top:8px; font-size:12px; }\n.vc-footer-links a { margin:0 8px; }\n\n\/* \u2500\u2500 PRINT \u2500\u2500 *\/\n@media print {\n    .vc-section-body { max-height:none!important; }\n    .vc-faq-a { max-height:none!important; }\n    .vc-results { max-height:none!important; padding:24px!important; }\n    .vc-copy-btn, .vc-section-chevron, .vc-faq-chevron, .vc-presets, .vc-promo { display:none!important; }\n}\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-rotor-critical-speed\">\n\n<!-- Header -->\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool \u2014 #009<\/p>\n    <h1 class=\"vc-header-title\">Rotor Critical Speed Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Calculate the first critical speed (natural frequency) of a shaft with central mass or distributed mass using the Rayleigh method. Compare with operating RPM for safety margin.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">Central Mass<\/span>\n        <span class=\"vc-badge\">Rayleigh Method<\/span>\n        <span class=\"vc-badge\">3 Support Types<\/span>\n    <\/div>\n<\/header>\n\n<!-- Calculator Card -->\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\">Shaft Length L <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. 800\" value=\"800\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-diameter\">Shaft Diameter d <span class=\"vc-label-hint\">(mm)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-diameter\" inputmode=\"decimal\" step=\"any\" min=\"1\" placeholder=\"e.g. 50\" value=\"50\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-mass\">Rotor Mass m <span class=\"vc-label-hint\">(kg)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-mass\" inputmode=\"decimal\" step=\"any\" min=\"0.001\" placeholder=\"e.g. 30\" value=\"30\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-material\">Material (E Modulus)<\/label>\n                <select class=\"vc-select\" id=\"vc-material\">\n                    <option value=\"210\" selected>Steel \u2014 210 GPa<\/option>\n                    <option value=\"193\">Stainless Steel \u2014 193 GPa<\/option>\n                    <option value=\"69\">Aluminum \u2014 69 GPa<\/option>\n                    <option value=\"custom\">Custom\u2026<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"vc-field\" id=\"vc-custom-e-field\" style=\"display:none;\">\n                <label class=\"vc-label\" for=\"vc-custom-e\">Custom E Modulus <span class=\"vc-label-hint\">(GPa)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-custom-e\" inputmode=\"decimal\" step=\"any\" min=\"1\" placeholder=\"e.g. 115\" value=\"115\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-support\">Support Type<\/label>\n                <select class=\"vc-select\" id=\"vc-support\">\n                    <option value=\"ss\" selected>Simply Supported (pinned-pinned)<\/option>\n                    <option value=\"cantilever\">Cantilever (fixed-free)<\/option>\n                    <option value=\"ff\">Fixed-Fixed (clamped-clamped)<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-op-speed\">Operating Speed <span class=\"vc-label-hint\">(RPM, optional)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-op-speed\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 3000\">\n            <\/div>\n        <\/div>\n\n        <!-- Presets -->\n        <div class=\"vc-presets\">\n            <div class=\"vc-presets-label\">Quick presets<\/div>\n            <button type=\"button\" class=\"vc-preset-btn\" data-l=\"800\" data-d=\"50\" data-m=\"30\" data-mat=\"210\" data-sup=\"ss\">Pump shaft \u00d850\u00d7800mm 30kg steel<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-l=\"1500\" data-d=\"80\" data-m=\"100\" data-mat=\"210\" data-sup=\"ss\">Fan shaft \u00d880\u00d71500mm 100kg<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-l=\"500\" data-d=\"40\" data-m=\"15\" data-mat=\"210\" data-sup=\"ss\">Motor \u00d840\u00d7500mm 15kg<\/button>\n        <\/div>\n    <\/form>\n\n    <!-- Results -->\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\">Critical Speed (Central Mass)<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-ncr\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Natural Frequency<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-freq\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Angular Frequency \u03c9_n<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-omega\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Moment of Inertia I<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-inertia\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Shaft Stiffness k<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-stiffness\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Operating Speed Margin<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-margin\">\u2014<\/div>\n            <\/div>\n        <\/div>\n        <div class=\"vc-viz\" id=\"vc-viz\" style=\"text-align:center;margin:16px 0 8px\"><\/div>\n    <\/div>\n<\/div>\n\n<!-- Theory & Reference -->\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>Second Moment of Area<\/h3>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n\n            <h3>Central Mass \u2014 Simply Supported<\/h3>\n            <p>For a shaft with a concentrated mass <strong>m<\/strong> at mid-span and simply supported ends:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n            <div class=\"vc-formula-box\" id=\"vc-katex-3\"><\/div>\n\n            <h3>Support Condition Factors<\/h3>\n            <p>The stiffness coefficient <em>k<\/em> changes with support type:<\/p>\n            <table class=\"vc-table\">\n                <thead><tr><th>Support<\/th><th>Stiffness k<\/th><th>Factor vs SS<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>Simply Supported (central load)<\/td><td>48EI \/ L\u00b3<\/td><td>1.00<\/td><\/tr>\n                    <tr><td>Fixed-Fixed (central load)<\/td><td>192EI \/ L\u00b3<\/td><td>4.00<\/td><\/tr>\n                    <tr><td>Cantilever (end load)<\/td><td>3EI \/ L\u00b3<\/td><td>0.0625<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n\n            <h3>Practical Example<\/h3>\n            <div class=\"vc-example-box\">\n                <div class=\"vc-example-title\">Example \u2014 Pump Shaft<\/div>\n                <p><strong>Given:<\/strong> L = 800 mm, d = 50 mm, m = 30 kg, Steel E = 210 GPa, Simply Supported<\/p>\n                <p>I = \u03c0 \u00d7 50\u2074 \/ 64 = 306,796 mm\u2074<\/p>\n                <p>k = 48 \u00d7 210,000 \u00d7 306,796 \/ 800\u00b3 = 6,029 N\/mm<\/p>\n                <p>\u03c9_n = \u221a(6,029,000 \/ 30) = 448.2 rad\/s<\/p>\n                <p>N_cr = 448.2 \u00d7 60 \/ (2\u03c0) = <strong>4,280 RPM<\/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 simplified model assumes a massless shaft with a single concentrated mass. For more accurate results on heavy shafts, consider the Rayleigh or Dunkerley methods that account for distributed shaft mass.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Related Calculators -->\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\/residual-unbalance-iso1940\/\">Residual Unbalance (ISO 1940)<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/influence-coefficient-calculator\/\">Influence Coefficient<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/correction-mass-decomposition\/\">Correction Mass Decomposition<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/blade-correction-calculator\/\">Blade Correction Calculator<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/trial-weight-calculator\/\">Trial Weight Calculator<\/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<!-- Promo -->\n<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\">\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\n        Professional field balancing instruments and software. Measure vibration, find critical speeds, and balance rotors on-site. 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 -->\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;\">Rotor dynamics \u2014 central mass &amp; Rayleigh method. Last updated: February 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\n    var SLUG = 'rotor-critical-speed';\n\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    function fmtInt(n) { if (isNaN(n) || !isFinite(n)) return '\u2014'; return Math.round(n).toLocaleString('en-US'); }\n\n    \/* \u2500\u2500 MATERIAL TOGGLE \u2500\u2500 *\/\n    $('vc-material').addEventListener('change', function() {\n        $('vc-custom-e-field').style.display = this.value === 'custom' ? '' : 'none';\n        calculate();\n    });\n\n    \/* \u2500\u2500 CALCULATION \u2500\u2500 *\/\n    function calculate() {\n        var L_mm = parseFloat($('vc-length').value);\n        var d_mm = parseFloat($('vc-diameter').value);\n        var m_kg = parseFloat($('vc-mass').value);\n        var matVal = $('vc-material').value;\n        var E_GPa = matVal === 'custom' ? parseFloat($('vc-custom-e').value) : parseFloat(matVal);\n        var support = $('vc-support').value;\n        var opSpeed = parseFloat($('vc-op-speed').value);\n\n        if (!L_mm || L_mm <= 0 || !d_mm || d_mm <= 0 || !m_kg || m_kg <= 0 || !E_GPa || E_GPa <= 0) {\n            $('vc-results').classList.remove('vc-visible');\n            return;\n        }\n\n        \/\/ Convert to SI: m, Pa, kg\n        var L = L_mm \/ 1000;       \/\/ m\n        var d = d_mm \/ 1000;       \/\/ m\n        var E = E_GPa * 1e9;       \/\/ Pa\n\n        \/\/ Second moment of area I = \u03c0 d\u2074 \/ 64\n        var I = Math.PI * Math.pow(d, 4) \/ 64;  \/\/ m\u2074\n        var I_mm4 = Math.PI * Math.pow(d_mm, 4) \/ 64; \/\/ mm\u2074\n\n        \/\/ Stiffness k depending on support\n        var k; \/\/ N\/m\n        var kLabel;\n        if (support === 'ss') {\n            k = 48 * E * I \/ Math.pow(L, 3);\n            kLabel = '48EI\/L\u00b3';\n        } else if (support === 'ff') {\n            k = 192 * E * I \/ Math.pow(L, 3);\n            kLabel = '192EI\/L\u00b3';\n        } else { \/\/ cantilever\n            k = 3 * E * I \/ Math.pow(L, 3);\n            kLabel = '3EI\/L\u00b3';\n        }\n\n        \/\/ Natural frequency\n        var omega_n = Math.sqrt(k \/ m_kg); \/\/ rad\/s\n        var f_cr = omega_n \/ (2 * Math.PI); \/\/ Hz\n        var N_cr = f_cr * 60; \/\/ RPM\n\n        \/\/ Display\n        $('vc-r-ncr').innerHTML = fmtInt(N_cr) + ' <span class=\"vc-rcard-unit\">RPM<\/span>';\n        $('vc-r-freq').innerHTML = fmt(f_cr, 1) + ' <span class=\"vc-rcard-unit\">Hz<\/span>';\n        $('vc-r-omega').innerHTML = fmt(omega_n, 1) + ' <span class=\"vc-rcard-unit\">rad\/s<\/span>';\n        $('vc-r-inertia').innerHTML = fmt(I_mm4, 0) + ' <span class=\"vc-rcard-unit\">mm\u2074<\/span>';\n\n        \/\/ Stiffness in N\/mm for display\n        var k_Nmm = k \/ 1000;\n        $('vc-r-stiffness').innerHTML = fmt(k_Nmm, 1) + ' <span class=\"vc-rcard-unit\">N\/mm<\/span>';\n\n        \/\/ Operating speed margin\n        if (opSpeed && opSpeed > 0) {\n            var margin = ((N_cr - opSpeed) \/ opSpeed) * 100;\n            var marginClass = '';\n            var marginNote = '';\n            if (Math.abs(margin) < 20) {\n                marginClass = 'vc-margin-danger';\n                marginNote = ' \u26a0 DANGER ZONE';\n            } else if (Math.abs(margin) < 40) {\n                marginClass = 'vc-margin-warn';\n                marginNote = ' \u2014 Caution';\n            } else {\n                marginClass = 'vc-margin-ok';\n                marginNote = ' \u2014 OK';\n            }\n            var ratio = opSpeed \/ N_cr;\n            $('vc-r-margin').innerHTML = '<span class=\"' + marginClass + '\">' + (margin > 0 ? '+' : '') + fmt(margin, 1) + '%' + marginNote + '<\/span><br><span class=\"vc-rcard-unit\">N\/N_cr = ' + fmt(ratio, 3) + '<\/span>';\n        } else {\n            $('vc-r-margin').innerHTML = '<span class=\"vc-rcard-unit\">Enter operating RPM<\/span>';\n        }\n\n        $('vc-results').classList.add('vc-visible');\n        drawViz(support, N_cr, opSpeed);\n\n        \/\/ URL params\n        var u = new URL(window.location);\n        u.searchParams.set('L', L_mm);\n        u.searchParams.set('d', d_mm);\n        u.searchParams.set('m', m_kg);\n        u.searchParams.set('E', E_GPa);\n        u.searchParams.set('support', support);\n        if (opSpeed) u.searchParams.set('opspeed', opSpeed);\n        history.replaceState(null, '', u.toString());\n\n        saveHistory({\n            L: L_mm, d: d_mm, m: m_kg, E: E_GPa, support: support,\n            _summary: '\u00d8' + d_mm + '\u00d7' + L_mm + 'mm, ' + m_kg + 'kg \u2192 ' + fmtInt(N_cr) + ' RPM'\n        });\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-diameter').value = this.getAttribute('data-d');\n            $('vc-mass').value = this.getAttribute('data-m');\n            $('vc-material').value = this.getAttribute('data-mat');\n            $('vc-support').value = this.getAttribute('data-sup');\n            $('vc-custom-e-field').style.display = 'none';\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 AUTO-CALCULATE \u2500\u2500 *\/\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 = 'Rotor Critical Speed Calculation\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'Shaft: \u00d8' + $('vc-diameter').value + ' \u00d7 ' + $('vc-length').value + ' mm\\n' +\n            'Mass: ' + $('vc-mass').value + ' kg\\n' +\n            'Support: ' + $('vc-support').options[$('vc-support').selectedIndex].text + '\\n' +\n            'Critical Speed: ' + $('vc-r-ncr').textContent + '\\n' +\n            'Frequency: ' + $('vc-r-freq').textContent + '\\n' +\n            'Stiffness: ' + $('vc-r-stiffness').textContent + '\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'vibromera.eu\/calculators\/rotor-critical-speed\/';\n\n        if (navigator.clipboard) {\n            navigator.clipboard.writeText(text).then(function() {\n                var btn = $('vc-copy-btn');\n                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() {\n                    btn.classList.remove('vc-copied');\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';\n                }, 2000);\n            });\n        }\n    });\n\n    \/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            var section = this.closest('.vc-section');\n            var isOpen = section.classList.contains('vc-open');\n            section.classList.toggle('vc-open');\n            this.setAttribute('aria-expanded', !isOpen);\n        });\n    });\n\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\n    var faqData = [\n        { q: 'What is critical speed?', a: '<p>Critical speed is the rotational speed at which a shaft\\'s rotational frequency matches one of its natural bending frequencies, causing <strong>resonance<\/strong>. At critical speed, even tiny unbalance forces are amplified dramatically, leading to dangerous vibration levels.<\/p><p>Every rotating shaft has one or more critical speeds. The first (lowest) critical speed is the most important for design purposes.<\/p>' },\n        { q: 'Why avoid operating near critical speed?', a: '<p>Operating near critical speed causes:<\/p><ul><li>Exponential amplification of vibration from unbalance<\/li><li>Excessive bearing loads and premature failure<\/li><li>Shaft deflection beyond elastic limits<\/li><li>Seal damage and oil leakage<\/li><li>Risk of catastrophic shaft failure<\/li><\/ul><p>The industry standard is to maintain at least a <strong>20% margin<\/strong> between operating speed and any critical speed.<\/p>' },\n        { q: 'How to raise critical speed?', a: '<p>Critical speed can be increased by:<\/p><ul><li><strong>Increasing shaft diameter<\/strong> \u2014 stiffness scales with d\u2074, very effective<\/li><li><strong>Reducing shaft length<\/strong> \u2014 stiffness scales with 1\/L\u00b3<\/li><li><strong>Using stiffer material<\/strong> \u2014 higher E modulus<\/li><li><strong>Reducing rotor mass<\/strong> \u2014 lighter rotor = higher frequency<\/li><li><strong>Changing supports<\/strong> \u2014 fixed-fixed is 4\u00d7 stiffer than simply supported<\/li><\/ul>' },\n        { q: 'What is the difference between a rigid and flexible rotor?', a: '<p>A <strong>rigid rotor<\/strong> operates well below its first critical speed (N_op < 0.7 \u00d7 N_cr). It can be balanced at low speed in a balancing machine.<\/p><p>A <strong>flexible rotor<\/strong> operates above its first critical speed and must pass through resonance during startup. It requires high-speed balancing and may need modal balancing at multiple speeds.<\/p>' },\n        { q: 'What safety margin is recommended?', a: '<p>Common standards recommend:<\/p><ul><li><strong>API 610\/617:<\/strong> First critical speed \u2265 120% of max continuous speed (rigid rotors)<\/li><li><strong>API 612:<\/strong> Operating speed \u2265 115% above first critical (flexible rotors)<\/li><li><strong>General practice:<\/strong> Stay at least 20\u201330% away from any critical speed<\/li><\/ul><p>The \u00b120% band around a critical speed is considered the <strong>danger zone<\/strong> and should be avoided during continuous operation.<\/p>' }\n    ];\n\n    var faqList = $('vc-faq-list');\n    faqData.forEach(function(faq) {\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>';\n    });\n    faqList.addEventListener('click', function(e) {\n        var btn = e.target.closest('.vc-faq-q');\n        if (!btn) return;\n        btn.closest('.vc-faq-item').classList.toggle('vc-open');\n    });\n\n    \/* \u2500\u2500 VISUALIZATION \u2500\u2500 *\/\n    function drawViz(support, Ncr, opSpeed) {\n        var c = $('vc-viz'), W = 400, H = 180;\n        var svg = '<svg width=\"'+W+'\" height=\"'+H+'\" viewBox=\"0 0 '+W+' '+H+'\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">';\n        var x0 = 60, x1 = W - 60, cy = 70, shaftR = 6;\n        \/\/ Supports\n        if (support === 'cantilever') {\n            svg += '<rect x=\"'+(x0-10)+'\" y=\"'+(cy-25)+'\" width=\"10\" height=\"50\" rx=\"2\" fill=\"#7b8fa3\" stroke=\"#5a6a7a\" stroke-width=\"1.5\"\/>';\n            svg += '<line x1=\"'+x0+'\" y1=\"'+cy+'\" x2=\"'+x1+'\" y2=\"'+cy+'\" stroke=\"#3578b2\" stroke-width=\"'+(shaftR*2)+'\" stroke-linecap=\"round\"\/>';\n        } else {\n            \/\/ Simply supported or fixed-fixed\n            svg += '<line x1=\"'+x0+'\" y1=\"'+cy+'\" x2=\"'+x1+'\" y2=\"'+cy+'\" stroke=\"#3578b2\" stroke-width=\"'+(shaftR*2)+'\" stroke-linecap=\"round\"\/>';\n            \/\/ Triangle supports\n            var triH = 18;\n            svg += '<polygon points=\"'+x0+','+(cy+shaftR)+' '+(x0-12)+','+(cy+shaftR+triH)+' '+(x0+12)+','+(cy+shaftR+triH)+'\" fill=\"#d9d4cc\" stroke=\"#8a857e\" stroke-width=\"1\"\/>';\n            svg += '<polygon points=\"'+x1+','+(cy+shaftR)+' '+(x1-12)+','+(cy+shaftR+triH)+' '+(x1+12)+','+(cy+shaftR+triH)+'\" fill=\"#d9d4cc\" stroke=\"#8a857e\" stroke-width=\"1\"\/>';\n            if (support === 'ff') {\n                svg += '<rect x=\"'+(x0-5)+'\" y=\"'+(cy-shaftR-3)+'\" width=\"10\" height=\"'+(shaftR*2+6)+'\" rx=\"1\" fill=\"none\" stroke=\"#5a6a7a\" stroke-width=\"1.5\"\/>';\n                svg += '<rect x=\"'+(x1-5)+'\" y=\"'+(cy-shaftR-3)+'\" width=\"10\" height=\"'+(shaftR*2+6)+'\" rx=\"1\" fill=\"none\" stroke=\"#5a6a7a\" stroke-width=\"1.5\"\/>';\n            }\n        }\n        \/\/ First mode deflection curve (sinusoidal)\n        var deflAmp = 35;\n        var pts = [];\n        for (var i = 0; i <= 50; i++) {\n            var t = i \/ 50;\n            var xp, yp;\n            if (support === 'cantilever') {\n                xp = x0 + t * (x1 - x0);\n                yp = cy + deflAmp * (1 - Math.cos(Math.PI * t \/ 2)) * t;\n            } else {\n                xp = x0 + t * (x1 - x0);\n                yp = cy + deflAmp * Math.sin(Math.PI * t);\n            }\n            pts.push(xp.toFixed(1) + ' ' + yp.toFixed(1));\n        }\n        svg += '<polyline points=\"'+pts.join(',')+'\" fill=\"none\" stroke=\"#e74c3c\" stroke-width=\"2\" stroke-dasharray=\"6,3\" opacity=\"0.7\"\/>';\n        \/\/ Central mass (disc)\n        var discX = support === 'cantilever' ? x1 : (x0 + x1) \/ 2;\n        var discY = support === 'cantilever' ? cy + deflAmp : cy;\n        svg += '<ellipse cx=\"'+discX+'\" cy=\"'+discY+'\" rx=\"12\" ry=\"'+(shaftR+8)+'\" fill=\"rgba(200,90,42,0.2)\" stroke=\"#c85a2a\" stroke-width=\"1.5\"\/>';\n        \/\/ Labels\n        svg += '<text x=\"'+(W\/2)+'\" y=\"16\" text-anchor=\"middle\" fill=\"#2c3e50\" font-size=\"11\" font-weight=\"600\">1st Mode Shape \u2014 N_cr = '+Math.round(Ncr)+' RPM<\/text>';\n        var supportLabel = support === 'ss' ? 'Simply Supported' : support === 'ff' ? 'Fixed-Fixed' : 'Cantilever';\n        svg += '<text x=\"'+(W\/2)+'\" y=\"'+(H-6)+'\" text-anchor=\"middle\" fill=\"#8a857e\" font-size=\"9\">'+supportLabel;\n        if (opSpeed && opSpeed > 0) svg += ' | Operating: '+Math.round(opSpeed)+' RPM';\n        svg += '<\/text>';\n        \/\/ Deflection arrow\n        var arrX = support === 'cantilever' ? x1 : (x0 + x1) \/ 2;\n        svg += '<line x1=\"'+arrX+'\" y1=\"'+(cy+3)+'\" x2=\"'+arrX+'\" y2=\"'+(cy+deflAmp-5)+'\" stroke=\"#e74c3c\" stroke-width=\"1\" stroke-dasharray=\"2,2\"\/>';\n        svg += '<text x=\"'+(arrX+8)+'\" y=\"'+(cy+deflAmp\/2+4)+'\" fill=\"#e74c3c\" font-size=\"9\" font-weight=\"600\">\\u03B4<\/text>';\n        svg += '<\/svg>';\n        c.innerHTML = svg;\n    }\n\n    \/* \u2500\u2500 HISTORY \u2500\u2500 *\/\n    function saveHistory(entry) {\n        var key = 'vc_history_' + SLUG;\n        var arr = [];\n        try { arr = JSON.parse(localStorage.getItem(key)) || []; } catch(e) {}\n        entry._ts = new Date().toISOString();\n        arr.unshift(entry);\n        if (arr.length > 10) arr = arr.slice(0, 10);\n        try { localStorage.setItem(key, JSON.stringify(arr)); } catch(e) {}\n    }\n\n    \/* \u2500\u2500 URL PARAMS \u2500\u2500 *\/\n    function loadParams() {\n        var p = new URLSearchParams(window.location.search);\n        if (p.has('L')) $('vc-length').value = p.get('L');\n        if (p.has('d')) $('vc-diameter').value = p.get('d');\n        if (p.has('m')) $('vc-mass').value = p.get('m');\n        if (p.has('E')) {\n            var eVal = p.get('E');\n            if (eVal === '210' || eVal === '193' || eVal === '69') {\n                $('vc-material').value = eVal;\n            } else {\n                $('vc-material').value = 'custom';\n                $('vc-custom-e').value = eVal;\n                $('vc-custom-e-field').style.display = '';\n            }\n        }\n        if (p.has('support')) $('vc-support').value = p.get('support');\n        if (p.has('opspeed')) $('vc-op-speed').value = p.get('opspeed');\n    }\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas() {\n        try {\n            katex.render('I = \\\\frac{\\\\pi d^4}{64}', $('vc-katex-1'), { displayMode: true, throwOnError: false });\n            katex.render('\\\\omega_n = \\\\sqrt{\\\\frac{k}{m}} = \\\\sqrt{\\\\frac{48EI}{mL^3}} \\\\quad \\\\text{(simply supported)}', $('vc-katex-2'), { displayMode: true, throwOnError: false });\n            katex.render('f_{cr} = \\\\frac{\\\\omega_n}{2\\\\pi} \\\\;[\\\\text{Hz}], \\\\qquad N_{cr} = f_{cr} \\\\times 60 \\\\;[\\\\text{RPM}]', $('vc-katex-3'), { displayMode: true, throwOnError: false });\n        } catch(e) {}\n    }\n\n    \/* \u2500\u2500 INIT \u2500\u2500 *\/\n    function init() {\n        loadParams();\n        renderFormulas();\n        calculate();\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', init);\n    } else {\n        init();\n    }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Rotor kritik tezligi va val tabiiy chastotasini hisoblash uchun bepul onlayn kalkulyator. Markaziy massali yoki taqsimlangan massali (Rayleigh usuli) erkin tayanchli, konsolsimon va ikki tomondan qattiq mahkamlangan vallarda birinchi kritik AYT ni hisoblaydi.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100210","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/uz\/wp-json\/wp\/v2\/calculator\/100210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/uz\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/uz\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":1,"href":"https:\/\/vibromera.eu\/uz\/wp-json\/wp\/v2\/calculator\/100210\/revisions"}],"predecessor-version":[{"id":100525,"href":"https:\/\/vibromera.eu\/uz\/wp-json\/wp\/v2\/calculator\/100210\/revisions\/100525"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/uz\/wp-json\/wp\/v2\/media?parent=100210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/uz\/wp-json\/wp\/v2\/categories?post=100210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/uz\/wp-json\/wp\/v2\/tags?post=100210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}