{"id":100137,"date":"2026-02-15T20:19:43","date_gmt":"2026-02-15T20:19:43","guid":{"rendered":"https:\/\/vibromera.eu\/?post_type=calculator&#038;p=100137"},"modified":"2026-02-15T20:19:43","modified_gmt":"2026-02-15T20:19:43","slug":"influence-coefficient-calculator","status":"publish","type":"calculator","link":"https:\/\/vibromera.eu\/bn\/calculators\/influence-coefficient-calculator\/","title":{"rendered":"Influence Coefficient Calculator | Single-Plane Balancing"},"content":{"rendered":"\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"WebApplication\",\"name\":\"Influence Coefficient Calculator\",\"alternateName\":[\"Single-Plane Balancing Calculator\",\"Trial Weight Vector Calculator\"],\"description\":\"Free online influence coefficient calculator for single-plane rotor balancing. Uses vector math to compute correction mass and angle from initial and trial vibration measurements.\",\"url\":\"https:\/\/vibromera.eu\/calculators\/influence-coefficient-calculator\/\",\"applicationCategory\":\"Engineering Calculator\",\"operatingSystem\":\"Any (Web Browser)\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"name\":\"Vibromera\",\"url\":\"https:\/\/vibromera.eu\/\"},\"datePublished\":\"2025-01-01\",\"dateModified\":\"2025-02-14\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"featureList\":[\"Complex vector arithmetic\",\"Correction mass and angle\",\"Influence coefficient magnitude\",\"Residual vibration estimate\",\"Auto-calculation on input change\"],\"keywords\":\"influence coefficient, single-plane balancing, trial weight, correction mass, vector balancing\"}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"What is an influence coefficient?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"An influence coefficient describes how a unit weight at a specific location and angle affects the vibration of a rotor. It is a complex number (magnitude and phase) that relates the change in vibration to the trial weight that caused it. Once known, the coefficient can be used to calculate the exact correction weight needed.\"}},\n{\"@type\":\"Question\",\"name\":\"How to do single-plane balancing?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Single-plane balancing involves three steps: 1) Measure initial vibration (amplitude and phase), 2) Add a known trial weight and measure the new vibration, 3) Use vector math to calculate the correction weight. The influence coefficient method automates step 3 by computing the vibration change vector and dividing to find the correction.\"}},\n{\"@type\":\"Question\",\"name\":\"What if vibration increases after adding the trial weight?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"An increase in vibration after adding the trial weight is normal and expected in many cases \u2014 it simply means the trial weight was placed in an unfavorable angular position. The vector math still works correctly regardless. However, if vibration increases dramatically (more than 3-4\u00d7), use a smaller trial weight for safety.\"}},\n{\"@type\":\"Question\",\"name\":\"Can I do multiple runs to improve accuracy?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. After placing the calculated correction weight, you can measure the residual vibration and perform another trim balance run using the same influence coefficient. Each iteration typically reduces residual vibration. Two to three runs usually achieve the desired balance quality.\"}},\n{\"@type\":\"Question\",\"name\":\"What factors affect accuracy?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Key accuracy factors include: measurement repeatability (run the rotor to the same speed), sensor quality and mounting, phase reference stability, rotor thermal state consistency, and trial weight size (should produce a measurable change but not be dangerously large \u2014 typically 5-30% of the expected correction).\"}}\n]}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[\n{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/vibromera.eu\/\"},\n{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculators\",\"item\":\"https:\/\/vibromera.eu\/calculators\/\"},\n{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Influence Coefficient Calculator\",\"item\":\"https:\/\/vibromera.eu\/calculators\/influence-coefficient-calculator\/\"}\n]}\n<\/script>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&#038;family=JetBrains+Mono:wght@400;500;600&#038;family=Fraunces:opsz,wght@9..144,700;9..144,800&#038;display=swap\" rel=\"stylesheet\">\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.css\">\n\n<style>\n:root {\n    --vc-bg: #f4f1ec;\n    --vc-surface: #ffffff;\n    --vc-surface-alt: #f8f6f2;\n    --vc-ink: #1a1a1a;\n    --vc-ink-secondary: #5a5650;\n    --vc-ink-muted: #8a857e;\n    --vc-accent: #c85a2a;\n    --vc-accent-hover: #b04d22;\n    --vc-accent-light: #fdf0ea;\n    --vc-blue: #2a5c8c;\n    --vc-blue-light: #eaf1f8;\n    --vc-green: #2a7a4b;\n    --vc-green-light: #eaf8ef;\n    --vc-yellow: #a67c00;\n    --vc-yellow-light: #fef9e8;\n    --vc-red: #b91c1c;\n    --vc-red-light: #fef2f2;\n    --vc-border: #d9d4cc;\n    --vc-border-light: #e8e4dd;\n    --vc-shadow: 0 1px 3px rgba(26,26,26,0.06), 0 4px 12px rgba(26,26,26,0.04);\n    --vc-shadow-lg: 0 4px 12px rgba(26,26,26,0.08), 0 16px 40px rgba(26,26,26,0.06);\n    --vc-radius: 8px;\n    --vc-radius-lg: 12px;\n    --vc-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    --vc-mono: 'JetBrains Mono', 'Consolas', 'Monaco', monospace;\n    --vc-display: 'Fraunces', Georgia, serif;\n}\n\n.vc-calculator {\n    font-family: var(--vc-font);\n    font-size: 15px;\n    line-height: 1.65;\n    color: var(--vc-ink);\n    max-width: 960px;\n    margin: 0 auto;\n    padding: 20px 16px 40px;\n    -webkit-font-smoothing: antialiased;\n}\n.vc-calculator *, .vc-calculator *::before, .vc-calculator *::after { box-sizing: border-box; }\n\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\n.vc-header { text-align: center; padding: 48px 24px 40px; position: relative; }\n.vc-header::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:80px; height:3px; background:var(--vc-accent); border-radius:2px; }\n.vc-header-eyebrow { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:var(--vc-accent); margin:0 0 12px; }\n.vc-header-title { font-family:var(--vc-display); font-size:clamp(24px,4vw,36px); font-weight:800; line-height:1.15; color:var(--vc-ink); margin:0 0 16px; letter-spacing:-0.02em; }\n.vc-header-subtitle { font-size:15px; color:var(--vc-ink-secondary); margin:0 auto 20px; max-width:600px; }\n.vc-badges { display:inline-flex; gap:8px; flex-wrap:wrap; justify-content:center; }\n.vc-badge { font-family:var(--vc-mono); font-size:11px; font-weight:500; padding:4px 10px; border-radius:4px; background:var(--vc-surface); border:1px solid var(--vc-border); color:var(--vc-ink-secondary); }\n\n\/* \u2500\u2500 CARD \u2500\u2500 *\/\n.vc-card { background:var(--vc-surface); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); box-shadow:var(--vc-shadow); overflow:hidden; margin-top:32px; }\n\n\/* \u2500\u2500 FORM \u2500\u2500 *\/\n.vc-form { padding:24px; }\n.vc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }\n@media(max-width:600px) { .vc-form-grid { grid-template-columns:1fr; } }\n.vc-field { display:flex; flex-direction:column; }\n.vc-field-full { grid-column: 1 \/ -1; }\n.vc-label { font-size:12px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--vc-ink-secondary); margin-bottom:6px; }\n.vc-label-hint { font-weight:400; text-transform:none; letter-spacing:0; color:var(--vc-ink-muted); font-size:11px; }\n.vc-select, .vc-input { width:100%; padding:10px 12px; border:1.5px solid var(--vc-border); border-radius:6px; font-family:var(--vc-font); font-size:14px; color:var(--vc-ink); background:var(--vc-surface); transition:border-color 0.15s, box-shadow 0.15s; }\n.vc-select { padding-right:36px; appearance:none; -webkit-appearance:none; cursor:pointer; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='none' stroke='%235a5650' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:right 10px center; }\n.vc-select:focus, .vc-input:focus { outline:none; border-color:var(--vc-accent); box-shadow:0 0 0 3px rgba(200,90,42,0.12); }\n.vc-select:hover, .vc-input:hover { border-color:var(--vc-ink-muted); }\n\n.vc-form-divider { grid-column: 1 \/ -1; border: none; border-top: 1px solid var(--vc-border-light); margin: 4px 0; }\n.vc-form-section-label { grid-column: 1 \/ -1; font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-accent); margin-bottom:-8px; }\n\n\/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n.vc-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid var(--vc-border-light); }\n.vc-presets-label { font-family:var(--vc-mono); font-size:11px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); width:100%; margin-bottom:2px; }\n.vc-preset-btn { padding:5px 12px; font-family:var(--vc-font); font-size:12px; font-weight:500; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\n.vc-preset-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\n\/* \u2500\u2500 RESULTS \u2500\u2500 *\/\n.vc-results { border-top:1px solid var(--vc-border-light); background:var(--vc-surface-alt); padding:0; max-height:0; overflow:hidden; transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1), padding 0.3s; }\n.vc-results.vc-visible { max-height:2000px; padding:24px; }\n.vc-results-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }\n.vc-results-title { font-family:var(--vc-display); font-size:20px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-copy-btn { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border:1px solid var(--vc-border); border-radius:6px; background:var(--vc-surface); font-family:var(--vc-font); font-size:12px; font-weight:500; color:var(--vc-ink-secondary); cursor:pointer; transition:all 0.15s; }\n.vc-copy-btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); }\n.vc-copy-btn.vc-copied { background:var(--vc-green-light); border-color:var(--vc-green); color:var(--vc-green); }\n\n.vc-result-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }\n@media(max-width:500px) { .vc-result-grid { grid-template-columns:1fr; } }\n.vc-rcard { background:var(--vc-surface); border:1px solid var(--vc-border-light); border-radius:var(--vc-radius); padding:16px; transition:transform 0.2s; }\n.vc-rcard:hover { transform:translateY(-1px); }\n.vc-rcard-primary { border-color:var(--vc-accent); border-width:2px; background:linear-gradient(135deg, #fdf6f2 0%, var(--vc-surface) 100%); grid-column:1 \/ -1; }\n.vc-rcard-label { font-family:var(--vc-mono); font-size:10px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--vc-ink-muted); margin-bottom:4px; }\n.vc-rcard-value { font-family:var(--vc-mono); font-size:22px; font-weight:600; color:var(--vc-ink); line-height:1.2; }\n.vc-rcard-primary .vc-rcard-value { font-size:30px; color:var(--vc-accent); }\n.vc-rcard-unit { font-size:14px; font-weight:400; color:var(--vc-ink-secondary); }\n\n\/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n.vc-section { margin-top:24px; border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); background:var(--vc-surface); box-shadow:var(--vc-shadow); overflow:hidden; }\n.vc-section-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border:none; background:transparent; cursor:pointer; font-family:var(--vc-font); text-align:left; transition:background 0.15s; }\n.vc-section-toggle:hover { background:var(--vc-surface-alt); }\n.vc-section-toggle-text { display:flex; align-items:center; gap:10px; }\n.vc-section-icon { font-size:20px; line-height:1; }\n.vc-section-title { font-family:var(--vc-display); font-size:18px; font-weight:700; color:var(--vc-ink); margin:0; }\n.vc-section-chevron { width:20px; height:20px; color:var(--vc-ink-muted); transition:transform 0.3s; flex-shrink:0; }\n.vc-section.vc-open .vc-section-chevron { transform:rotate(180deg); }\n.vc-section-body { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1); }\n.vc-section.vc-open .vc-section-body { max-height:20000px; }\n.vc-section-inner { padding:0 24px 24px; border-top:1px solid var(--vc-border-light); }\n\n\/* \u2500\u2500 THEORY \u2500\u2500 *\/\n.vc-theory h3 { font-family:var(--vc-display); font-size:17px; font-weight:700; color:var(--vc-ink); margin:28px 0 10px; }\n.vc-theory h3:first-child { margin-top:20px; }\n.vc-theory p { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 10px; }\n.vc-theory ul, .vc-theory ol { font-size:14px; color:var(--vc-ink-secondary); margin:0 0 12px 18px; padding:0; }\n.vc-theory li { margin-bottom:5px; }\n.vc-formula-box { background:var(--vc-surface-alt); border:2px solid var(--vc-border); border-radius:6px; padding:14px 20px; font-family:var(--vc-mono); font-size:16px; font-weight:500; text-align:center; margin:14px 0; color:var(--vc-ink); overflow-x:auto; }\n.vc-info-box { background:var(--vc-blue-light); border-left:3px solid var(--vc-blue); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\n.vc-info-box p { margin:0; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-warning-box { background:var(--vc-yellow-light); border-left:3px solid var(--vc-yellow); padding:14px 16px; border-radius:0 6px 6px 0; margin:14px 0; }\n.vc-example-box { background:var(--vc-surface-alt); border:1px solid var(--vc-border-light); border-radius:6px; padding:16px; margin:14px 0; }\n.vc-example-title { font-family:var(--vc-mono); font-size:13px; font-weight:600; color:var(--vc-accent); margin-bottom:8px; }\n.vc-table { width:100%; border-collapse:collapse; margin:14px 0; font-size:13px; }\n.vc-table th, .vc-table td { padding:10px 12px; border:1px solid var(--vc-border-light); text-align:left; }\n.vc-table th { background:var(--vc-surface-alt); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--vc-ink-secondary); }\n.vc-table tr:nth-child(even) { background:var(--vc-surface-alt); }\n@media(max-width:600px) { .vc-table { font-size:12px; } .vc-table th, .vc-table td { padding:8px; } }\n\n\/* \u2500\u2500 FAQ \u2500\u2500 *\/\n.vc-faq-list { display:flex; flex-direction:column; gap:8px; margin-top:20px; }\n.vc-faq-item { border:1px solid var(--vc-border-light); border-radius:6px; overflow:hidden; }\n.vc-faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border:none; background:var(--vc-surface-alt); cursor:pointer; font-family:var(--vc-font); font-size:15px; font-weight:600; color:var(--vc-ink); text-align:left; transition:background 0.15s; }\n.vc-faq-q:hover { background:#ede9e3; }\n.vc-faq-chevron { width:16px; height:16px; color:var(--vc-ink-muted); flex-shrink:0; transition:transform 0.25s; }\n.vc-faq-item.vc-open .vc-faq-chevron { transform:rotate(180deg); }\n.vc-faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s; }\n.vc-faq-item.vc-open .vc-faq-a { max-height:1200px; }\n.vc-faq-a-inner { padding:14px 16px; border-top:1px solid var(--vc-border-light); font-size:14px; color:var(--vc-ink-secondary); }\n.vc-faq-a-inner p { margin:0 0 8px; }\n.vc-faq-a-inner p:last-child { margin-bottom:0; }\n.vc-faq-a-inner ul { margin:4px 0 8px 16px; padding:0; }\n.vc-faq-a-inner li { margin-bottom:3px; }\n\n\/* \u2500\u2500 RELATED \u2500\u2500 *\/\n.vc-related { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }\n.vc-related-link { display:inline-block; padding:8px 16px; font-family:var(--vc-font); font-size:13px; font-weight:600; background:var(--vc-surface-alt); color:var(--vc-ink-secondary); border:1px solid var(--vc-border); border-radius:var(--vc-radius); text-decoration:none; transition:all 0.15s; }\n.vc-related-link:hover { border-color:var(--vc-accent); color:var(--vc-accent); background:var(--vc-accent-light); }\n\n\/* \u2500\u2500 PROMO \u2500\u2500 *\/\n.vc-promo { margin-top:24px; padding:20px; background:linear-gradient(135deg, var(--vc-accent-light), var(--vc-surface)); border:1px solid var(--vc-border); border-radius:var(--vc-radius-lg); display:flex; align-items:center; gap:16px; }\n.vc-promo-text { flex:1; font-size:14px; color:var(--vc-ink-secondary); }\n.vc-promo-text strong { color:var(--vc-ink); }\n.vc-promo-link { padding:8px 20px; font-size:13px; font-weight:700; color:#fff; background:var(--vc-accent); border-radius:var(--vc-radius); text-decoration:none; white-space:nowrap; transition:background 0.15s; }\n.vc-promo-link:hover { background:var(--vc-accent-hover); }\n\n\/* \u2500\u2500 FOOTER \u2500\u2500 *\/\n.vc-footer { text-align:center; padding:32px 16px; font-size:13px; color:var(--vc-ink-muted); }\n.vc-footer a { color:var(--vc-accent); text-decoration:none; }\n.vc-footer a:hover { text-decoration:underline; }\n.vc-footer-links { margin-top:8px; font-size:12px; }\n.vc-footer-links a { margin:0 8px; }\n\n\/* \u2500\u2500 PRINT \u2500\u2500 *\/\n@media print {\n    .vc-section-body { max-height:none!important; }\n    .vc-faq-a { max-height:none!important; }\n    .vc-results { max-height:none!important; padding:24px!important; }\n    .vc-copy-btn, .vc-section-chevron, .vc-faq-chevron, .vc-presets, .vc-promo { display:none!important; }\n}\n<\/style>\n\n<div class=\"vc-calculator\" id=\"vc-influence-coefficient\">\n\n<!-- Header -->\n<header class=\"vc-header\">\n    <p class=\"vc-header-eyebrow\">Free Engineering Tool \u2014 #010<\/p>\n    <h1 class=\"vc-header-title\">Influence Coefficient Calculator<\/h1>\n    <p class=\"vc-header-subtitle\">Single-plane rotor balancing using the influence coefficient method. Enter initial vibration, trial weight data, and get the exact correction mass and angle.<\/p>\n    <div class=\"vc-badges\">\n        <span class=\"vc-badge\">Single-Plane<\/span>\n        <span class=\"vc-badge\">Vector Math<\/span>\n        <span class=\"vc-badge\">Correction Weight<\/span>\n    <\/div>\n<\/header>\n\n<!-- Calculator Card -->\n<div class=\"vc-card\">\n    <form class=\"vc-form\" id=\"vc-form\" autocomplete=\"off\">\n        <div class=\"vc-form-grid\">\n            <div class=\"vc-form-section-label\">Initial Vibration (Run 1 \u2014 no trial weight)<\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-a0\">Amplitude A\u2080 <span class=\"vc-label-hint\">(mm\/s, \u03bcm, or mils)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-a0\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 5\" value=\"5\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-p0\">Phase \u03c6\u2080 <span class=\"vc-label-hint\">(degrees)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-p0\" inputmode=\"decimal\" step=\"any\" placeholder=\"e.g. 45\" value=\"45\">\n            <\/div>\n\n            <hr class=\"vc-form-divider\">\n            <div class=\"vc-form-section-label\">Trial Weight<\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-mt\">Trial Mass m_t <span class=\"vc-label-hint\">(g)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-mt\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 10\" value=\"10\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-tt\">Trial Angle \u03b8_t <span class=\"vc-label-hint\">(degrees)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-tt\" inputmode=\"decimal\" step=\"any\" placeholder=\"e.g. 0\" value=\"0\">\n            <\/div>\n\n            <hr class=\"vc-form-divider\">\n            <div class=\"vc-form-section-label\">Vibration with Trial Weight (Run 2)<\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-a1\">Amplitude A\u2081 <span class=\"vc-label-hint\">(same units as A\u2080)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-a1\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 8\" value=\"8\">\n            <\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-p1\">Phase \u03c6\u2081 <span class=\"vc-label-hint\">(degrees)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-p1\" inputmode=\"decimal\" step=\"any\" placeholder=\"e.g. 120\" value=\"120\">\n            <\/div>\n\n            <hr class=\"vc-form-divider\">\n            <div class=\"vc-form-section-label\">Correction Radius (optional)<\/div>\n            <div class=\"vc-field\">\n                <label class=\"vc-label\" for=\"vc-radius\">Correction Radius R <span class=\"vc-label-hint\">(mm, if different from trial)<\/span><\/label>\n                <input class=\"vc-input\" type=\"number\" id=\"vc-radius\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"same as trial radius\">\n            <\/div>\n        <\/div>\n\n        <!-- Presets -->\n        <div class=\"vc-presets\">\n            <div class=\"vc-presets-label\">Quick presets<\/div>\n            <button type=\"button\" class=\"vc-preset-btn\" data-a0=\"5\" data-p0=\"45\" data-mt=\"10\" data-tt=\"0\" data-a1=\"8\" data-p1=\"120\">A\u2080=5@45\u00b0, trial 10g@0\u00b0, A\u2081=8@120\u00b0<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-a0=\"3.2\" data-p0=\"200\" data-mt=\"5\" data-tt=\"90\" data-a1=\"4.8\" data-p1=\"310\">A\u2080=3.2@200\u00b0, trial 5g@90\u00b0, A\u2081=4.8@310\u00b0<\/button>\n            <button type=\"button\" class=\"vc-preset-btn\" data-a0=\"12\" data-p0=\"75\" data-mt=\"20\" data-tt=\"0\" data-a1=\"6\" data-p1=\"250\">A\u2080=12@75\u00b0, trial 20g@0\u00b0, A\u2081=6@250\u00b0<\/button>\n        <\/div>\n    <\/form>\n\n    <!-- Results -->\n    <div class=\"vc-results\" id=\"vc-results\">\n        <div class=\"vc-results-head\">\n            <h2 class=\"vc-results-title\">Results<\/h2>\n            <button type=\"button\" class=\"vc-copy-btn\" id=\"vc-copy-btn\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg>\n                Copy\n            <\/button>\n        <\/div>\n        <div class=\"vc-result-grid\">\n            <div class=\"vc-rcard vc-rcard-primary\">\n                <div class=\"vc-rcard-label\">Correction Mass<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-mass\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Correction Angle<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-angle\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Influence Coefficient |C|<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-coeff\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Influence Vector \u0394V<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-deltav\">\u2014<\/div>\n            <\/div>\n            <div class=\"vc-rcard\">\n                <div class=\"vc-rcard-label\">Estimated Residual<\/div>\n                <div class=\"vc-rcard-value\" id=\"vc-r-residual\">\u2014<\/div>\n            <\/div>\n        <\/div>\n        <div class=\"vc-viz\" id=\"vc-viz\" style=\"text-align:center;margin:16px 0 8px\"><\/div>\n    <\/div>\n<\/div>\n\n<!-- Theory & Reference -->\n<div class=\"vc-section vc-open\" id=\"vc-sec-theory\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"true\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udcd8<\/span>\n            <span class=\"vc-section-title\">Theory &amp; Formulas<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner vc-theory\">\n            <h3>Vibration Vectors<\/h3>\n            <p>Vibration is represented as complex vectors with amplitude and phase:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-1\"><\/div>\n\n            <h3>Influence Vector<\/h3>\n            <p>The change in vibration caused by the trial weight:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-2\"><\/div>\n\n            <h3>Correction Weight<\/h3>\n            <p>The correction weight is computed by complex division:<\/p>\n            <div class=\"vc-formula-box\" id=\"vc-katex-3\"><\/div>\n\n            <div class=\"vc-info-box\">\n                <p><strong>\u2139\ufe0f Note:<\/strong> The negative sign ensures the correction weight opposes the unbalance. The result is a vector: magnitude gives the weight in grams, argument gives the angular position.<\/p>\n            <\/div>\n\n            <h3>Practical Example<\/h3>\n            <div class=\"vc-example-box\">\n                <div class=\"vc-example-title\">Example \u2014 Single-Plane Balancing<\/div>\n                <p><strong>Given:<\/strong> V\u2080 = 5\u222045\u00b0, Trial = 10g@0\u00b0, V\u2081 = 8\u2220120\u00b0<\/p>\n                <p>\u0394V = V\u2081 \u2212 V\u2080 = (8\u2220120\u00b0) \u2212 (5\u222045\u00b0) = complex subtraction<\/p>\n                <p>W_c = \u2212m_t \u00d7 V\u2080 \/ \u0394V \u2192 magnitude and angle of correction<\/p>\n            <\/div>\n\n            <div class=\"vc-warning-box\">\n                <p style=\"margin:0;font-size:14px;color:var(--vc-ink-secondary);\"><strong>\u26a0\ufe0f Important:<\/strong> Always remove the trial weight before adding the correction weight. The correction weight replaces the trial weight \u2014 do not leave both on the rotor.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Related Calculators -->\n<div class=\"vc-section\" id=\"vc-sec-related\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\ud83d\udd17<\/span>\n            <span class=\"vc-section-title\">Related Calculators<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-related\">\n                <a class=\"vc-related-link\" href=\"\/calculators\/residual-unbalance-iso1940\/\">Residual Unbalance (ISO 1940)<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/rotor-critical-speed\/\">Rotor Critical Speed<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/correction-mass-decomposition\/\">Correction Mass Decomposition<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/blade-correction-calculator\/\">Blade Correction Calculator<\/a>\n                <a class=\"vc-related-link\" href=\"\/calculators\/trial-weight-calculator\/\">Trial Weight Calculator<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- FAQ -->\n<div class=\"vc-section\" id=\"vc-sec-faq\">\n    <button type=\"button\" class=\"vc-section-toggle\" aria-expanded=\"false\">\n        <span class=\"vc-section-toggle-text\">\n            <span class=\"vc-section-icon\">\u2753<\/span>\n            <span class=\"vc-section-title\">Frequently Asked Questions<\/span>\n        <\/span>\n        <svg class=\"vc-section-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"vc-section-body\">\n        <div class=\"vc-section-inner\">\n            <div class=\"vc-faq-list\" id=\"vc-faq-list\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Promo -->\n<div class=\"vc-promo\">\n    <div class=\"vc-promo-text\">\n        <strong>Vibromera \u2014 Portable Balancing &amp; Vibration Analysis<\/strong><br>\n        Professional field balancing instruments with built-in influence coefficient method. Single-plane and two-plane balancing in minutes. Used in 50+ countries.\n    <\/div>\n    <a class=\"vc-promo-link\" href=\"https:\/\/vibromera.eu\/\" target=\"_blank\" rel=\"noopener\">Learn More<\/a>\n<\/div>\n\n<!-- Footer -->\n<footer class=\"vc-footer\">\n    <p>\u00a9 2024\u20132025 <a href=\"https:\/\/vibromera.eu\/\">Vibromera<\/a> \u2014 Engineering Calculators<\/p>\n    <p style=\"font-size:12px;margin-top:4px;\">Single-plane influence coefficient balancing. Last updated: February 2025<\/p>\n    <div class=\"vc-footer-links\">\n        <a href=\"\/calculators\/engineering-calculators\/\">All Calculators<\/a>\n        <a href=\"https:\/\/vibromera.eu\/contacts\/\">Contact<\/a>\n    <\/div>\n<\/footer>\n\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/katex@0.16.11\/dist\/katex.min.js\"><\/script>\n<script>\n(function() {\n    'use strict';\n\n    var SLUG = 'influence-coefficient-calculator';\n\n    function $(id) { return document.getElementById(id); }\n    function fmt(n, d) { if (isNaN(n) || !isFinite(n)) return '\u2014'; var f = n.toFixed(d === undefined ? 2 : d); return f.replace(\/(\\.\\d*?)0+$\/, '$1').replace(\/\\.$\/, ''); }\n    function deg2rad(d) { return d * Math.PI \/ 180; }\n    function rad2deg(r) { return r * 180 \/ Math.PI; }\n    function normAngle(a) { a = a % 360; if (a < 0) a += 360; return a; }\n\n    \/* \u2500\u2500 COMPLEX MATH \u2500\u2500 *\/\n    function polar2rect(amp, phaseDeg) {\n        var r = deg2rad(phaseDeg);\n        return { re: amp * Math.cos(r), im: amp * Math.sin(r) };\n    }\n    function rect2polar(c) {\n        var mag = Math.sqrt(c.re * c.re + c.im * c.im);\n        var phase = rad2deg(Math.atan2(c.im, c.re));\n        return { mag: mag, phase: normAngle(phase) };\n    }\n    function cSub(a, b) { return { re: a.re - b.re, im: a.im - b.im }; }\n    function cMul(a, b) { return { re: a.re * b.re - a.im * b.im, im: a.re * b.im + a.im * b.re }; }\n    function cDiv(a, b) {\n        var denom = b.re * b.re + b.im * b.im;\n        if (denom === 0) return { re: NaN, im: NaN };\n        return { re: (a.re * b.re + a.im * b.im) \/ denom, im: (a.im * b.re - a.re * b.im) \/ denom };\n    }\n    function cNeg(a) { return { re: -a.re, im: -a.im }; }\n    function cScale(a, s) { return { re: a.re * s, im: a.im * s }; }\n\n    \/* \u2500\u2500 CALCULATION \u2500\u2500 *\/\n    function calculate() {\n        var A0 = parseFloat($('vc-a0').value);\n        var P0 = parseFloat($('vc-p0').value);\n        var mt = parseFloat($('vc-mt').value);\n        var tt = parseFloat($('vc-tt').value);\n        var A1 = parseFloat($('vc-a1').value);\n        var P1 = parseFloat($('vc-p1').value);\n\n        if (isNaN(A0) || isNaN(P0) || isNaN(mt) || mt <= 0 || isNaN(tt) || isNaN(A1) || isNaN(P1)) {\n            $('vc-results').classList.remove('vc-visible');\n            return;\n        }\n\n        \/\/ Vibration vectors\n        var V0 = polar2rect(A0, P0);\n        var V1 = polar2rect(A1, P1);\n\n        \/\/ Influence vector \u0394V = V1 - V0\n        var dV = cSub(V1, V0);\n        var dVpolar = rect2polar(dV);\n\n        if (dVpolar.mag < 1e-12) {\n            $('vc-results').classList.remove('vc-visible');\n            return;\n        }\n\n        \/\/ Influence coefficient C = \u0394V \/ m_t (per gram, at trial angle)\n        \/\/ But we incorporate trial angle: trial weight as vector\n        var Wt = polar2rect(mt, tt);\n        var C = cDiv(dV, Wt);  \/\/ influence coefficient\n        var Cpolar = rect2polar(C);\n\n        \/\/ Correction weight: W_c = -V0 \/ C = -m_t * V0 \/ \u0394V\n        var Wc = cNeg(cDiv(cScale(V0, mt), dV));\n\n        \/\/ If correction radius differs from trial radius\n        var radiusVal = parseFloat($('vc-radius').value);\n        \/\/ Wc is in grams at trial radius; if correction radius is specified, scale\n        \/\/ (Not strictly needed for basic influence coeff, but useful)\n\n        var WcPolar = rect2polar(Wc);\n        var corrMass = WcPolar.mag;\n        var corrAngle = WcPolar.phase;\n\n        \/\/ Display\n        $('vc-r-mass').innerHTML = fmt(corrMass, 2) + ' <span class=\"vc-rcard-unit\">g<\/span>';\n        $('vc-r-angle').innerHTML = fmt(corrAngle, 1) + '<span class=\"vc-rcard-unit\">\u00b0<\/span>';\n        $('vc-r-coeff').innerHTML = fmt(Cpolar.mag, 4) + ' <span class=\"vc-rcard-unit\">\u2220' + fmt(Cpolar.phase, 1) + '\u00b0<\/span>';\n        $('vc-r-deltav').innerHTML = fmt(dVpolar.mag, 2) + ' <span class=\"vc-rcard-unit\">\u2220' + fmt(dVpolar.phase, 1) + '\u00b0<\/span>';\n\n        \/\/ Estimated residual \u2248 0 for perfect single-plane, but show calculation uncertainty\n        \/\/ In practice, residual \u2248 measurement noise. Show theoretical: 0\n        $('vc-r-residual').innerHTML = '\u2248 0 <span class=\"vc-rcard-unit\">(theoretical)<\/span>';\n\n        $('vc-results').classList.add('vc-visible');\n        drawViz(V0, V1, dV, Wc, A0, P0, A1, P1);\n\n        \/\/ URL params\n        var u = new URL(window.location);\n        u.searchParams.set('a0', A0); u.searchParams.set('p0', P0);\n        u.searchParams.set('mt', mt); u.searchParams.set('tt', tt);\n        u.searchParams.set('a1', A1); u.searchParams.set('p1', P1);\n        history.replaceState(null, '', u.toString());\n\n        saveHistory({\n            A0: A0, P0: P0, mt: mt, tt: tt, A1: A1, P1: P1,\n            _summary: 'V\u2080=' + A0 + '\u2220' + P0 + '\u00b0 \u2192 Wc=' + fmt(corrMass, 1) + 'g@' + fmt(corrAngle, 0) + '\u00b0'\n        });\n    }\n\n    \/* \u2500\u2500 PRESETS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-preset-btn').forEach(function(btn) {\n        btn.addEventListener('click', function(e) {\n            e.preventDefault();\n            $('vc-a0').value = this.getAttribute('data-a0');\n            $('vc-p0').value = this.getAttribute('data-p0');\n            $('vc-mt').value = this.getAttribute('data-mt');\n            $('vc-tt').value = this.getAttribute('data-tt');\n            $('vc-a1').value = this.getAttribute('data-a1');\n            $('vc-p1').value = this.getAttribute('data-p1');\n            calculate();\n        });\n    });\n\n    \/* \u2500\u2500 AUTO-CALCULATE \u2500\u2500 *\/\n    $('vc-form').addEventListener('input', calculate);\n    $('vc-form').addEventListener('change', calculate);\n\n    \/* \u2500\u2500 COPY \u2500\u2500 *\/\n    $('vc-copy-btn').addEventListener('click', function() {\n        var text = 'Influence Coefficient Calculation\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'Initial: A\u2080=' + $('vc-a0').value + ' \u2220' + $('vc-p0').value + '\u00b0\\n' +\n            'Trial: ' + $('vc-mt').value + 'g @ ' + $('vc-tt').value + '\u00b0\\n' +\n            'With trial: A\u2081=' + $('vc-a1').value + ' \u2220' + $('vc-p1').value + '\u00b0\\n' +\n            'Correction: ' + $('vc-r-mass').textContent + ' @ ' + $('vc-r-angle').textContent + '\\n' +\n            'Influence |C|: ' + $('vc-r-coeff').textContent + '\\n' +\n            '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n' +\n            'vibromera.eu\/calculators\/influence-coefficient-calculator\/';\n\n        if (navigator.clipboard) {\n            navigator.clipboard.writeText(text).then(function() {\n                var btn = $('vc-copy-btn');\n                btn.classList.add('vc-copied');\n                btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg> Copied!';\n                setTimeout(function() {\n                    btn.classList.remove('vc-copied');\n                    btn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"\/><\/svg> Copy';\n                }, 2000);\n            });\n        }\n    });\n\n    \/* \u2500\u2500 COLLAPSIBLE SECTIONS \u2500\u2500 *\/\n    document.querySelectorAll('.vc-section-toggle').forEach(function(btn) {\n        btn.addEventListener('click', function() {\n            var section = this.closest('.vc-section');\n            var isOpen = section.classList.contains('vc-open');\n            section.classList.toggle('vc-open');\n            this.setAttribute('aria-expanded', !isOpen);\n        });\n    });\n\n    \/* \u2500\u2500 FAQ \u2500\u2500 *\/\n    var faqData = [\n        { q: 'What is an influence coefficient?', a: '<p>An influence coefficient is a complex number that describes how a unit weight placed at a specific radius and angle affects the vibration of a rotor. It is the ratio of vibration change to the weight that caused it:<\/p><p><strong>C = \u0394V \/ W_trial<\/strong><\/p><p>Once known, it can be used to calculate the exact correction weight needed to reduce vibration to zero (theoretically).<\/p>' },\n        { q: 'How do I perform single-plane balancing?', a: '<p>The process has three steps:<\/p><ul><li><strong>Run 1:<\/strong> Measure the initial vibration amplitude and phase (V\u2080)<\/li><li><strong>Run 2:<\/strong> Attach a known trial weight, measure new vibration (V\u2081)<\/li><li><strong>Calculate:<\/strong> \u0394V = V\u2081 \u2212 V\u2080, then correction = \u2212m_t \u00d7 V\u2080 \/ \u0394V<\/li><\/ul><p>Remove the trial weight, place the correction weight at the calculated angle, and verify with a final run.<\/p>' },\n        { q: 'What if vibration increases after adding the trial weight?', a: '<p>This is normal and not a problem. An increase means the trial weight happened to be placed near the heavy spot, adding to the unbalance. The vector calculation still produces the correct correction.<\/p><p>However, if vibration increases by more than 3\u20134\u00d7, use a smaller trial weight for safety, especially on equipment with limited bearing capacity.<\/p>' },\n        { q: 'Can I do multiple runs to improve accuracy?', a: '<p>Yes, this is standard practice. After placing the correction weight:<\/p><ul><li>Measure the residual vibration<\/li><li>Use the same influence coefficient for a trim run<\/li><li>Calculate a small additional correction<\/li><\/ul><p>Two to three iterations typically achieve the target balance quality. The influence coefficient remains valid as long as operating conditions don\\'t change.<\/p>' },\n        { q: 'What factors affect accuracy?', a: '<p>Key factors:<\/p><ul><li><strong>Speed stability<\/strong> \u2014 measurements must be at the same RPM<\/li><li><strong>Phase reference<\/strong> \u2014 tachometer signal must be stable<\/li><li><strong>Thermal state<\/strong> \u2014 let the machine warm up consistently<\/li><li><strong>Trial weight size<\/strong> \u2014 should produce 20\u201350% vibration change<\/li><li><strong>Sensor mounting<\/strong> \u2014 rigid, repeatable sensor position<\/li><li><strong>Nonlinearity<\/strong> \u2014 very high vibration may introduce errors<\/li><\/ul>' }\n    ];\n\n    var faqList = $('vc-faq-list');\n    faqData.forEach(function(faq) {\n        faqList.innerHTML += '<div class=\"vc-faq-item\"><button type=\"button\" class=\"vc-faq-q\"><span>' + faq.q + '<\/span><svg class=\"vc-faq-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"\/><\/svg><\/button><div class=\"vc-faq-a\"><div class=\"vc-faq-a-inner\">' + faq.a + '<\/div><\/div><\/div>';\n    });\n    faqList.addEventListener('click', function(e) {\n        var btn = e.target.closest('.vc-faq-q');\n        if (!btn) return;\n        btn.closest('.vc-faq-item').classList.toggle('vc-open');\n    });\n\n    \/* \u2500\u2500 VISUALIZATION \u2500\u2500 *\/\n    function drawViz(V0, V1, dV, Wc, A0, P0, A1, P1) {\n        var c = $('vc-viz'), W = 340, H = 300;\n        var svg = '<svg width=\"'+W+'\" height=\"'+H+'\" viewBox=\"0 0 '+W+' '+H+'\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">';\n        svg += '<defs><marker id=\"ic1\" markerWidth=\"8\" markerHeight=\"6\" refX=\"7\" refY=\"3\" orient=\"auto\"><path d=\"M0,0 L8,3 L0,6\" fill=\"#3578b2\"\/><\/marker>';\n        svg += '<marker id=\"ic2\" markerWidth=\"8\" markerHeight=\"6\" refX=\"7\" refY=\"3\" orient=\"auto\"><path d=\"M0,0 L8,3 L0,6\" fill=\"#e74c3c\"\/><\/marker>';\n        svg += '<marker id=\"ic3\" markerWidth=\"8\" markerHeight=\"6\" refX=\"7\" refY=\"3\" orient=\"auto\"><path d=\"M0,0 L8,3 L0,6\" fill=\"#a67c00\"\/><\/marker>';\n        svg += '<marker id=\"ic4\" markerWidth=\"8\" markerHeight=\"6\" refX=\"7\" refY=\"3\" orient=\"auto\"><path d=\"M0,0 L8,3 L0,6\" fill=\"#2a7a4b\"\/><\/marker><\/defs>';\n        var cx = W \/ 2, cy = H \/ 2;\n        var R = Math.min(W, H) \/ 2 - 40;\n        \/\/ Find scale: max magnitude of all vectors\n        var WcP = rect2polar(Wc);\n        var dVP = rect2polar(dV);\n        var maxMag = Math.max(A0, A1, dVP.mag, WcP.mag, 0.001);\n        var scale = R \/ maxMag;\n        \/\/ Reference circle\n        svg += '<circle cx=\"'+cx+'\" cy=\"'+cy+'\" r=\"'+R+'\" fill=\"none\" stroke=\"#e8e4dd\" stroke-width=\"1\"\/>';\n        svg += '<circle cx=\"'+cx+'\" cy=\"'+cy+'\" r=\"'+(R\/2)+'\" fill=\"none\" stroke=\"#e8e4dd\" stroke-width=\"0.5\" stroke-dasharray=\"3,3\"\/>';\n        svg += '<line x1=\"'+(cx-R-5)+'\" y1=\"'+cy+'\" x2=\"'+(cx+R+5)+'\" y2=\"'+cy+'\" stroke=\"#e8e4dd\" stroke-width=\"0.5\"\/>';\n        svg += '<line x1=\"'+cx+'\" y1=\"'+(cy-R-5)+'\" x2=\"'+cx+'\" y2=\"'+(cy+R+5)+'\" stroke=\"#e8e4dd\" stroke-width=\"0.5\"\/>';\n        \/\/ V0 vector (blue)\n        var v0x = cx + V0.re * scale, v0y = cy - V0.im * scale;\n        svg += '<line x1=\"'+cx+'\" y1=\"'+cy+'\" x2=\"'+v0x+'\" y2=\"'+v0y+'\" stroke=\"#3578b2\" stroke-width=\"2\" marker-end=\"url(#ic1)\"\/>';\n        svg += '<text x=\"'+(v0x + 6)+'\" y=\"'+(v0y - 4)+'\" fill=\"#3578b2\" font-size=\"10\" font-weight=\"600\">V\\u2080<\/text>';\n        \/\/ V1 vector (red)\n        var v1x = cx + V1.re * scale, v1y = cy - V1.im * scale;\n        svg += '<line x1=\"'+cx+'\" y1=\"'+cy+'\" x2=\"'+v1x+'\" y2=\"'+v1y+'\" stroke=\"#e74c3c\" stroke-width=\"2\" marker-end=\"url(#ic2)\"\/>';\n        svg += '<text x=\"'+(v1x + 6)+'\" y=\"'+(v1y - 4)+'\" fill=\"#e74c3c\" font-size=\"10\" font-weight=\"600\">V\\u2081<\/text>';\n        \/\/ \u0394V vector (yellow, from V0 tip to V1 tip)\n        svg += '<line x1=\"'+v0x+'\" y1=\"'+v0y+'\" x2=\"'+v1x+'\" y2=\"'+v1y+'\" stroke=\"#a67c00\" stroke-width=\"1.5\" marker-end=\"url(#ic3)\" stroke-dasharray=\"5,3\"\/>';\n        svg += '<text x=\"'+((v0x+v1x)\/2 + 6)+'\" y=\"'+((v0y+v1y)\/2 - 4)+'\" fill=\"#a67c00\" font-size=\"10\" font-weight=\"600\">\\u0394V<\/text>';\n        \/\/ Correction vector (green)\n        var wcx = cx + Wc.re * scale * 0.5, wcy = cy - Wc.im * scale * 0.5;\n        svg += '<line x1=\"'+cx+'\" y1=\"'+cy+'\" x2=\"'+wcx+'\" y2=\"'+wcy+'\" stroke=\"#2a7a4b\" stroke-width=\"2.5\" marker-end=\"url(#ic4)\"\/>';\n        svg += '<text x=\"'+(wcx + 6)+'\" y=\"'+(wcy + 12)+'\" fill=\"#2a7a4b\" font-size=\"10\" font-weight=\"700\">W\\u2090<\/text>';\n        \/\/ Legend\n        svg += '<text x=\"8\" y=\"16\" fill=\"#3578b2\" font-size=\"9\" font-weight=\"600\">\\u25CF V\\u2080 Initial<\/text>';\n        svg += '<text x=\"8\" y=\"28\" fill=\"#e74c3c\" font-size=\"9\" font-weight=\"600\">\\u25CF V\\u2081 Trial<\/text>';\n        svg += '<text x=\"8\" y=\"40\" fill=\"#a67c00\" font-size=\"9\" font-weight=\"600\">--- \\u0394V Change<\/text>';\n        svg += '<text x=\"8\" y=\"52\" fill=\"#2a7a4b\" font-size=\"9\" font-weight=\"700\">\\u25CF W\\u2090 Correction<\/text>';\n        \/\/ Angle labels\n        svg += '<text x=\"'+(cx+R+4)+'\" y=\"'+(cy+12)+'\" fill=\"#8a857e\" font-size=\"8\">0\\u00B0<\/text>';\n        svg += '<text x=\"'+(cx-4)+'\" y=\"'+(cy-R-4)+'\" text-anchor=\"middle\" fill=\"#8a857e\" font-size=\"8\">90\\u00B0<\/text>';\n        svg += '<\/svg>';\n        c.innerHTML = svg;\n    }\n\n    \/* \u2500\u2500 HISTORY \u2500\u2500 *\/\n    function saveHistory(entry) {\n        var key = 'vc_history_' + SLUG;\n        var arr = [];\n        try { arr = JSON.parse(localStorage.getItem(key)) || []; } catch(e) {}\n        entry._ts = new Date().toISOString();\n        arr.unshift(entry);\n        if (arr.length > 10) arr = arr.slice(0, 10);\n        try { localStorage.setItem(key, JSON.stringify(arr)); } catch(e) {}\n    }\n\n    \/* \u2500\u2500 URL PARAMS \u2500\u2500 *\/\n    function loadParams() {\n        var p = new URLSearchParams(window.location.search);\n        if (p.has('a0')) $('vc-a0').value = p.get('a0');\n        if (p.has('p0')) $('vc-p0').value = p.get('p0');\n        if (p.has('mt')) $('vc-mt').value = p.get('mt');\n        if (p.has('tt')) $('vc-tt').value = p.get('tt');\n        if (p.has('a1')) $('vc-a1').value = p.get('a1');\n        if (p.has('p1')) $('vc-p1').value = p.get('p1');\n    }\n\n    \/* \u2500\u2500 KATEX \u2500\u2500 *\/\n    function renderFormulas() {\n        try {\n            katex.render('\\\\vec{V_0} = A_0 \\\\angle \\\\varphi_0, \\\\qquad \\\\vec{V_1} = A_1 \\\\angle \\\\varphi_1', $('vc-katex-1'), { displayMode: true, throwOnError: false });\n            katex.render('\\\\Delta\\\\vec{V} = \\\\vec{V_1} - \\\\vec{V_0}', $('vc-katex-2'), { displayMode: true, throwOnError: false });\n            katex.render('\\\\vec{W_c} = -m_t \\\\cdot \\\\frac{\\\\vec{V_0}}{\\\\Delta\\\\vec{V}}', $('vc-katex-3'), { displayMode: true, throwOnError: false });\n        } catch(e) {}\n    }\n\n    \/* \u2500\u2500 INIT \u2500\u2500 *\/\n    function init() {\n        loadParams();\n        renderFormulas();\n        calculate();\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', init);\n    } else {\n        init();\n    }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\u098f\u0995\u0995-\u09b8\u09ae\u09a4\u09b2 \u09b0\u09cb\u099f\u09b0 \u09ad\u09be\u09b0\u09b8\u09be\u09ae\u09cd\u09af\u09aa\u09c2\u09b0\u09cd\u09a3\u0995\u09b0\u09a3\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09ac\u09bf\u09a8\u09be\u09ae\u09c2\u09b2\u09cd\u09af\u09c7 \u0985\u09a8\u09b2\u09be\u0987\u09a8 \u09aa\u09cd\u09b0\u09ad\u09be\u09ac \u09b8\u09b9\u0997 \u0995\u09cd\u09af\u09be\u09b2\u0995\u09c1\u09b2\u09c7\u099f\u09b0\u0964 \u09aa\u09cd\u09b0\u09be\u09a5\u09ae\u09bf\u0995 \u0995\u09ae\u09cd\u09aa\u09a8, \u099f\u09cd\u09b0\u09be\u09af\u09bc\u09be\u09b2 \u0993\u099c\u09a8 \u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09aa\u09cd\u09b0\u09ac\u09c7\u09b6 \u0995\u09b0\u09c1\u09a8 \u098f\u09ac\u0982 \u09ad\u09c7\u0995\u09cd\u099f\u09b0 \u0997\u09a3\u09bf\u09a4 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7 \u09b8\u0982\u09b6\u09cb\u09a7\u09a8 \u09ad\u09b0 \u098f\u09ac\u0982 \u0995\u09cb\u09a3 \u09aa\u09be\u09a8\u0964<\/p>","protected":false},"featured_media":0,"template":"","meta":{"ai_generated_summary":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-100137","calculator","type-calculator","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator"}],"about":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/types\/calculator"}],"version-history":[{"count":1,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100137\/revisions"}],"predecessor-version":[{"id":100451,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/calculator\/100137\/revisions\/100451"}],"wp:attachment":[{"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/media?parent=100137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/categories?post=100137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vibromera.eu\/bn\/wp-json\/wp\/v2\/tags?post=100137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}