O enrolamento radial é equivalente a uma espiral de Arquimedes. O raio cresce linearmente
com o número de pulsos, portanto cada volta percorre uma circunferência maior que a anterior.
A metragem acumulada após x pulsos é uma função
quadrática — por isso a regra de três simples falha sistematicamente e é necessário
resolver por Bhaskara.
/* Passo 1 — Grandezas base */
C₀ = π × D₀ / 100 // Circunferência vazia (m)
C_max = π × D_max / 100 // Circunferência cheia (m)
C_med = (C₀ + C_max) / 2
V_max = M_max / C_med // Voltas totais
K = V_max / P_max // Constante do sensor (voltas/pulso)
/* Passo 2 — Metragem acumulada após x pulsos */
m(x) = C₀·K·x + (ΔC·K)/(2·P_max)·x²
onde ΔC = C_max − C₀
/* Passo 3 — Inverter: pulsos → Bhaskara */
a = (ΔC × K) / (2 × P_max)
b = C₀ × K
c = −m_desejada
x = (−b + √(b²−4ac)) / (2a)
P = ⌈x⌉ // Arredondar para CIMA (nunca falta fio)
Margem = m(⌈x⌉) − m_des // Exibida no relatório (v3.0)
/* Passo 4 — Divisão em lotes */
cheias_por_fuso = ⌊M_total / M_max⌋
sobra_por_fuso = M_total mod M_max
Lote 1: P_max pulsos × (cheias_por_fuso × N_fusos) espulas
Lote 2: P_sobra pulsos × N_fusos espulas (se sobra > 0)