{"id":100076,"date":"2026-02-15T20:15:17","date_gmt":"2026-02-15T20:15:17","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100076"},"modified":"2026-02-15T20:15:17","modified_gmt":"2026-02-15T20:15:17","slug":"diagnostic-matrix","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/nb\/calculators\/diagnostic-matrix\/","title":{"rendered":"Vibrasjonsdiagnostikkmatrise | ISO 13379 | Feilidentifisering"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Vibration Diagnostic Matrix\",\"description\":\"Interactive vibration fault identification tool based on pattern matching of vibration symptoms.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/diagnostic-matrix\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"inLanguage\":\"en\",\"isAccessibleForFree\":true}\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<style>\n:root{--vc-bg:#f4f1ec;--vc-surface:#fff;--vc-surface-alt:#f8f6f2;--vc-ink:#1a1a1a;--vc-ink-secondary:#5a5650;--vc-ink-muted:#8a857e;--vc-accent:#c85a2a;--vc-accent-hover:#b04d22;--vc-accent-light:#fdf0ea;--vc-blue:#2a5c8c;--vc-blue-light:#eaf1f8;--vc-green:#2a7a4b;--vc-green-light:#eaf8ef;--vc-yellow:#a67c00;--vc-yellow-light:#fef9e8;--vc-red:#b91c1c;--vc-red-light:#fef2f2;--vc-border:#d9d4cc;--vc-border-light:#e8e4dd;--vc-shadow:0 1px 3px rgba(26,26,26,0.06),0 4px 12px rgba(26,26,26,0.04);--vc-radius:8px;--vc-radius-lg:12px;--vc-font:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--vc-mono:'JetBrains Mono','Consolas','Monaco',monospace;--vc-display:'Fraunces',Georgia,serif}\n.vc-calculator{font-family:var(--vc-font);font-size:15px;line-height:1.65;color:var(--vc-ink);max-width:960px;margin:0 auto;padding:20px 16px 40px;-webkit-font-smoothing:antialiased}\n.vc-calculator *,.vc-calculator *::before,.vc-calculator *::after{box-sizing:border-box}\n.vc-header{text-align:center;padding:48px 24px 40px;position:relative}\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:640px}\n.vc-badges{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}\n.vc-badge{font-family:var(--vc-mono);font-size:11px;font-weight:500;padding:4px 10px;border-radius:4px;background:var(--vc-surface);border:1px solid var(--vc-border);color:var(--vc-ink-secondary)}\n.vc-card{background:var(--vc-surface);border:1px solid var(--vc-border);border-radius:var(--vc-radius-lg);box-shadow:var(--vc-shadow);overflow:hidden;margin-top:32px}\n.vc-form{padding:24px}\n.vc-symptom-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}\n@media(max-width:600px){.vc-symptom-grid{grid-template-columns:1fr}}\n.vc-symptom-label{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1.5px solid var(--vc-border);border-radius:6px;cursor:pointer;transition:all 0.15s;font-size:14px;color:var(--vc-ink-secondary);user-select:none}\n.vc-symptom-label:hover{border-color:var(--vc-accent);color:var(--vc-ink)}\n.vc-symptom-label input{display:none}\n.vc-symptom-label input:checked + .vc-symptom-check{background:var(--vc-accent);border-color:var(--vc-accent)}\n.vc-symptom-label input:checked + .vc-symptom-check::after{content:'\u2713';color:#fff;font-size:11px;font-weight:700}\n.vc-symptom-label input:checked ~ .vc-symptom-text{color:var(--vc-ink);font-weight:600}\n.vc-symptom-check{width:20px;height:20px;border:2px solid var(--vc-border);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.15s}\n.vc-symptom-text{flex:1}\n.vc-btn-row{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}\n.vc-btn{padding:10px 24px;font-family:var(--vc-font);font-size:14px;font-weight:700;border:none;border-radius:6px;cursor:pointer;transition:all 0.15s}\n.vc-btn-primary{background:var(--vc-accent);color:#fff}\n.vc-btn-primary:hover{background:var(--vc-accent-hover)}\n.vc-btn-secondary{background:var(--vc-surface-alt);color:var(--vc-ink-secondary);border:1px solid var(--vc-border)}\n.vc-btn-secondary:hover{border-color:var(--vc-accent);color:var(--vc-accent)}\n.vc-results{border-top:1px solid var(--vc-border-light);background:var(--vc-surface-alt);padding:0;max-height:0;overflow:hidden;transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1),padding 0.3s}\n.vc-results.vc-visible{max-height:5000px;padding:24px}\n.vc-results-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}\n.vc-results-title{font-family:var(--vc-display);font-size:20px;font-weight:700;color:var(--vc-ink);margin:0}\n.vc-fault-list{display:flex;flex-direction:column;gap:12px}\n.vc-fault-item{background:var(--vc-surface);border:1px solid var(--vc-border-light);border-radius:var(--vc-radius);padding:16px 20px;display:flex;align-items:flex-start;gap:16px}\n.vc-fault-rank{font-family:var(--vc-mono);font-size:24px;font-weight:700;color:var(--vc-accent);min-width:36px;text-align:center}\n.vc-fault-details{flex:1}\n.vc-fault-name{font-size:16px;font-weight:700;color:var(--vc-ink);margin:0 0 4px}\n.vc-fault-conf{font-family:var(--vc-mono);font-size:12px;font-weight:600;display:inline-block;padding:2px 8px;border-radius:4px;margin-bottom:8px}\n.vc-conf-high{background:var(--vc-red-light);color:var(--vc-red)}\n.vc-conf-med{background:var(--vc-yellow-light);color:var(--vc-yellow)}\n.vc-conf-low{background:var(--vc-blue-light);color:var(--vc-blue)}\n.vc-fault-desc{font-size:13px;color:var(--vc-ink-secondary);margin:0}\n.vc-fault-bar{width:100%;height:6px;background:var(--vc-border-light);border-radius:3px;margin-top:8px;overflow:hidden}\n.vc-fault-bar-fill{height:100%;border-radius:3px;transition:width 0.5s}\n.vc-no-selection{padding:40px;text-align:center;color:var(--vc-ink-muted);font-size:15px}\n.vc-section{margin-top:24px;border:1px solid var(--vc-border);border-radius:var(--vc-radius-lg);background:var(--vc-surface);box-shadow:var(--vc-shadow);overflow:hidden}\n.vc-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border:none;background:transparent;cursor:pointer;font-family:var(--vc-font);text-align:left;transition:background 0.15s}\n.vc-section-toggle:hover{background:var(--vc-surface-alt)}\n.vc-section-toggle-text{display:flex;align-items:center;gap:10px}\n.vc-section-icon{font-size:20px;line-height:1}\n.vc-section-title{font-family:var(--vc-display);font-size:18px;font-weight:700;color:var(--vc-ink);margin:0}\n.vc-section-chevron{width:20px;height:20px;color:var(--vc-ink-muted);transition:transform 0.3s;flex-shrink:0}\n.vc-section.vc-open .vc-section-chevron{transform:rotate(180deg)}\n.vc-section-body{max-height:0;overflow:hidden;transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1)}\n.vc-section.vc-open .vc-section-body{max-height:20000px}\n.vc-section-inner{padding:0 24px 24px;border-top:1px solid var(--vc-border-light)}\n.vc-theory h3{font-family:var(--vc-display);font-size:17px;font-weight:700;color:var(--vc-ink);margin:28px 0 10px}\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-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.vc-related{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}\n.vc-related-link{display:inline-block;padding:8px 16px;font-family:var(--vc-font);font-size:13px;font-weight:600;background:var(--vc-surface-alt);color:var(--vc-ink-secondary);border:1px solid var(--vc-border);border-radius:var(--vc-radius);text-decoration:none;transition:all 0.15s}\n.vc-related-link:hover{border-color:var(--vc-accent);color:var(--vc-accent);background:var(--vc-accent-light)}\n.vc-promo{margin-top:24px;padding:20px;background:linear-gradient(135deg,var(--vc-accent-light),var(--vc-surface));border:1px solid var(--vc-border);border-radius:var(--vc-radius-lg);display:flex;align-items:center;gap:16px}\n.vc-promo-text{flex:1;font-size:14px;color:var(--vc-ink-secondary)}\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.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@media print{.vc-section-body{max-height:none!important}.vc-results{max-height:none!important;padding:24px!important}.vc-promo{display:none!important}}\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-diag-matrix\">\n\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool<\/p>\n    <h1 class=\"vc-header-title\">Vibration Diagnostic Matrix<\/h1>\n    <p class=\"vc-header-subtitle\">Select observed vibration symptoms to identify probable faults ranked by confidence level. Based on ISO 13379 pattern matching and industry experience.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">ISO 13379<\/span>\n        <span class=\"vc-badge\">Pattern Matching<\/span>\n        <span class=\"vc-badge\">15+ Fault Types<\/span>\n    <\/div>\n<\/header>\n\n<div class=\"vc-card\">\n    <div class=\"vc-form\">\n        <div style=\"font-size:12px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--vc-ink-secondary);margin-bottom:12px;\">Select Observed Symptoms<\/div>\n        <div class=\"vc-symptom-grid\" id=\"vc-symptoms\"><\/div>\n        <div class=\"vc-btn-row\">\n            <button type=\"button\" class=\"vc-btn vc-btn-primary\" id=\"vc-diagnose\">Diagnose<\/button>\n            <button type=\"button\" class=\"vc-btn vc-btn-secondary\" id=\"vc-clear\">Clear All<\/button>\n        <\/div>\n    <\/div>\n    <div class=\"vc-results\" id=\"vc-results\">\n        <div class=\"vc-results-head\">\n            <h2 class=\"vc-results-title\">Probable Faults<\/h2>\n        <\/div>\n        <div class=\"vc-fault-list\" id=\"vc-fault-list\"><\/div>\n    <\/div>\n<\/div>\n\n<!-- Theory -->\n<div class=\"vc-section\" id=\"vc-sec-theory\">\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\udcd8<\/span>\n            <span class=\"vc-section-title\">Diagnostic Reference<\/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>How This Tool Works<\/h3>\n            <p>Each fault type has a characteristic vibration &#8220;fingerprint&#8221; \u2014 a specific pattern of symptoms. This tool uses a weighted scoring system to match your selected symptoms against known fault patterns and ranks them by confidence.<\/p>\n            <p>The confidence percentage indicates how well the selected symptoms match the typical pattern for each fault. Higher confidence means more symptoms match.<\/p>\n\n            <h3>Quick Reference: Common Fault Patterns<\/h3>\n            <table class=\"vc-table\">\n                <thead><tr><th>Fault<\/th><th>Key Indicators<\/th><th>Direction<\/th><\/tr><\/thead>\n                <tbody>\n                    <tr><td>Unbalance<\/td><td>High 1\u00d7, proportional to speed\u00b2<\/td><td>Radial dominant<\/td><\/tr>\n                    <tr><td>Angular misalignment<\/td><td>High 1\u00d7 and 2\u00d7 axial<\/td><td>Axial dominant<\/td><\/tr>\n                    <tr><td>Offset misalignment<\/td><td>High 2\u00d7 radial<\/td><td>Radial dominant<\/td><\/tr>\n                    <tr><td>Mechanical looseness<\/td><td>Multiple harmonics, subharmonics<\/td><td>Radial dominant<\/td><\/tr>\n                    <tr><td>Bearing defect (outer race)<\/td><td>BPFO + harmonics, non-synchronous<\/td><td>Radial<\/td><\/tr>\n                    <tr><td>Bearing defect (inner race)<\/td><td>BPFI + harmonics, modulated by 1\u00d7<\/td><td>Radial<\/td><\/tr>\n                    <tr><td>Gear mesh problems<\/td><td>GMF + sidebands<\/td><td>Radial &#038; axial<\/td><\/tr>\n                    <tr><td>Resonance<\/td><td>High at specific frequency, speed-dependent<\/td><td>Depends on mode<\/td><\/tr>\n                <\/tbody>\n            <\/table>\n\n            <div style=\"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                <p style=\"margin:0;font-size:14px;color:var(--vc-ink-secondary);\"><strong>\u26a0\ufe0f Disclaimer:<\/strong> This tool provides guidance based on pattern matching. Vibration diagnosis requires expertise and often additional data (phase, time waveform, operating conditions). Always validate results with an experienced analyst.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Related -->\n<div class=\"vc-section\" id=\"vc-sec-related\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udd17<\/span>\n            <span class=\"vc-section-title\">Related Tools<\/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\/vibration-glossary\/\">Vibration Glossary<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/residual-unbalance-iso1940\/\">Residual Unbalance<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/motor-winding-resistance\/\">Motor Winding Resistance<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\">\n        <strong>Vibromera \u2014 Portable Balancing &#038; Vibration Analysis<\/strong><br>\n        Professional field balancing instruments and software. Used in 50+ countries.\n    <\/div>\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\n<\/div>\n\n<footer class=\"vc-footer\">\n    <p>\u00a9 2024\u20132025 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p>\n    <p style=\"font-size:12px;margin-top:4px;\">Based on ISO 13379. 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>\n(function() {\n    'use strict';\n\n    var SYMPTOMS = [\n        {id:'1x_high',label:'1\u00d7 (shaft speed) high'},\n        {id:'2x_high',label:'2\u00d7 high'},\n        {id:'3x_high',label:'3\u00d7 or higher harmonics'},\n        {id:'subharm',label:'Subharmonics (0.5\u00d7, 0.33\u00d7)'},\n        {id:'broadband',label:'Broadband \/ raised noise floor'},\n        {id:'non_sync',label:'Non-synchronous peaks'},\n        {id:'axial_dom',label:'Axial vibration dominant'},\n        {id:'radial_dom',label:'Radial vibration dominant'},\n        {id:'unstable',label:'Amplitude unstable \/ fluctuating'},\n        {id:'speed_dep',label:'Speed-dependent (changes with RPM)'},\n        {id:'load_dep',label:'Load-dependent'},\n        {id:'high_freq',label:'High-frequency energy (HFD\/envelope)'},\n        {id:'sidebands',label:'Sidebands around a peak'},\n        {id:'impulsive',label:'Impulsive time waveform'},\n        {id:'phase_stable',label:'Phase stable at 1\u00d7'},\n        {id:'phase_unstable',label:'Phase unstable \/ erratic'},\n        {id:'bpf_high',label:'Blade\/vane pass frequency high'},\n        {id:'gmf_high',label:'Gear mesh frequency high'},\n        {id:'thermal',label:'Changes with temperature'},\n        {id:'startup',label:'High during startup\/shutdown'}\n    ];\n\n    var FAULTS = [\n        {name:'Mass Unbalance',desc:'Uneven mass distribution on rotor. Most common cause of 1\u00d7 vibration. Force proportional to speed\u00b2. Phase stable.',symptoms:{'1x_high':5,radial_dom:3,speed_dep:4,phase_stable:4,load_dep:0},max:16},\n        {name:'Angular Misalignment',desc:'Shaft centerlines meet at an angle at the coupling. Produces high axial vibration at 1\u00d7 and 2\u00d7.',symptoms:{'1x_high':3,'2x_high':4,axial_dom:5,speed_dep:2,phase_stable:3},max:17},\n        {name:'Offset (Parallel) Misalignment',desc:'Shaft centerlines are parallel but offset. Strong 2\u00d7 radial vibration. Also affects 1\u00d7 and 3\u00d7.',symptoms:{'1x_high':2,'2x_high':5,'3x_high':2,radial_dom:4,phase_stable:2},max:15},\n        {name:'Mechanical Looseness \u2014 Structural',desc:'Loose bolts, soft foot, or cracked frame. Produces harmonics of 1\u00d7 and sometimes subharmonics.',symptoms:{'1x_high':2,'2x_high':3,'3x_high':4,subharm:3,radial_dom:3,phase_unstable:3},max:18},\n        {name:'Mechanical Looseness \u2014 Rotating',desc:'Excessive bearing clearance or loose rotor on shaft. Many harmonics, often directional.',symptoms:{'1x_high':2,'2x_high':2,'3x_high':5,subharm:4,radial_dom:2,unstable:3,phase_unstable:3},max:21},\n        {name:'Rolling Element Bearing \u2014 Early Stage',desc:'Microscopic defects on races or balls. Detectable only in high-frequency \/ envelope analysis. Normal spectrum may look clean.',symptoms:{high_freq:5,impulsive:3,non_sync:3,broadband:1},max:12},\n        {name:'Rolling Element Bearing \u2014 Intermediate',desc:'Defect visible in spectrum as BPFI\/BPFO peaks with harmonics and sidebands. Increasing amplitude.',symptoms:{non_sync:5,high_freq:4,sidebands:4,impulsive:4,broadband:2,radial_dom:2},max:21},\n        {name:'Rolling Element Bearing \u2014 Advanced',desc:'Major defect. High broadband noise, loss of discrete peaks. Audible noise. Failure imminent.',symptoms:{broadband:5,non_sync:3,high_freq:3,impulsive:3,unstable:3,radial_dom:2},max:19},\n        {name:'Journal Bearing \u2014 Oil Whirl',desc:'Subsynchronous vibration at 0.42\u20130.48\u00d7 shaft speed in fluid-film bearings. Speed-dependent.',symptoms:{subharm:5,unstable:3,speed_dep:4,radial_dom:3,non_sync:3},max:18},\n        {name:'Journal Bearing \u2014 Oil Whip',desc:'Severe subsynchronous vibration locked at first critical speed. Load-dependent. Can be catastrophic.',symptoms:{subharm:5,unstable:4,speed_dep:2,load_dep:4,radial_dom:3,non_sync:3},max:21},\n        {name:'Gear Mesh Problem',desc:'Worn, damaged, or eccentric gears. GMF prominent with sidebands spaced at shaft speed.',symptoms:{gmf_high:5,sidebands:5,'3x_high':2,load_dep:3,high_freq:2},max:17},\n        {name:'Resonance',desc:'Structural or rotor natural frequency excited by an operating speed or force. Very high at a specific speed, drops off dramatically at other speeds.',symptoms:{'1x_high':3,speed_dep:5,startup:5,radial_dom:2,unstable:2},max:17},\n        {name:'Bent Shaft',desc:'Permanent shaft bow. High 1\u00d7 axial. 2\u00d7 can be present. Phase difference ~180\u00b0 between bearings on same shaft.',symptoms:{'1x_high':4,'2x_high':2,axial_dom:4,phase_stable:3,speed_dep:2},max:15},\n        {name:'Aerodynamic \/ Hydraulic Forces',desc:'Blade pass \/ vane pass excitation, recirculation, cavitation. BPF high. Load and flow dependent.',symptoms:{bpf_high:5,broadband:3,load_dep:5,high_freq:2,unstable:2},max:17},\n        {name:'Electrical \u2014 Rotor Problems',desc:'Broken rotor bars, eccentric rotor. 1\u00d7 with sidebands at slip frequency \u00d7 pole pass. Load-dependent.',symptoms:{'1x_high':4,sidebands:3,load_dep:5,speed_dep:2,unstable:2},max:16},\n        {name:'Electrical \u2014 Stator Problems',desc:'Uneven air gap, loose stator laminations. 2\u00d7 line frequency (100\/120 Hz). Disappears instantly on power cut.',symptoms:{'2x_high':4,broadband:2,load_dep:3,unstable:2,radial_dom:2},max:13},\n        {name:'Belt Drive Problems',desc:'Worn, misaligned, or loose belts. Peaks at belt frequency (sub-synchronous) and its harmonics. 2\u00d7 belt frequency common for misaligned belts.',symptoms:{subharm:4,non_sync:4,'1x_high':2,unstable:2,radial_dom:2},max:14}\n    ];\n\n    function $(id) { return document.getElementById(id); }\n\n    \/\/ Render symptoms\n    var sympGrid = $('vc-symptoms');\n    SYMPTOMS.forEach(function(s) {\n        sympGrid.innerHTML += '<label class=\"vc-symptom-label\"><input type=\"checkbox\" value=\"' + s.id + '\"><span class=\"vc-symptom-check\"><\/span><span class=\"vc-symptom-text\">' + s.label + '<\/span><\/label>';\n    });\n\n    function diagnose() {\n        var checked = [];\n        sympGrid.querySelectorAll('input:checked').forEach(function(cb) { checked.push(cb.value); });\n\n        if (checked.length === 0) {\n            $('vc-fault-list').innerHTML = '<div class=\"vc-no-selection\">Select at least one symptom above, then click <strong>Diagnose<\/strong>.<\/div>';\n            $('vc-results').classList.add('vc-visible');\n            return;\n        }\n\n        var scores = FAULTS.map(function(fault, idx) {\n            var score = 0;\n            var matched = 0;\n            checked.forEach(function(s) {\n                if (fault.symptoms[s]) {\n                    score += fault.symptoms[s];\n                    matched++;\n                }\n            });\n            var confidence = Math.min(100, Math.round((score \/ fault.max) * 100));\n            return { idx: idx, score: score, confidence: confidence, matched: matched };\n        });\n\n        scores.sort(function(a, b) { return b.score - a.score || b.confidence - a.confidence; });\n        scores = scores.filter(function(s) { return s.score > 0; });\n\n        var html = '';\n        var maxScore = scores.length > 0 ? scores[0].score : 1;\n\n        scores.forEach(function(s, rank) {\n            var f = FAULTS[s.idx];\n            var confClass = s.confidence >= 60 ? 'vc-conf-high' : (s.confidence >= 30 ? 'vc-conf-med' : 'vc-conf-low');\n            var barColor = s.confidence >= 60 ? 'var(--vc-red)' : (s.confidence >= 30 ? 'var(--vc-yellow)' : 'var(--vc-blue)');\n\n            html += '<div class=\"vc-fault-item\">';\n            html += '<div class=\"vc-fault-rank\">#' + (rank + 1) + '<\/div>';\n            html += '<div class=\"vc-fault-details\">';\n            html += '<div class=\"vc-fault-name\">' + f.name + '<\/div>';\n            html += '<span class=\"vc-fault-conf ' + confClass + '\">' + s.confidence + '% confidence (' + s.matched + ' symptoms match)<\/span>';\n            html += '<p class=\"vc-fault-desc\">' + f.desc + '<\/p>';\n            html += '<div class=\"vc-fault-bar\"><div class=\"vc-fault-bar-fill\" style=\"width:' + s.confidence + '%;background:' + barColor + '\"><\/div><\/div>';\n            html += '<\/div><\/div>';\n        });\n\n        if (html === '') {\n            html = '<div class=\"vc-no-selection\">No matching faults found for the selected symptoms.<\/div>';\n        }\n\n        $('vc-fault-list').innerHTML = html;\n        $('vc-results').classList.add('vc-visible');\n    }\n\n    $('vc-diagnose').addEventListener('click', diagnose);\n    $('vc-clear').addEventListener('click', function() {\n        sympGrid.querySelectorAll('input:checked').forEach(function(cb) { cb.checked = false; });\n        $('vc-results').classList.remove('vc-visible');\n    });\n\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            var section = this.closest('.vc-section');\n            section.classList.toggle('vc-open');\n            this.setAttribute('aria-expanded', section.classList.contains('vc-open'));\n        });\n    });\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Interaktiv vibrasjonsdiagnosematrise for feilidentifisering. Velg vibrasjonssymptomer for \u00e5 rangere sannsynlige \u00e5rsaker med konfidensniv\u00e5er. Basert p\u00e5 ISO 13379 m\u00f8nstermatching.<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100076","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator\/100076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":1,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator\/100076\/revisions"}],"predecessor-version":[{"id":100391,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/calculator\/100076\/revisions\/100391"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/media?parent=100076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/categories?post=100076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/nb\/wp-json\/wp\/v2\/tags?post=100076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}