{"id":100037,"date":"2026-02-15T20:07:41","date_gmt":"2026-02-15T20:07:41","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100037"},"modified":"2026-07-11T20:59:30","modified_gmt":"2026-07-11T20:59:30","slug":"blade-pass-frequency","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/it\/calculators\/blade-pass-frequency\/","title":{"rendered":"Blade Pass Frequency Calculator | BPF and VPF"},"content":{"rendered":"\r\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Blade Pass Frequency Calculator\",\"alternateName\":[\"BPF Calculator\",\"Vane Pass Frequency Calculator\"],\"description\":\"Calculate blade or vane pass frequency, shaft frequency, period and the first five integer BPF harmonics from an integer element count and shaft speed.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/blade-pass-frequency\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"dateModified\":\"2026-07-11\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true}<\/script>\r\n\r\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What does this calculator compute?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It computes the kinematic passage frequency fBPF = Z n\/60 for Z equally recurring blades or vanes and speed n in revolutions per minute. It does not predict vibration or sound amplitude.\"}},{\"@type\":\"Question\",\"name\":\"Does a BPF peak prove a fault?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. A component at BPF can arise from normal rotor-stator or blade-casing interaction. Its amplitude is installation and operating-point dependent; diagnosis requires comparison with baseline or trend data and other evidence.\"}},{\"@type\":\"Question\",\"name\":\"Do BPF harmonics identify blade damage or cavitation?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No single harmonic or sideband pattern uniquely identifies a cause. Harmonics and modulation are analysis targets, not automatic fault labels.\"}},{\"@type\":\"Question\",\"name\":\"Is this an ISO acceptance calculator?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. The frequency equation is kinematic. This page does not apply ISO vibration severity limits or provide acceptance criteria.\"}}]}<\/script>\r\n\r\n<script type=\"application\/ld+json\">\r\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[\r\n{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},\r\n{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},\r\n{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Blade Pass Frequency\",\"item\":\"https:\/\/vibromera.eu\/calculators\/blade-pass-frequency\/\"}\r\n]}\r\n<\/script>\r\n\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&#038;family=JetBrains+Mono:wght@400;500;600&#038;family=Fraunces:opsz,wght@9..144,700;9..144,800&#038;display=swap\" rel=\"stylesheet\">\r\n\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.css\">\r\n\r\n<style>\r\n:root {\r\n    --vc-bg: #f4f1ec;\r\n    --vc-surface: #ffffff;\r\n    --vc-surface-alt: #f8f6f2;\r\n    --vc-ink: #1a1a1a;\r\n    --vc-ink-secondary: #5a5650;\r\n    --vc-ink-muted: #8a857e;\r\n    --vc-accent: #c85a2a;\r\n    --vc-accent-hover: #b04d22;\r\n    --vc-accent-light: #fdf0ea;\r\n    --vc-blue: #2a5c8c;\r\n    --vc-blue-light: #eaf1f8;\r\n    --vc-green: #2a7a4b;\r\n    --vc-green-light: #eaf8ef;\r\n    --vc-yellow: #a67c00;\r\n    --vc-yellow-light: #fef9e8;\r\n    --vc-red: #b91c1c;\r\n    --vc-red-light: #fef2f2;\r\n    --vc-border: #d9d4cc;\r\n    --vc-border-light: #e8e4dd;\r\n    --vc-shadow: 0 1px 3px rgba(26,26,26,0.06), 0 4px 12px rgba(26,26,26,0.04);\r\n    --vc-shadow-lg: 0 4px 12px rgba(26,26,26,0.08), 0 16px 40px rgba(26,26,26,0.06);\r\n    --vc-radius: 8px;\r\n    --vc-radius-lg: 12px;\r\n    --vc-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n    --vc-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace;\r\n    --vc-display: 'Fraunces', Georgia, serif;\r\n}\r\n\r\n.vc-calculator {\r\n    font-family: var(--vc-font);\r\n    font-size: 15px;\r\n    line-height: 1.65;\r\n    color: var(--vc-ink);\r\n    max-width: 960px;\r\n    margin: 0 auto;\r\n    padding: 20px 16px 40px;\r\n    -webkit-font-smoothing: antialiased;\r\n}\r\n.vc-calculator *, .vc-calculator *::before, .vc-calculator *::after { box-sizing: border-box; }\r\n\r\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\r\n.vc-header { text-align: center; padding: 48px 24px 40px; position: relative; }\r\n.vc-header::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:80px; height:3px; background:var(--vc-accent); border-radius:2px; }\r\n.vc-header-eyebrow { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:var(--vc-accent); margin:0 0 12px; }\r\n.vc-header-title { font-family:var(--vc-display); font-size:clamp(24px,4vw,36px); font-weight:800; line-height:1.15; color:var(--vc-ink); margin:0 0 16px; letter-spacing:-0.02em; }\r\n.vc-header-subtitle { font-size:15px; color:var(--vc-ink-secondary); margin:0 auto 20px; max-width:600px; }\r\n.vc-badges { display:inline-flex; gap:8px; flex-wrap:wrap; justify-content:center; }\r\n.vc-badge { font-family:var(--vc-mono); font-size:11px; font-weight:500; padding:4px 10px; border-radius:4px; background:var(--vc-surface); border:1px solid var(--vc-border); color:var(--vc-ink-secondary); }\r\n\r\n\/* \u2500\u2500 CARD \u2500\u2500 *\/\r\n.vc-card { background:var(--vc-surface); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); box-shadow:var(--vc-shadow); overflow:hidden; margin-top:32px; }\r\n\r\n\/* \u2500\u2500 FORM \u2500\u2500 *\/\r\n.vc-form { padding:24px; }\r\n.vc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }\r\n@media(max-width:600px) { .vc-form-grid { grid-template-columns:1fr; } }\r\n.vc-field { display:flex; flex-direction:column; }\r\n.vc-field-full { grid-column: 1 \/ -1; }\r\n.vc-label { font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--vc-ink-secondary); margin-bottom:6px; }\r\n.vc-label-hint { font-weight:400; text-transform:none; letter-spacing:0; color:var(--vc-ink-muted); font-size:11px; }\r\n.vc-select, .vc-input { width:100%; padding:10px 12px; border:1.5px solid var(--vc-border); border-radius:6px; font-family:var(--vc-font); font-size:14px; color:var(--vc-ink); background:var(--vc-surface); transition:border-color 0.15s, box-shadow 0.15s; }\r\n.vc-select { padding-right:36px; appearance:none; -webkit-appearance:none; cursor:pointer; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='none' stroke='%235a5650' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:right 10px center; }\r\n.vc-select:focus, .vc-input:focus { outline:none; border-color:var(--vc-accent); box-shadow:0 0 0 3px rgba(200,90,42,0.12); }\r\n.vc-select:hover, .vc-input:hover { border-color:var(--vc-ink-muted); }\r\n\r\n\/* \u2500\u2500 PRESETS \u2500\u2500 *\/\r\n.vc-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid var(--vc-border-light); }\r\n.vc-presets-label { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); width:100%; margin-bottom:2px; }\r\n.vc-preset-btn { padding:5px 12px; font-family:var(--vc-font); font-size:12px; font-weight:500; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\r\n.vc-preset-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\r\n\r\n\/* \u2500\u2500 RESULTS \u2500\u2500 *\/\r\n.vc-results { border-top:1px solid var(--vc-border-light); background:var(--vc-surface-alt); padding:0; max-height:0; overflow:hidden; transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1), padding 0.3s; }\r\n.vc-results.vc-visible { max-height:4000px; padding:24px; }\r\n.vc-results-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }\r\n.vc-results-title { font-family:var(--vc-display); font-size:20px; font-weight:700; color:var(--vc-ink); margin:0; }\r\n.vc-copy-btn { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface); font-family:var(--vc-font); font-size:12px; font-weight:500; color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\r\n.vc-copy-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); }\r\n.vc-copy-btn.vc-copied { background:var(--vc-green-light); border-color:var(--vc-green); color:var(--vc-green); }\r\n\r\n.vc-result-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }\r\n@media(max-width:500px) { .vc-result-grid { grid-template-columns:1fr; } }\r\n.vc-rcard { background:var(--vc-surface); border:1px solid var(--vc-border-light); border-radius:var(--vc-radius); padding:16px; transition:transform 0.2s; }\r\n.vc-rcard:hover { transform:translateY(-1px); }\r\n.vc-rcard-primary { border-color:var(--vc-accent); border-width:2px; background:linear-gradient(135deg, #fdf6f2 0%, var(--vc-surface) 100%); grid-column:1 \/ -1; }\r\n.vc-rcard-label { font-family:var(--vc-mono); font-size:10px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); margin-bottom:4px; }\r\n.vc-rcard-value { font-family:var(--vc-mono); font-size:22px; font-weight:600; color:var(--vc-ink); line-height:1.2; }\r\n.vc-rcard-primary .vc-rcard-value { font-size:30px; color:var(--vc-accent); }\r\n.vc-rcard-unit { font-size:14px; font-weight:400; color:var(--vc-ink-secondary); }\r\n\r\n\/* \u2500\u2500 HARMONICS TABLE \u2500\u2500 *\/\r\n.vc-harm-table { width:100%; border-collapse:collapse; margin-top:16px; font-size:13px; }\r\n.vc-harm-table th, .vc-harm-table td { padding:10px 12px; border:1px solid var(--vc-border-light); text-align:left; }\r\n.vc-harm-table th { background:var(--vc-surface-alt); font-family:var(--vc-mono); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--vc-ink-secondary); }\r\n.vc-harm-table tr:nth-child(even) { background:var(--vc-surface-alt); }\r\n.vc-harm-table td { font-family:var(--vc-mono); font-size:13px; }\r\n@media(max-width:600px) { .vc-harm-table { font-size:12px; } .vc-harm-table th, .vc-harm-table td { padding:8px; } }\r\n\r\n\/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\r\n.vc-section { margin-top:24px; border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); background:var(--vc-surface); box-shadow:var(--vc-shadow); overflow:hidden; }\r\n.vc-section-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border:none; background:transparent; cursor:pointer; font-family:var(--vc-font); text-align:left; transition:background 0.15s; }\r\n.vc-section-toggle:hover { background:var(--vc-surface-alt); }\r\n.vc-section-toggle-text { display:flex; align-items:center; gap:10px; }\r\n.vc-section-icon { font-size:20px; line-height:1; }\r\n.vc-section-title { font-family:var(--vc-display); font-size:18px; font-weight:700; color:var(--vc-ink); margin:0; }\r\n.vc-section-chevron { width:20px; height:20px; color:var(--vc-ink-muted); transition:transform 0.3s; flex-shrink:0; }\r\n.vc-section.vc-open .vc-section-chevron { transform:rotate(180deg); }\r\n.vc-section-body { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1); }\r\n.vc-section.vc-open .vc-section-body { max-height:20000px; }\r\n.vc-section-inner { padding:0 24px 24px; border-top:1px solid var(--vc-border-light); }\r\n\r\n\/* \u2500\u2500 THEORY \u2500\u2500 *\/\r\n.vc-theory h3 { font-family:var(--vc-display); font-size:17px; font-weight:700; color:var(--vc-ink); margin:28px 0 10px; }\r\n.vc-theory h3:first-child { margin-top:20px; }\r\n.vc-theory p { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 10px; }\r\n.vc-theory ul, .vc-theory ol { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 12px 18px; padding:0; }\r\n.vc-theory li { margin-bottom:5px; }\r\n.vc-formula-box { background:var(--vc-surface-alt); border:2px solid var(--vc-border); border-radius:6px; padding:14px 20px; font-family:var(--vc-mono); font-size:16px; font-weight:500; text-align:center; margin:14px 0; color:var(--vc-ink); overflow-x:auto; }\r\n.vc-info-box { background:var(--vc-blue-light); border-left:3px solid var(--vc-blue); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\r\n.vc-info-box p { margin:0; font-size:14px; color:var(--vc-ink-secondary); }\r\n.vc-warning-box { background:var(--vc-yellow-light); border-left:3px solid var(--vc-yellow); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\r\n.vc-example-box { background:var(--vc-surface-alt); border:1px solid var(--vc-border-light); border-radius:6px; padding:16px; margin:14px 0; }\r\n.vc-example-title { font-family:var(--vc-mono); font-size:13px; font-weight:600; color:var(--vc-accent); margin-bottom:8px; }\r\n.vc-table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }\r\n.vc-table th, .vc-table td { padding:10px 12px; border:1px solid var(--vc-border-light); text-align:left; }\r\n.vc-table th { background:var(--vc-surface-alt); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--vc-ink-secondary); }\r\n.vc-table tr:nth-child(even) { background:var(--vc-surface-alt); }\r\n@media(max-width:600px) { .vc-table { font-size:12px; } .vc-table th, .vc-table td { padding:8px; } }\r\n\r\n\/* \u2500\u2500 FAQ \u2500\u2500 *\/\r\n.vc-faq-list { display:flex; flex-direction:column; gap:8px; margin-top:20px; }\r\n.vc-faq-item { border:1px solid var(--vc-border-light); border-radius:6px; overflow:hidden; }\r\n.vc-faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border:none; background:var(--vc-surface-alt); cursor:pointer; font-family:var(--vc-font); font-size:15px; font-weight:600; color:var(--vc-ink); text-align:left; transition:background 0.15s; }\r\n.vc-faq-q:hover { background:#ede9e3; }\r\n.vc-faq-chevron { width:16px; height:16px; color:var(--vc-ink-muted); flex-shrink:0; transition:transform 0.25s; }\r\n.vc-faq-item.vc-open .vc-faq-chevron { transform:rotate(180deg); }\r\n.vc-faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s; }\r\n.vc-faq-item.vc-open .vc-faq-a { max-height:1200px; }\r\n.vc-faq-a-inner { padding:14px 16px; border-top:1px solid var(--vc-border-light); font-size:14px; color:var(--vc-ink-secondary); }\r\n.vc-faq-a-inner p { margin:0 0 8px; }\r\n.vc-faq-a-inner p:last-child { margin-bottom:0; }\r\n.vc-faq-a-inner ul { margin:4px 0 8px 16px; padding:0; }\r\n.vc-faq-a-inner li { margin-bottom:3px; }\r\n\r\n\/* \u2500\u2500 RELATED \u2500\u2500 *\/\r\n.vc-related { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }\r\n.vc-related-link { display:inline-block; padding:8px 16px; font-family:var(--vc-font); font-size:13px; font-weight:600; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); border:1px solid var(--vc-border); border-radius:var(--vc-radius); text-decoration:none; transition:all 0.15s; }\r\n.vc-related-link:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\r\n\r\n\/* \u2500\u2500 PROMO \u2500\u2500 *\/\r\n.vc-promo { margin-top:24px; padding:20px; background:linear-gradient(135deg, var(--vc-accent-light), var(--vc-surface)); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); display:flex; align-items:center; gap:16px; }\r\n.vc-promo-text { flex:1; font-size:14px; color:var(--vc-ink-secondary); }\r\n.vc-promo-text strong { color:var(--vc-ink); }\r\n.vc-promo-link { padding:8px 20px; font-size:13px; font-weight:700; color:#fff; background:var(--vc-accent); border-radius:var(--vc-radius); text-decoration:none; white-space:nowrap; transition:background 0.15s; }\r\n.vc-promo-link:hover { background:var(--vc-accent-hover); }\r\n\r\n\/* \u2500\u2500 FOOTER \u2500\u2500 *\/\r\n.vc-footer { text-align:center; padding:32px 16px; font-size:13px; color:var(--vc-ink-muted); }\r\n.vc-footer a { color:var(--vc-accent); text-decoration:none; }\r\n.vc-footer a:hover { text-decoration:underline; }\r\n.vc-footer-links { margin-top:8px; font-size:12px; }\r\n.vc-footer-links a { margin:0 8px; }\r\n\r\n\/* \u2500\u2500 PRINT \u2500\u2500 *\/\r\n@media print {\r\n    .vc-section-body { max-height:none!important; }\r\n    .vc-faq-a { max-height:none!important; }\r\n    .vc-results { max-height:none!important; padding:24px!important; }\r\n    .vc-copy-btn, .vc-section-chevron, .vc-faq-chevron, .vc-presets, .vc-promo { display:none!important; }\r\n}\r\n<\/style>\r\n\r\n<div class=\"vc-calculator\" id=\"vc-blade-pass\">\r\n\r\n<!-- Header -->\r\n<header class=\"vc-header\">\r\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool #037<\/p>\r\n    <h1 class=\"vc-header-title\">Blade Pass Frequency Calculator<\/h1>\r\n    <p class=\"vc-header-subtitle\">Calculate the kinematic passage frequency for a known integer blade or vane count and measured shaft speed. Frequency alone does not predict amplitude or identify a fault.<\/p>\r\n    <div class=\"vc-badges\"><span class=\"vc-badge\">BPF \/ VPF<\/span><span class=\"vc-badge\">Kinematic Frequency<\/span><span class=\"vc-badge\">Not an ISO Limit<\/span><\/div>\r\n<\/header>\r\n\r\n<!-- Calculator Card -->\r\n<div class=\"vc-card\">\r\n    <form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\">\r\n        <div class=\"vc-form-grid\">\r\n            <div class=\"vc-field\">\r\n                <label class=\"vc-label\" for=\"vc-z\">Number of Blades \/ Vanes <span class=\"vc-label-hint\">(Z)<\/span><\/label>\r\n                <input class=\"vc-input\" type=\"text\" id=\"vc-z\" inputmode=\"numeric\" placeholder=\"e.g. 6\" value=\"6\">\r\n            <\/div>\r\n            <div class=\"vc-field\">\r\n                <label class=\"vc-label\" for=\"vc-rpm\">Shaft Speed <span class=\"vc-label-hint\">(RPM)<\/span><\/label>\r\n                <input class=\"vc-input\" type=\"text\" id=\"vc-rpm\" inputmode=\"decimal\" placeholder=\"e.g. 2950\" value=\"2950\">\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Presets -->\r\n        <div class=\"vc-presets\">\r\n            <div class=\"vc-presets-label\">Quick presets<\/div>\r\n            <button type=\"button\" class=\"vc-preset-btn\" data-z=\"6\" data-rpm=\"2950\">Centrifugal pump, 6 vanes, 2950 RPM<\/button>\r\n            <button type=\"button\" class=\"vc-preset-btn\" data-z=\"12\" data-rpm=\"1485\">ID fan, 12 blades, 1485 RPM<\/button>\r\n            <button type=\"button\" class=\"vc-preset-btn\" data-z=\"8\" data-rpm=\"1800\">Axial fan, 8 blades, 1800 RPM<\/button>\r\n        <\/div>\r\n    <\/form>\r\n\r\n    <!-- Results -->\r\n    <div class=\"vc-results\" id=\"vc-results\">\r\n        <div class=\"vc-results-head\">\r\n            <h2 class=\"vc-results-title\">Results<\/h2>\r\n            <button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">\r\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg>\r\n                Copy\r\n            <\/button>\r\n        <\/div>\r\n        <div class=\"vc-result-grid\">\r\n            <div class=\"vc-rcard vc-rcard-primary\">\r\n                <div class=\"vc-rcard-label\">Blade Pass Frequency (BPF)<\/div>\r\n                <div class=\"vc-rcard-value\" id=\"vc-r-bpf\">\u2014<\/div>\r\n            <\/div>\r\n            <div class=\"vc-rcard\">\r\n                <div class=\"vc-rcard-label\">BPF as Order of Shaft Speed<\/div>\r\n                <div class=\"vc-rcard-value\" id=\"vc-r-order\">\u2014<\/div>\r\n            <\/div>\r\n            <div class=\"vc-rcard\">\r\n                <div class=\"vc-rcard-label\">Shaft Frequency<\/div>\r\n                <div class=\"vc-rcard-value\" id=\"vc-r-shaft\">\u2014<\/div>\r\n            <\/div>\r\n            <div class=\"vc-rcard\">\r\n                <div class=\"vc-rcard-label\">BPF Period<\/div>\r\n                <div class=\"vc-rcard-value\" id=\"vc-r-period\">\u2014<\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <h3 style=\"font-family:var(--vc-display);font-size:17px;font-weight:700;margin:8px 0 12px;\">BPF Harmonics<\/h3>\r\n        <div style=\"overflow-x:auto;\">\r\n            <table class=\"vc-harm-table\" id=\"vc-harm-tbl\">\r\n                <thead>\r\n                    <tr>\r\n                        <th>Harmonic<\/th>\r\n                        <th>Frequency (Hz)<\/th>\r\n                        <th>Order (\u00d7 shaft)<\/th>\r\n                        <th>Period (ms)<\/th>\r\n                    <\/tr>\r\n                <\/thead>\r\n                <tbody id=\"vc-harm-body\"><\/tbody>\r\n            <\/table>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- Theory & Reference -->\r\n<div class=\"vc-section vc-open\" id=\"vc-sec-theory\">\r\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\"><span class=\"vc-section-toggle-text\"><span class=\"vc-section-icon\">\ud83d\udcd8<\/span><span class=\"vc-section-title\">Formula, Interpretation &amp; Limits<\/span><\/span><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><\/button>\r\n    <div class=\"vc-section-body\"><div class=\"vc-section-inner vc-theory\">\r\n        <h3>Passage frequency<\/h3>\r\n        <div class=\"vc-formula-box\">f<sub>BPF<\/sub> = Z \u00d7 n \/ 60 = Z \u00d7 f<sub>s<\/sub> [Hz]<\/div>\r\n        <div class=\"vc-formula-box\">f<sub>s<\/sub> = n \/ 60 [Hz]<\/div>\r\n        <p><strong>Z<\/strong> is the integer number of recurring rotor elements, <strong>n<\/strong> is shaft speed in r\/min, and <strong>f<sub>s<\/sub><\/strong> is shaft rotational frequency. For a fixed observation point, Z equally recurring elements produce Z passages per revolution. ANSI\/AMCA 301-22 gives this same fan blade-pass equation in its sound-rating method (Eq. 5.7).<\/p>\r\n\r\n        <h3>Harmonics and sidebands<\/h3>\r\n        <p>The table lists mathematical integer harmonics h\u00b7f<sub>BPF<\/sub>. Real spectra may contain BPF, harmonics and modulation components, but their presence and amplitude depend on rotor\/stator geometry, flow, loading, sensor location, structure and acoustic response. A calculated line is a frequency marker, not a predicted spectral amplitude.<\/p>\r\n\r\n        <h3>Diagnostic boundary<\/h3>\r\n        <div class=\"vc-warning-box\"><p><strong>Do not diagnose from one line.<\/strong> A BPF peak, its harmonics or shaft-spaced sidebands do not uniquely prove clearance error, blade damage, fouling, resonance, recirculation or cavitation. Compare like-for-like operating points with baseline\/trend data and use corroborating phase, waveform, pressure, acoustic, process and inspection evidence. Cavitation assessment also requires hydraulic operating and NPSH evidence.<\/p><\/div>\r\n\r\n        <h3>Worked calculation<\/h3>\r\n        <div class=\"vc-example-box\"><div class=\"vc-example-title\">Six vanes at 2950 r\/min<\/div><p>f<sub>s<\/sub> = 2950\/60 = 49.1667 Hz<\/p><p>f<sub>BPF<\/sub> = 6 \u00d7 49.1667 = <strong>295 Hz<\/strong><\/p><p>Period = 1\/295 = <strong>3.3898 ms<\/strong>; 2\u00d7BPF = 590 Hz; 3\u00d7BPF = 885 Hz.<\/p><\/div>\r\n\r\n        <h3>Sources and standard scope<\/h3>\r\n        <ul>\r\n            <li><a href=\"https:\/\/www.amca.org\/assets\/resources\/public\/Standards%20for%20Member%20Download\/amca-301-22.pdf\" target=\"_blank\" rel=\"noopener\">ANSI\/AMCA Standard 301-22<\/a>, Eq. 5.7 \u2014 fan blade-pass frequency.<\/li>\r\n            <li><a href=\"https:\/\/ntrs.nasa.gov\/citations\/20030064154\" target=\"_blank\" rel=\"noopener\">NASA technical report 20030064154<\/a> \u2014 BPF\/harmonics in rotor\u2013stator forced response and modulation context.<\/li>\r\n            <li><a href=\"https:\/\/www.grundfos.com\/fr\/learn\/research-and-insights\/cavitation\" target=\"_blank\" rel=\"noopener\">Grundfos cavitation reference<\/a> \u2014 cavitation and NPSH context.<\/li>\r\n        <\/ul>\r\n        <div class=\"vc-info-box\"><p><strong>Scope:<\/strong> steady shaft speed and one integer count of equally recurring elements. Variable speed smears or sweeps the frequency; nonuniform pitch can create additional components. This calculator is not an ISO severity or acceptance assessment.<\/p><\/div>\r\n    <\/div><\/div>\r\n<\/div>\r\n\r\n<div class=\"vc-section\" id=\"vc-sec-related\">\r\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\r\n        <span class=\"vc-section-toggle-text\">\r\n            <span class=\"vc-section-icon\">\ud83d\udd17<\/span>\r\n            <span class=\"vc-section-title\">Related Calculators<\/span>\r\n        <\/span>\r\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\r\n    <\/button>\r\n    <div class=\"vc-section-body\">\r\n        <div class=\"vc-section-inner\">\r\n            <div class=\"vc-related\">\r\n                <a class=\"vc-related-link\" href=\"\/calculators\/bearing-defect-frequencies\/\">Bearing Defect Frequencies<\/a>\r\n                <a class=\"vc-related-link\" href=\"\/calculators\/gear-mesh-frequency\/\">Gear Mesh Frequency<\/a>\r\n                <a class=\"vc-related-link\" href=\"\/calculators\/motor-electrical-frequencies\/\">Motor Electrical Frequencies<\/a>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- FAQ -->\r\n<div class=\"vc-section\" id=\"vc-sec-faq\">\r\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\r\n        <span class=\"vc-section-toggle-text\">\r\n            <span class=\"vc-section-icon\">\u2753<\/span>\r\n            <span class=\"vc-section-title\">Frequently Asked Questions<\/span>\r\n        <\/span>\r\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\r\n    <\/button>\r\n    <div class=\"vc-section-body\">\r\n        <div class=\"vc-section-inner\">\r\n            <div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- Promo -->\r\n<div class=\"vc-promo\">\r\n    <div class=\"vc-promo-text\">\r\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\r\n        Professional vibration analysis instruments for fan and pump diagnostics, field balancing, and condition monitoring. Used in 50+ countries.\r\n    <\/div>\r\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\r\n<\/div>\r\n\r\n<!-- Footer -->\r\n<footer class=\"vc-footer\"><p>&copy; 2024\u20132026 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p><p style=\"font-size:12px;margin-top:4px;\">Kinematic equation cross-checked to ANSI\/AMCA 301-22, Eq. 5.7. Not an ISO acceptance calculator. Scientific review: July 2026.<\/p><\/footer>\r\n\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.js\"><\/script>\r\n<script>\r\n(function() {\r\n    'use strict';\r\n\r\n    var SLUG = 'blade-pass-frequency';\r\n\r\n    function $(id) { return document.getElementById(id); }\r\n    function parseDecimal(raw) {\r\n        var s = String(raw).trim().replace(\/\\s+\/g, '');\r\n        if (!\/^[+]?(?:\\d+(?:[.,]\\d*)?|[.,]\\d+)$\/.test(s)) return NaN;\r\n        return Number(s.replace(',', '.'));\r\n    }\r\n    function parseCount(raw) {\r\n        var s = String(raw).trim();\r\n        if (!\/^\\d+$\/.test(s)) return NaN;\r\n        var n = Number(s);\r\n        return Number.isSafeInteger(n) ? n : NaN;\r\n    }\r\n    function fmt(n, d) { if (!Number.isFinite(n)) return '\u2014'; var f = n.toFixed(d === undefined ? 2 : d); return f.replace(\/(\\.\\d*?)0+$\/, '$1').replace(\/\\.$\/, ''); }\r\n\r\n    \/* \u2500\u2500 CALCULATION \u2500\u2500 *\/\r\n    function calculate() {\r\n        var Z = parseCount($('vc-z').value);\r\n        var RPM = parseDecimal($('vc-rpm').value);\r\n        var fs = RPM \/ 60;\r\n        var BPF = Z * fs;\r\n        if (!Number.isSafeInteger(Z) || Z < 1 || !Number.isFinite(RPM) || RPM <= 0 || !Number.isFinite(BPF) || BPF <= 0) {\r\n            $('vc-results').classList.remove('vc-visible');\r\n            return;\r\n        }\r\n        var period = 1000 \/ BPF;\r\n\r\n        $('vc-r-bpf').innerHTML = fmt(BPF, 6) + ' <span class=\"vc-rcard-unit\">Hz<\/span>';\r\n        $('vc-r-order').innerHTML = Z + '<span class=\"vc-rcard-unit\">\u00d7 shaft speed<\/span>';\r\n        $('vc-r-shaft').innerHTML = fmt(fs, 6) + ' <span class=\"vc-rcard-unit\">Hz<\/span> <span class=\"vc-rcard-unit\">(' + fmt(RPM, 6) + ' r\/min)<\/span>';\r\n        $('vc-r-period').innerHTML = fmt(period, 6) + ' <span class=\"vc-rcard-unit\">ms<\/span>';\r\n\r\n        var tbody = $('vc-harm-body');\r\n        tbody.innerHTML = '';\r\n        for (var h = 1; h <= 5; h++) {\r\n            var hFreq = BPF * h;\r\n            var hPeriod = 1000 \/ hFreq;\r\n            tbody.innerHTML += '<tr><td><strong>' + h + '\u00d7 BPF<\/strong><\/td><td>' + fmt(hFreq, 6) + '<\/td><td>' + (Z * h) + '\u00d7<\/td><td>' + fmt(hPeriod, 6) + '<\/td><\/tr>';\r\n        }\r\n        $('vc-results').classList.add('vc-visible');\r\n\r\n        var u = new URL(window.location);\r\n        u.searchParams.set('z', Z);\r\n        u.searchParams.set('rpm', RPM);\r\n        history.replaceState(null, '', u.toString());\r\n        saveHistory({z: Z, rpm: RPM, _summary: Z + ' elements, ' + RPM + ' r\/min \u2192 BPF = ' + fmt(BPF, 3) + ' Hz'});\r\n    }\r\n\r\n    \/* \u2500\u2500 PRESETS \u2500\u2500 *\/\r\n    document.querySelectorAll('.vc-preset-btn').forEach(function(btn) {\r\n        btn.addEventListener('click', function(e) {\r\n            e.preventDefault();\r\n            $('vc-z').value = this.getAttribute('data-z');\r\n            $('vc-rpm').value = this.getAttribute('data-rpm');\r\n            calculate();\r\n        });\r\n    });\r\n\r\n    \/* \u2500\u2500 AUTO-CALCULATE \u2500\u2500 *\/\r\n    $('vc-form').addEventListener('input', calculate);\r\n    $('vc-form').addEventListener('change', calculate);\r\n\r\n    \/* \u2500\u2500 COPY \u2500\u2500 *\/\r\n    $('vc-copy-btn').addEventListener('click', function() {\r\n        var text = 'Blade Pass Frequency Calculation\\n' +\r\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\r\n            'Number of blades\/vanes: ' + $('vc-z').value + '\\n' +\r\n            'Shaft speed: ' + $('vc-rpm').value + ' RPM\\n' +\r\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\r\n            'BPF: ' + $('vc-r-bpf').textContent + '\\n' +\r\n            'Shaft frequency: ' + $('vc-r-shaft').textContent + '\\n' +\r\n            'Period: ' + $('vc-r-period').textContent + '\\n' +\r\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\r\n            'vibromera.eu\/calculators\/blade-pass-frequency\/';\r\n\r\n        if (navigator.clipboard) {\r\n            navigator.clipboard.writeText(text).then(function() {\r\n                var btn = $('vc-copy-btn');\r\n                btn.classList.add('vc-copied');\r\n                btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg> Copied!';\r\n                setTimeout(function() {\r\n                    btn.classList.remove('vc-copied');\r\n                    btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg> Copy';\r\n                }, 2000);\r\n            });\r\n        }\r\n    });\r\n\r\n    \/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\r\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\r\n        btn.addEventListener('click', function() {\r\n            var section = this.closest('.vc-section');\r\n            var isOpen = section.classList.contains('vc-open');\r\n            section.classList.toggle('vc-open');\r\n            this.setAttribute('aria-expanded', !isOpen);\r\n        });\r\n    });\r\n\r\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\r\n    var faqData = [\r\n        { q: 'What does this calculator compute?', a: '<p>It computes <strong>fBPF = Z \u00d7 n\/60<\/strong> and integer harmonics for a known recurring-element count and shaft speed. It does not calculate spectral amplitude.<\/p>' },\r\n        { q: 'Does a BPF peak prove a fault?', a: '<p>No. BPF may be generated by normal periodic interaction. Assess amplitude against comparable baseline or trend data and corroborate with operating condition, phase, waveform, pressure, acoustic and inspection evidence.<\/p>' },\r\n        { q: 'Do harmonics or sidebands identify a specific defect?', a: '<p>No single BPF harmonic or sideband pattern is unique to damage, fouling, clearance, resonance, recirculation or cavitation. Treat the calculated lines as investigation markers.<\/p>' },\r\n        { q: 'How should variable speed be handled?', a: '<p>Use the actual instantaneous speed. During a speed sweep, BPF follows Z times shaft frequency; order tracking is generally more useful than a fixed-frequency marker.<\/p>' },\r\n        { q: 'Is this an ISO acceptance calculator?', a: '<p>No. It performs a kinematic frequency calculation and applies no ISO vibration severity limits or acceptance zones.<\/p>' }\r\n    ];\r\n\r\n    var faqList = $('vc-faq-list');\r\n    faqData.forEach(function(faq) {\r\n        faqList.innerHTML += '<div class=\"vc-faq-item\"><button type=\"button\" class=\"vc-faq-q\"><span>' + faq.q + '<\/span><svg class=\"vc-faq-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><div class=\"vc-faq-a\"><div class=\"vc-faq-a-inner\">' + faq.a + '<\/div><\/div><\/div>';\r\n    });\r\n    faqList.addEventListener('click', function(e) {\r\n        var btn = e.target.closest('.vc-faq-q');\r\n        if (!btn) return;\r\n        btn.closest('.vc-faq-item').classList.toggle('vc-open');\r\n    });\r\n\r\n    \/* \u2500\u2500 HISTORY \u2500\u2500 *\/\r\n    function saveHistory(entry) {\r\n        var key = 'vc_history_' + SLUG;\r\n        var arr = [];\r\n        try { arr = JSON.parse(localStorage.getItem(key)) || []; } catch(e) {}\r\n        entry._ts = new Date().toISOString();\r\n        arr.unshift(entry);\r\n        if (arr.length > 10) arr = arr.slice(0, 10);\r\n        try { localStorage.setItem(key, JSON.stringify(arr)); } catch(e) {}\r\n    }\r\n\r\n    \/* \u2500\u2500 URL PARAMS \u2500\u2500 *\/\r\n    function loadParams() {\r\n        var p = new URLSearchParams(window.location.search);\r\n        if (p.has('z')) $('vc-z').value = p.get('z');\r\n        if (p.has('rpm')) $('vc-rpm').value = p.get('rpm');\r\n    }\r\n\r\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\r\n    function renderFormulas() {\r\n        try {\r\n            katex.render('\\\\text{BPF} = Z \\\\times \\\\frac{\\\\text{RPM}}{60} = Z \\\\times f_s \\\\quad [\\\\text{Hz}]', $('vc-katex-bpf'), { displayMode: true, throwOnError: false });\r\n            katex.render('f_s = \\\\frac{\\\\text{RPM}}{60} \\\\quad [\\\\text{Hz}]', $('vc-katex-fs'), { displayMode: true, throwOnError: false });\r\n        } catch(e) {}\r\n    }\r\n\r\n    \/* \u2500\u2500 INIT \u2500\u2500 *\/\r\n    function init() {\r\n        loadParams();\r\n        renderFormulas();\r\n        calculate();\r\n    }\r\n\r\n    if (document.readyState === 'loading') {\r\n        document.addEventListener('DOMContentLoaded', init);\r\n    } else {\r\n        init();\r\n    }\r\n})();\r\n<\/script>\r\n","protected":false},"excerpt":{"rendered":"<p>Calculate blade or vane pass frequency, shaft frequency, period and integer harmonics. Kinematic frequency markers with explicit diagnostic limits.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100037","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/it\/wp-json\/wp\/v2\/calculator\/100037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/it\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/it\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":2,"href":"https:\/\/vibromera.eu\/it\/wp-json\/wp\/v2\/calculator\/100037\/revisions"}],"predecessor-version":[{"id":102327,"href":"https:\/\/vibromera.eu\/it\/wp-json\/wp\/v2\/calculator\/100037\/revisions\/102327"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/it\/wp-json\/wp\/v2\/media?parent=100037"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/it\/wp-json\/wp\/v2\/categories?post=100037"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/it\/wp-json\/wp\/v2\/tags?post=100037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}