{"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-07-15T23:14:43","modified_gmt":"2026-07-15T23:14:43","slug":"turbine-blade-frequency-calculator","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/hi\/calculators\/turbine-blade-frequency-calculator\/","title":{"rendered":"Uniform Cantilever Frequency &#038; Engine-Order Coincidence Worksheet"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Uniform Cantilever Frequency and Engine-Order Coincidence Worksheet\",\"description\":\"A transparent nonrotating uniform Euler-Bernoulli cantilever reference calculation with straight engine-order equality speeds. It is not a turbine-blade Campbell analysis or a resonance-safety verdict.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/turbine-blade-frequency-calculator\/\",\"applicationCategory\":\"EngineeringApplication\",\"operatingSystem\":\"Any\",\"browserRequirements\":\"JavaScript enabled\",\"isAccessibleForFree\":true,\"dateModified\":\"2026-07-16\",\"inLanguage\":\"en\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"featureList\":[\"Uniform nonrotating cantilever frequencies for the first three bending modes\",\"Rectangular-section area and second moment of area\",\"Straight engine-order equality speeds\",\"Strict decimal-point and decimal-comma validation\",\"Explicit model-boundary confirmations\"]}\n<\/script>\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Uniform Cantilever Frequency and Engine-Order Coincidence Worksheet\",\"item\":\"https:\/\/vibromera.eu\/calculators\/turbine-blade-frequency-calculator\/\"}]}\n<\/script>\n<style>\n#twp-tool{--ink:#172033;--muted:#536176;--line:#d8dee8;--soft:#f5f7fa;--accent:#165d91;--accent2:#0f466f;--warn:#8a4b08;--warnbg:#fff7e8;--bad:#9b1c1c;--badbg:#fff1f1;--ok:#175b3a;--okbg:#edf8f2;max-width:1040px;margin:0 auto;padding:24px;color:var(--ink);font:16px\/1.55 system-ui,-apple-system,\"Segoe UI\",Roboto,Arial,sans-serif;box-sizing:border-box}\n#twp-tool *{box-sizing:border-box}#twp-tool h1,#twp-tool h2,#twp-tool h3{line-height:1.22;color:var(--ink)}#twp-tool h1{font-size:clamp(28px,4vw,43px);margin:0 0 12px}#twp-tool h2{font-size:25px;margin:0 0 14px}#twp-tool h3{font-size:19px;margin:22px 0 8px}#twp-tool p{margin:8px 0 14px}#twp-tool a{color:var(--accent2)}\n.twp-hero{padding:30px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#eef6fb,#fff)}.twp-kicker{display:inline-block;margin-bottom:10px;padding:5px 10px;border-radius:999px;background:#dcecf7;color:var(--accent2);font-weight:750;font-size:13px;letter-spacing:.03em;text-transform:uppercase}.twp-lead{font-size:18px;color:var(--muted);max-width:850px}.twp-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.twp-badge{padding:5px 10px;border:1px solid #b9cee0;border-radius:999px;background:#fff;color:#29445d;font-size:13px;font-weight:650}\n.twp-alert{margin:18px 0;padding:16px 18px;border-left:5px solid var(--warn);border-radius:8px;background:var(--warnbg)}.twp-alert strong{color:#653504}.twp-danger{border-left-color:var(--bad);background:var(--badbg)}.twp-danger strong{color:var(--bad)}\n.twp-card{margin-top:20px;padding:24px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 4px 18px rgba(21,38,58,.05)}.twp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.twp-field{display:flex;flex-direction:column;gap:6px}.twp-wide{grid-column:1\/-1}.twp-field label,.twp-legend{font-weight:700}.twp-hint{font-size:13px;color:var(--muted)}.twp-field input,.twp-field textarea{width:100%;padding:11px 12px;border:1px solid #aeb8c7;border-radius:8px;background:#fff;color:var(--ink);font:inherit}.twp-field textarea{min-height:92px;resize:vertical}.twp-field input:focus,.twp-field textarea:focus{outline:3px solid rgba(22,93,145,.18);border-color:var(--accent)}\n.twp-checks{display:grid;gap:12px;margin-top:18px}.twp-check{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--line);border-radius:9px;background:var(--soft)}.twp-check input{width:18px;height:18px;margin-top:3px;flex:0 0 auto}.twp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.twp-btn{min-height:44px;padding:10px 18px;border:0;border-radius:8px;background:var(--accent);color:#fff;font:inherit;font-weight:750;cursor:pointer}.twp-btn:hover{background:var(--accent2)}.twp-btn-secondary{border:1px solid #9da9b9;background:#fff;color:var(--ink)}.twp-btn-secondary:hover{background:var(--soft)}\n#twp-errors{display:none;margin-top:16px;padding:13px 15px;border:1px solid #e5a5a5;border-radius:8px;background:var(--badbg);color:#751313}#twp-errors.twp-show{display:block}#twp-errors ul{margin:6px 0 0;padding-left:22px}\n#twp-results[hidden]{display:none}.twp-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;flex-wrap:wrap}.twp-classification{padding:6px 10px;border-radius:7px;background:var(--warnbg);color:#693805;font-size:13px;font-weight:800;text-transform:uppercase}.twp-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.twp-metric{padding:15px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.twp-metric-label{display:block;color:var(--muted);font-size:13px}.twp-metric-value{display:block;margin-top:4px;font:700 18px\/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.twp-table-wrap{overflow-x:auto;margin-top:12px}.twp-table{width:100%;border-collapse:collapse;min-width:670px}.twp-table th,.twp-table td{padding:10px 11px;border:1px solid var(--line);text-align:left;vertical-align:top}.twp-table th{background:#edf3f8}.twp-none{padding:15px;border:1px solid #e5c58f;border-radius:9px;background:var(--warnbg);color:#663a0d}\n.twp-formula{padding:13px 15px;border:1px solid #cbd5e2;border-radius:9px;background:#f7f9fc;font:600 15px\/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-x:auto}.twp-list{padding-left:22px}.twp-list li{margin:7px 0}.twp-source{padding:13px 0;border-top:1px solid var(--line)}.twp-source:first-of-type{border-top:0}.twp-tag{display:inline-block;margin-right:7px;padding:2px 7px;border-radius:4px;background:#e8eef5;color:#31475f;font-size:12px;font-weight:700}.twp-small{font-size:13px;color:var(--muted)}details.twp-card summary{cursor:pointer;font-weight:800;font-size:20px}details.twp-card[open] summary{margin-bottom:14px}\n@media(max-width:760px){#twp-tool{padding:12px}.twp-hero,.twp-card{padding:18px}.twp-grid,.twp-metrics{grid-template-columns:1fr}.twp-wide{grid-column:auto}.twp-btn{width:100%}}\n@media print{#twp-tool{max-width:none}.twp-actions{display:none}.twp-card,.twp-hero{box-shadow:none;break-inside:avoid}}\n<\/style>\n<main id=\"twp-tool\">\n  <header class=\"twp-hero\">\n    <span class=\"twp-kicker\">Controlled reference worksheet<\/span>\n    <h1>Uniform Cantilever Frequency and Engine-Order Coincidence<\/h1>\n    <p class=\"twp-lead\">Calculate the first three bending frequencies of an ideal, nonrotating, uniform rectangular Euler-Bernoulli cantilever and solve exact equalities with user-supplied straight engine-order lines.<\/p>\n    <div class=\"twp-badges\"><span class=\"twp-badge\">General mechanics &#8211; not an ISO formula<\/span><span class=\"twp-badge\">Nonrotating beam only<\/span><span class=\"twp-badge\">No safety verdict<\/span><span class=\"twp-badge\">No material presets<\/span><\/div>\n  <\/header>\n\n  <div class=\"twp-alert twp-danger\"><strong>This is not a turbine-blade Campbell analysis.<\/strong> It does not model centrifugal prestress, speed-dependent modes, Coriolis or gyroscopic effects, a disk or root, taper, twist, platforms, shrouds, temperature-dependent properties, damping, aerodynamic forcing, stress, fatigue, or attachment details. A displayed equality is only a geometric coincidence in this simplified reference. No displayed equality does not mean \u201cno resonance risk\u201d.<\/div>\n\n  <section class=\"twp-card\" aria-labelledby=\"twp-input-title\">\n    <h2 id=\"twp-input-title\">Controlled inputs<\/h2>\n    <form id=\"twp-form\" novalidate>\n      <div class=\"twp-grid\">\n        <div class=\"twp-field twp-wide\"><label for=\"twp-source\">Input source \/ model record<\/label><textarea id=\"twp-source\" maxlength=\"240\" placeholder=\"Drawing revision, material-property source and excitation-order analysis reference\"><\/textarea><span class=\"twp-hint\">Required. The worksheet does not supply design material data or excitation orders.<\/span><\/div>\n        <div class=\"twp-field\"><label for=\"twp-length\">Free length L (mm)<\/label><input id=\"twp-length\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"e.g. 500\"><span class=\"twp-hint\">Distance from ideal fixed boundary to free end.<\/span><\/div>\n        <div class=\"twp-field\"><label for=\"twp-width\">Rectangular width b (mm)<\/label><input id=\"twp-width\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"e.g. 80\"><span class=\"twp-hint\">Dimension parallel to the neutral axis.<\/span><\/div>\n        <div class=\"twp-field\"><label for=\"twp-thickness\">Bending thickness h (mm)<\/label><input id=\"twp-thickness\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"e.g. 12\"><span class=\"twp-hint\">Dimension cubed in I = b h\u00b3 \/ 12; the bending axis must be identified correctly.<\/span><\/div>\n        <div class=\"twp-field\"><label for=\"twp-modulus\">Young&#8217;s modulus E (GPa)<\/label><input id=\"twp-modulus\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"e.g. 200\"><span class=\"twp-hint\">Supply a value applicable to the material state and temperature.<\/span><\/div>\n        <div class=\"twp-field\"><label for=\"twp-density\">Mass density \u03c1 (kg\/m\u00b3)<\/label><input id=\"twp-density\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"e.g. 7850\"><\/div>\n        <div class=\"twp-field\"><label for=\"twp-rpm-min\">Minimum speed (r\/min)<\/label><input id=\"twp-rpm-min\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"e.g. 2400\"><\/div>\n        <div class=\"twp-field\"><label for=\"twp-rpm-max\">Maximum speed (r\/min)<\/label><input id=\"twp-rpm-max\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"e.g. 3600\"><\/div>\n        <div class=\"twp-field twp-wide\"><label for=\"twp-orders\">Excitation orders q &#8211; one value per line<\/label><textarea id=\"twp-orders\" inputmode=\"decimal\" maxlength=\"420\" placeholder=\"1&#10;2&#10;4&#10;60\"><\/textarea><span class=\"twp-hint\">Required, maximum 32 unique positive orders. Each line accepts a decimal point or decimal comma. Obtain the orders from a controlled excitation analysis; blade or vane count is not guessed here.<\/span><\/div>\n      <\/div>\n      <div class=\"twp-checks\" role=\"group\" aria-label=\"Required confirmations\">\n        <label class=\"twp-check\"><input id=\"twp-confirm-model\" type=\"checkbox\"><span>I confirm that the entered geometry is intentionally being treated as a uniform, prismatic, isotropic, slender, nonrotating Euler-Bernoulli beam with a rectangular section and ideal fixed-free boundary.<\/span><\/label>\n        <label class=\"twp-check\"><input id=\"twp-confirm-external\" type=\"checkbox\"><span>I understand that an actual rotating-blade decision requires an externally validated speed-dependent prestressed modal model, applicable excitation\/forced-response analysis, damping and stress\/fatigue criteria; this worksheet supplies none of those approvals.<\/span><\/label>\n      <\/div>\n      <div class=\"twp-actions\"><button class=\"twp-btn\" type=\"submit\">Calculate reference<\/button><button class=\"twp-btn twp-btn-secondary\" id=\"twp-clear\" type=\"button\">Clear<\/button><\/div>\n      <div id=\"twp-errors\" role=\"alert\" aria-live=\"assertive\"><\/div>\n    <\/form>\n  <\/section>\n\n  <section class=\"twp-card\" id=\"twp-results\" aria-labelledby=\"twp-results-title\" aria-live=\"polite\" hidden>\n    <div class=\"twp-result-head\"><div><h2 id=\"twp-results-title\">Reference results<\/h2><p id=\"twp-result-source\" class=\"twp-small\"><\/p><\/div><span class=\"twp-classification\">Simplified nonrotating reference<\/span><\/div>\n    <div class=\"twp-metrics\">\n      <div class=\"twp-metric\"><span class=\"twp-metric-label\">Area A<\/span><span class=\"twp-metric-value\" id=\"twp-out-area\"><\/span><\/div>\n      <div class=\"twp-metric\"><span class=\"twp-metric-label\">Second moment I<\/span><span class=\"twp-metric-value\" id=\"twp-out-inertia\"><\/span><\/div>\n      <div class=\"twp-metric\"><span class=\"twp-metric-label\">Mode 1 reference f\u2081<\/span><span class=\"twp-metric-value\" id=\"twp-out-f1\"><\/span><\/div>\n      <div class=\"twp-metric\"><span class=\"twp-metric-label\">Mode 2 reference f\u2082<\/span><span class=\"twp-metric-value\" id=\"twp-out-f2\"><\/span><\/div>\n      <div class=\"twp-metric\"><span class=\"twp-metric-label\">Mode 3 reference f\u2083<\/span><span class=\"twp-metric-value\" id=\"twp-out-f3\"><\/span><\/div>\n      <div class=\"twp-metric\"><span class=\"twp-metric-label\">Checked speed interval<\/span><span class=\"twp-metric-value\" id=\"twp-out-range\"><\/span><\/div>\n    <\/div>\n    <h3>Exact straight-line equalities in the entered interval<\/h3>\n    <p>For each entered order q and each nonrotating reference mode, the worksheet solves N = 60 f \/ q. It does not apply a separation margin and does not decide whether resonance, acceptable response, or safe operation exists.<\/p>\n    <div id=\"twp-none\" class=\"twp-none\" hidden>No exact equality occurs in the entered interval for the supplied orders and the three simplified reference frequencies. This is not evidence of \u201cno resonance risk\u201d; unentered excitations and real speed-dependent modes remain outside this worksheet.<\/div>\n    <div class=\"twp-table-wrap\" id=\"twp-table-wrap\"><table class=\"twp-table\"><thead><tr><th>Reference mode<\/th><th>Nonrotating frequency (Hz)<\/th><th>Entered order q<\/th><th>Equality speed (r\/min)<\/th><th>Meaning<\/th><\/tr><\/thead><tbody id=\"twp-crossings\"><\/tbody><\/table><\/div>\n    <div class=\"twp-alert\"><strong>Required next step:<\/strong> Treat every listed row only as a screening flag. Evaluate the actual blade with validated rotating\/prestressed modal branches and the applicable forcing, damping, stress and fatigue model. An equality alone does not quantify response; absence of an equality in this simplified table does not clear the design.<\/div>\n  <\/section>\n\n  <section class=\"twp-card\" aria-labelledby=\"twp-method-title\">\n    <h2 id=\"twp-method-title\">Method and units<\/h2>\n    <p class=\"twp-formula\">A = b h<br>I = b h\u00b3 \/ 12<br>f\u2c7c = \u03b2\u2c7c\u00b2 \/ (2\u03c0 L\u00b2) \u00d7 \u221a(E I \/ (\u03c1 A))<br>fEO = q N \/ 60<br>Nequality = 60 f\u2c7c \/ q<\/p>\n    <ul class=\"twp-list\">\n      <li>\u03b2\u2081 = 1.8751040687, \u03b2\u2082 = 4.6940911330 and \u03b2\u2083 = 7.8547574382 are the first three roots for an ideal fixed-free uniform Euler-Bernoulli beam.<\/li>\n      <li>L, b and h are converted from millimetres to metres; E is converted from gigapascals to pascals; \u03c1 is in kg\/m\u00b3. The resulting f is in s\u207b\u00b9 (Hz).<\/li>\n      <li>The rectangular bending axis matters because h is cubed. Swapping b and h generally changes the frequency.<\/li>\n      <li>The equations are classical analytical mechanics, not a formula or acceptance criterion issued by ISO, API, ASME or another standard.<\/li>\n      <li>Higher modes are more sensitive to shear deformation and rotary inertia; Euler-Bernoulli assumptions should be checked before using even this reference value.<\/li>\n    <\/ul>\n  <\/section>\n\n  <details class=\"twp-card\" open><summary>Evidence and scope<\/summary>\n    <div class=\"twp-source\"><span class=\"twp-tag\">FORMULA<\/span><strong>MIT OpenCourseWare, 2.002 Mechanics and Materials II, Spring 2004, Laboratory Module No. 1, pp. 10 and 14.<\/strong><p>Derives the continuous uniform cantilever relation, the characteristic equation 1 + cos \u03b2 cosh \u03b2 = 0 and the first root 1.875104 under Euler-Bernoulli assumptions.<\/p><a href=\"https:\/\/ocw.mit.edu\/courses\/2-002-mechanics-and-materials-ii-spring-2004\/9aebe9fc6669d928aa716a5033cc9c9f_lab_1_s04.pdf\" rel=\"noopener\" target=\"_blank\">Official MIT PDF<\/a><\/div>\n    <div class=\"twp-source\"><span class=\"twp-tag\">ROOTS<\/span><strong>NASA-CR-197220, Appendix B, report p. 113 (PDF p. 126).<\/strong><p>Lists the nonrotating uniform cantilever bending-frequency relation and \u03b2L values 1.875, 4.694 and 7.855 for modes 1-3.<\/p><a href=\"https:\/\/ntrs.nasa.gov\/api\/citations\/19950008509\/downloads\/19950008509.pdf?attachment=true\" rel=\"noopener\" target=\"_blank\">Official NASA NTRS PDF<\/a><\/div>\n    <div class=\"twp-source\"><span class=\"twp-tag\">ORDER LINES<\/span><strong>Ansys Mechanical APDL 2025 R1, PLCAMP command documentation.<\/strong><p>Defines a positive slope in the stationary reference frame as the number of excitations per rotor revolution. This supports fEO = qN\/60; it does not turn a constant nonrotating beam frequency into a real blade mode.<\/p><a href=\"https:\/\/ansyshelp.ansys.com\/public\/Views\/Secured\/corp\/v251\/en\/ans_cmd\/Hlp_C_PLCAMP.html\" rel=\"noopener\" target=\"_blank\">Official Ansys documentation<\/a><\/div>\n    <div class=\"twp-source\"><span class=\"twp-tag\">ROTATING MODEL<\/span><strong>Ansys Mechanical APDL 2025 R2, prestressed Campbell-analysis procedure.<\/strong><p>Uses alternating speed-dependent static prestress and perturbed modal solutions and identifies Coriolis handling. Those analyses are outside this worksheet.<\/p><a href=\"https:\/\/ansyshelp.ansys.com\/public\/Views\/Secured\/corp\/v252\/en\/ans_rot\/Hlp_G_ROTSOLPRESTRESS.html\" rel=\"noopener\" target=\"_blank\">Official Ansys documentation<\/a><\/div>\n    <div class=\"twp-source\"><span class=\"twp-tag\">FORCED RESPONSE<\/span><strong>NASA\/TM-20240000075, p. 9.<\/strong><p>Discusses a blade modal-frequency\/engine-order crossing as a condition requiring forced-response analysis; response and fatigue cannot be inferred from equality alone.<\/p><a href=\"https:\/\/ntrs.nasa.gov\/api\/citations\/20240000075\/downloads\/TM-20240000075.pdf?attachment=true\" rel=\"noopener\" target=\"_blank\">Official NASA NTRS PDF<\/a><\/div>\n    <p class=\"twp-small\">Sources accessed 16 July 2026. No closed standard is claimed or paraphrased as an acceptance rule.<\/p>\n  <\/details>\n\n  <details class=\"twp-card\"><summary>Interpretation questions<\/summary>\n    <h3>Is this a Campbell diagram?<\/h3><p>No. A real Campbell diagram follows modal frequencies as rotational speed changes. This worksheet holds ideal nonrotating beam frequencies constant and solves equalities with straight user-supplied order lines.<\/p>\n    <h3>Does a listed equality prove resonance?<\/h3><p>No. It is a screening flag. Actual response also depends on the real rotating mode, forcing distribution and amplitude, modal participation, damping and boundary conditions.<\/p>\n    <h3>Does an empty table prove safe operation?<\/h3><p>No. The simplified model may miss the real modal branch, and the entered order list may omit an excitation. No safety, fatigue-life or acceptance conclusion is produced.<\/p>\n    <h3>Why is there no material database or 10% separation rule?<\/h3><p>Material properties vary with alloy, treatment, direction and temperature, while an allowable separation rule must come from the applicable design authority and verified system model. The worksheet does not invent either.<\/p>\n  <\/details>\n\n  <p class=\"twp-small\">Revision: 16 July 2026. Result classification: general-mechanics reference only.<\/p>\n<\/main>\n<script>\n(function(){\n  'use strict';\n  const byId=function(id){return document.getElementById(id);};\n  const form=byId('twp-form'),errors=byId('twp-errors'),results=byId('twp-results'),body=byId('twp-crossings'),none=byId('twp-none'),tableWrap=byId('twp-table-wrap');\n  const beta=[1.875104068711961,4.694091132974174,7.854757438237612];\n  function parsePositive(raw,label,max){\n    const s=String(raw).trim();\n    if(!s||s.length>40||!\/^\\+?(?:\\d+(?:[.,]\\d*)?|[.,]\\d+)$\/.test(s))throw new Error(label+' must be one complete positive decimal number.');\n    const value=Number(s.replace(',','.'));\n    if(!Number.isFinite(value)||value<=0||value>max)throw new Error(label+' is outside the supported positive range (maximum '+max+').');\n    return value;\n  }\n  function parseOrders(raw){\n    const lines=String(raw).split(\/\\r?\\n\/).map(function(x){return x.trim();}).filter(Boolean);\n    if(!lines.length)throw new Error('Enter at least one excitation order, one value per line.');\n    if(lines.length>32)throw new Error('Enter no more than 32 excitation orders.');\n    const seen=new Set(),values=[];\n    lines.forEach(function(line,index){\n      const value=parsePositive(line,'Excitation order on line '+(index+1),1000000);\n      const key=value.toPrecision(15);\n      if(seen.has(key))throw new Error('Excitation orders must be unique; duplicate '+line+'.');\n      seen.add(key);values.push(value);\n    });\n    return values;\n  }\n  function formatNumber(value,digits){\n    if(!Number.isFinite(value))return 'not finite';\n    const a=Math.abs(value);\n    if((a!==0&&a<1e-5)||a>=1e9)return value.toExponential(Math.max(3,digits-1));\n    return value.toLocaleString('en-US',{maximumSignificantDigits:digits,useGrouping:false});\n  }\n  function calculate(v){\n    const L=v.length\/1000,b=v.width\/1000,h=v.thickness\/1000,E=v.modulus*1e9,rho=v.density;\n    const area=b*h,inertia=b*h*h*h\/12;\n    const scale=Math.sqrt(E*inertia\/(rho*area*Math.pow(L,4)))\/(2*Math.PI);\n    const frequencies=beta.map(function(x){return x*x*scale;});\n    if(!Number.isFinite(area)||!Number.isFinite(inertia)||area<=0||inertia<=0||frequencies.some(function(x){return !Number.isFinite(x)||x<=0;}))throw new Error('The entered combination cannot be represented as a finite beam reference.');\n    const crossings=[];\n    frequencies.forEach(function(f,mode){v.orders.forEach(function(order){const rpm=60*f\/order;if(Number.isFinite(rpm)&&rpm>=v.rpmMin&&rpm<=v.rpmMax)crossings.push({mode:mode+1,frequency:f,order:order,rpm:rpm});});});\n    crossings.sort(function(a,b){return a.rpm-b.rpm||a.mode-b.mode||a.order-b.order;});\n    return {area:area,inertia:inertia,frequencies:frequencies,crossings:crossings};\n  }\n  function showErrors(messages){\n    errors.textContent='';\n    const strong=document.createElement('strong');strong.textContent='Calculation not performed.';errors.appendChild(strong);\n    const list=document.createElement('ul');messages.forEach(function(message){const item=document.createElement('li');item.textContent=message;list.appendChild(item);});errors.appendChild(list);errors.classList.add('twp-show');\n    results.hidden=true;\n  }\n  function render(v,r){\n    errors.textContent='';errors.classList.remove('twp-show');body.textContent='';\n    byId('twp-result-source').textContent='Input record: '+v.source;\n    byId('twp-out-area').textContent=formatNumber(r.area*1e6,10)+' mm\u00b2';\n    byId('twp-out-inertia').textContent=formatNumber(r.inertia*1e12,10)+' mm\u2074';\n    byId('twp-out-f1').textContent=formatNumber(r.frequencies[0],10)+' Hz';\n    byId('twp-out-f2').textContent=formatNumber(r.frequencies[1],10)+' Hz';\n    byId('twp-out-f3').textContent=formatNumber(r.frequencies[2],10)+' Hz';\n    byId('twp-out-range').textContent=formatNumber(v.rpmMin,10)+' to '+formatNumber(v.rpmMax,10)+' r\/min';\n    r.crossings.forEach(function(c){\n      const row=document.createElement('tr');\n      [String(c.mode),formatNumber(c.frequency,10),formatNumber(c.order,10),formatNumber(c.rpm,10),'Exact equality in simplified nonrotating reference only'].forEach(function(text){const cell=document.createElement('td');cell.textContent=text;row.appendChild(cell);});\n      body.appendChild(row);\n    });\n    const empty=r.crossings.length===0;none.hidden=!empty;tableWrap.hidden=empty;results.hidden=false;\n    results.scrollIntoView({behavior:'smooth',block:'start'});\n  }\n  form.addEventListener('submit',function(event){\n    event.preventDefault();const problems=[],v={};\n    v.source=byId('twp-source').value.trim();if(!v.source)problems.push('Input source \/ model record is required.');\n    const fields=[['length','twp-length','Free length L',1000000],['width','twp-width','Rectangular width b',1000000],['thickness','twp-thickness','Bending thickness h',1000000],['modulus','twp-modulus',\"Young's modulus E\",100000],['density','twp-density','Mass density \u03c1',100000000],['rpmMin','twp-rpm-min','Minimum speed',1000000000],['rpmMax','twp-rpm-max','Maximum speed',1000000000]];\n    fields.forEach(function(x){try{v[x[0]]=parsePositive(byId(x[1]).value,x[2],x[3]);}catch(error){problems.push(error.message);}});\n    try{v.orders=parseOrders(byId('twp-orders').value);}catch(error){problems.push(error.message);}\n    if(Number.isFinite(v.rpmMin)&&Number.isFinite(v.rpmMax)&&v.rpmMax<v.rpmMin)problems.push('Maximum speed must be greater than or equal to minimum speed.');\n    if(!byId('twp-confirm-model').checked)problems.push('Confirm the ideal nonrotating uniform-beam assumptions.');\n    if(!byId('twp-confirm-external').checked)problems.push('Confirm that actual rotating-blade decisions require external validated analysis.');\n    if(problems.length){showErrors(problems);return;}\n    try{render(v,calculate(v));}catch(error){showErrors([error.message]);}\n  });\n  byId('twp-clear').addEventListener('click',function(){form.reset();errors.textContent='';errors.classList.remove('twp-show');body.textContent='';none.hidden=true;tableWrap.hidden=false;results.hidden=true;byId('twp-source').focus();});\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Calculate nonrotating uniform-cantilever reference frequencies and exact equalities with user-supplied engine-order lines. Not a turbine-blade Campbell analysis or safety verdict.<\/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\/hi\/wp-json\/wp\/v2\/calculator\/100270","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/hi\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/hi\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":5,"href":"https:\/\/vibromera.eu\/hi\/wp-json\/wp\/v2\/calculator\/100270\/revisions"}],"predecessor-version":[{"id":102612,"href":"https:\/\/vibromera.eu\/hi\/wp-json\/wp\/v2\/calculator\/100270\/revisions\/102612"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/hi\/wp-json\/wp\/v2\/media?parent=100270"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/hi\/wp-json\/wp\/v2\/categories?post=100270"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/hi\/wp-json\/wp\/v2\/tags?post=100270"}],"curies":[{"name":"\u0921\u092c\u094d\u0932\u094d\u092f\u0942\u092a\u0940","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}