← Volver al cálculo

PRECISIÓN DEL CÁLCULO

Todas las cifras DE NUESTRO MOTOR se recalculan al compilar, leyendo los ficheros del repositorio y pasándolos por src/engine: ninguna está escrita a mano. La única columna tecleada a mano es la del otro programa, que por definición no se puede recalcular —se copia de su informe— y al compilar se coteja contra la nuestra. Las que todavía no existen se dejan vacías.

Verificado · lectura de los ficheros

El flujo que sale de integrar la curva reproduce un valor declarado aparte de la matriz de candelas en 2 de 2 fichas publicadas por el fabricante, en 1 de 1 cabeceras del propio fichero y en 52 de 52 EULUMDAT con LORL declarado. Solo las primeras son un dato de fuera del fichero.

01

LO QUE ESTÁ DEMOSTRADO HOY

Un fichero fotométrico se puede comprobar contra sí mismo y salir bien siempre: el flujo integrado es lo que sale de la matriz de candelas, así que compararlo con esa misma matriz no prueba nada. Lo que sí prueba algo es contrastarlo con un flujo declarado por el laboratorio e independiente de la curva. Hay tres sitios de donde sacarlo y los tres están usados aquí, pero no valen lo mismo: solo el primero trae un dato de fuera del fichero. Van separados por eso, y no sumados en un único recuento.

1 · Contra la ficha publicada del fabricante — 2 de 3 anclas

Es el contraste más fuerte que existe hoy en el proyecto, y el único cuyo dato viene de fuera del fichero: si el parser aplicara mal una escala o reconstruyera mal la simetría, el fichero seguiría siendo coherente consigo mismo y dejaría de coincidir con lo que el fabricante publica. Cada una lleva en validation/anclajes.json la URL de su ficha y su grado de confianza, y cada grado tiene su propio umbral.

els-27w-downlight.ies
2486 lm
de referencia
2486,2 lm
integrado por el motor
0,01 %
error · umbral 3 %

Confianza alta. Ficha oficial de Efficient Lighting Systems «ADL150 WIDE BEAM DOWNLIGHT», referencia ADL150.3000.90.40.61 (haz de 90°, 4000 K, no regulable). El paquete IES oficial de ELS trae el mismo informe de ensayo LightLab LL14741-FLEX40-S1 que este fichero.

els-downlight-adl90.ies
598 lm
de referencia
598,2 lm
integrado por el motor
0,04 %
error · umbral 10 %

Este dato se imprime, no aprueba: el manifiesto deja documentado por qué se duda del valor publicado, así que a este ancla solo se le pide la banda ancha del 10 % —suficiente para cazar un error de escala o de simetría, que son de factor 2 o 4—. Que salga una décima no lo convierte en una referencia de precisión fina.

Confianza media. Ficha oficial ELS «ADL90 TRIMLESS», referencia ADL90.XTM5.9540.61TL, módulo Xicato XTM 19954013CCA. Los 11,5 W coinciden al vatio con la línea de datos del propio IES.

2 · Contra la cabecera del propio fichero — 1 de 3 anclas

Aquí el valor de referencia no viene de fuera: sale del mismo fichero, de una palabra clave de su cabecera, y así lo dice su fuente. Sigue probando algo —esa palabra clave no se deduce de la matriz de candelas, de modo que un error de escalado la delataría—, pero no es una comprobación independiente y por tanto no se cuenta entre las fichas de fabricante. Se separa para que el recuento de arriba no infle lo que hay.

mark-panel-2x2-4000lm.ies
4056 lm
de referencia
4056,0 lm
integrado por el motor
0,00 %
error · umbral 3 %

Confianza alta. El propio fichero, keyword [_TOTALLUMINAIRELUMENS], PRIMERA aparición. Coincide con el [LUMCAT] «CHSL 2x2 80CRI 35K 4000LM MNML 2SDP».

Otros 2 ficheros del manifiesto no tienen ancla y se dice por qué: erco-optec-14w-30.ies — Fotometría RELATIVA: la cabecera declara 1080 lm, que son los de la LÁMPARA. El flujo de luminaria no está en el fichero. · williams-downlight-wallwash.ies — No publicado. El 8DR se cataloga en tres distribuciones (W 65°, M 50°, N 35°) y el wall wash queda fuera de tabla. La ficha de la época publica los otros tres ensayos ATAL del mismo lote del 12/11/2015 y se salta justo el 011608, que es el de este fichero. Un ancla inventada haría pasar un parser roto, así que ahí no se escribe ningún número estimado.

3 · Contra el LORL que declara cada EULUMDAT

El formato EULUMDAT declara en su línea 23 el rendimiento de la luminaria (LORL), que mide el laboratorio aparte de la matriz. Integrar la curva tiene que devolver flujo de lámpara × LORL. Es la comprobación que cierra las dos trampas del formato: el escalado en cd/1000 lm y la reconstrucción de la matriz completa por simetría —si cualquiera de las dos estuviera mal, el error saldría de factor 2, 4 o de órdenes de magnitud, no de décimas—. Es una comprobación interna: fuerte, pero del fichero contra sí mismo.

52
ficheros con LORL declarado
2,11 %
peor error de los 52
0
superan el 3 %

El peor es h1-eulumdat-rs-projector.ldt, con 2,11 %. Los demás quedan por debajo. Peor error de las anclas del manifiesto: 0,04 %.

Qué NO prueba nada de esto
Esto verifica la lectura del fichero fotométrico, no el cálculo del local. Son dos cosas distintas: el motor podría leer perfectamente la curva y equivocarse después al repartir la luz por la habitación. La referencia externa para eso es otro programa de cálculo luminotécnico, y ya está: los 10 casos de la hoja están comparados. Es la sección 06.
02

EL CORPUS

Los ficheros están en el repositorio (validation/fixtures) y el recuento se hace leyendo la carpeta al compilar. La mayoría son fotometrías de catálogo de fabricante; unos pocos son ficheros de ejemplo de las propias especificaciones de los formatos, que sirven para cubrir casos raros y que no representan a ninguna luminaria en venta. No se dice «todos de fabricante» porque no lo son.

66
ficheros fotométricos
53
EULUMDAT (.ldt)
13
IES LM-63 (.ies)
32
nombres de fabricante

El recuento de nombres es el de las cabeceras, sin limpiar: una misma marca puede aparecer con dos grafías y algún fichero de ejemplo escribe ahí un texto que no es un nombre comercial. Se enseña tal cual antes que redondeado a ojo.

Simetrías EULUMDAT

Código Isym de la línea 3. El fichero solo guarda el sector mínimo y hay que reconstruir los 360°: si el código se interpreta mal, medio local sale a cero.

0Sin simetría18
1De revolución7
2Espejo en C0–C1804
3Espejo en C90–C2709
4Espejo en los dos ejes15

Revisiones de LM-63

Con la revisión que ha aplicado el motor al leer cada fichero, no con una segunda lectura de la línea de versión: de esa revisión depende que las candelas se multipliquen o no por el factor de balasto, así que lo honesto es enseñar lo que se hizo. La de 1986 es la única que no lleva línea de versión, así que un IES sin ella se cuenta ahí. Aquí suman 10 de los 13 ficheros IES: la diferencia son los que el motor rechaza (3), porque de un fichero que no se ha leído no se puede decir con qué reglas se leyó.

LM-63 19862
LM-63 19912
LM-63 19952
LM-63 20024

62 se leen · 4 se rechazan a propósito

Un rechazo con motivo no es un fallo: es la conducta correcta. Lo que no puede pasar es que un fichero que el motor no entiende salga con un número creíble. Estos son los del corpus, con el mensaje exacto que devuelve el parser:

h5-arcluce-tula-9w-2way-mural.ldt LDT_BAD_LAMP_FLUX

El flujo del juego de lámpara es negativo. En EULUMDAT ese campo es la ESCALA de toda la matriz —las intensidades vienen en cd por cada 1.000 lm— así que sin un flujo válido no hay forma de convertirlas en candelas sin inventarse el dato. (línea 29, se esperaba un flujo de lámpara mayor que 0 lm (o 0 para fotometría absoluta), se encontró -2 lm)

h6-bega-l3872-lm63-1995.ies ANGLES_NOT_ASCENDING

Los ángulos del fichero no van en orden creciente. El motor interpola entre ángulos consecutivos, y con la lista desordenada la interpolación daría valores que no están en ninguna parte de la curva. (línea 17, se esperaba un ángulo mayor que 105°, se encontró 100°)

h6-kim-4324p70-16l4k.ies IES_UNSUPPORTED_TYPE

El fichero es de fotometría de tipo A o B, propia de proyectores de espectáculos y de automoción. Sus ángulos no son el polar y el azimutal, así que este motor no lo puede calcular: pídele al fabricante el mismo producto en tipo C, que es el convenio de interiores. (línea 18, se esperaba tipo fotométrico 1 (C), se encontró 2 (B))

h6-lithonia-7200-400m-hf-iesna91.ies IES_UNSUPPORTED_TYPE

El fichero es de fotometría de tipo A o B, propia de proyectores de espectáculos y de automoción. Sus ángulos no son el polar y el azimutal, así que este motor no lo puede calcular: pídele al fabricante el mismo producto en tipo C, que es el convenio de interiores. (línea 20, se esperaba tipo fotométrico 1 (C), se encontró 2 (B))

03

LA COMPARACIÓN CONTRA OTRO PROGRAMA

Parámetros idénticos en los 10 casos: factor de mantenimiento 0,80 · plano de trabajo 0,80 m · zona marginal pedida 0,50 m. Son la causa número uno de que dos cálculos correctos den números distintos. No en todos: donde el local no da para tanta banda, el motor la estrecha al 15 % del lado corto —casos 5 (0,30 m) · 8 (0,45 m)—, y ahí los lux se han promediado sobre esa superficie y no sobre la pedida.

#LocalEm Solarion LuxEm otro programaDesviaciónObjetivo
16 × 4 × 2,8 m655,7 lx660,0 lx−0,7 %< 5 %
212 × 8 × 3,0 m538,6 lx544,0 lx−1,0 %< 5 %
39 × 7 × 3,0 m591,4 lx602,0 lx−1,8 %< 5 %
430 × 20 × 8,0 m731,4 lx744,0 lx−1,7 %se documenta
520 × 2 × 2,7 m919,6 lx893,0 lx+3,0 %< 5 %
640 × 15 × 10,0 m761,3 lx784,0 lx−2,9 %se documenta
78 × 5 × 2,7 m635,3 lx643,0 lx−1,2 %< 5 %
83 × 3 × 2,5 m156,8 lx164,0 lx−4,4 %†se documenta
910 × 10 × 4,5 m236,2 lx237,0 lx−0,3 %se documenta
1015 × 10 × 3,0 m508,8 lx516,0 lx−1,4 %< 5 %

† En este caso el motor avisa de que su propia media no es fiable a menos de unos puntos porcentuales: al calcular con la malla al doble de fina, cambia mucho más de lo que cambia en una instalación bien resuelta. Es lo típico de un proyector de haz estrecho en un local pequeño. El mapa de isolux y el mínimo sí valen. La desviación se publica igual, porque lo único que se exige es publicar el número verdadero.

Desviación = (Em Solarion Lux − Em del otro programa) / Em del otro programa × 100. El objetivo del 5 % no cubre los 10 casos: se exige en 6 de ellos, los locales rectangulares corrientes. En los otros 4 se sabe de antemano que el método de flujo dividido se degrada (techos muy altos, un local mínimo con una sola luminaria, y una instalación donde más de un tercio de la luz llega rebotada) y lo único que se exige es publicar el número verdadero, salga el que salga.

El resto de nuestras cifras — comparadas fuera de esta tabla

Estas seis columnas no tienen aquí su pareja del otro programa, y eso es una limitación de esta tabla, no del trabajo: la uniformidad y las iluminancias mínima y máxima sí se han medido contra el programa de referencia, en más casos que los de aquí, y el resultado está publicado con sus cifras en el expediente de validación del repositorio.

Lo que ese expediente dice, y es la razón de que la promesa hable de la iluminancia media y solo de ella: el motor promedia mucho mejor de lo que reparte. La media se aparta poco; la uniformidad se aparta bastante más, y el porqué está localizado y escrito —la componente interreflejada se entrega como un valor único para todo el plano—. Ese límite se cuenta entero en la sección 04.

Los W/m² son un caso aparte y conviene mirarlos los primeros: no dependen de la física —potencia instalada dividida por superficie—, así que si no coinciden es que uno de los dos programas ha cargado otra luminaria. En los casos medidos coinciden al céntimo, y eso es lo que prueba que los dos están calculando la misma instalación.

Solarion Lux · estas seis se comparan en el expediente, no en esta tabla
#EminU0Emin/EmaxW/m²MallaPuntos útiles
1442,4 lx0,670,567,0272 × 642880 de 4608
2347,6 lx0,650,515,2688 × 805600 de 7040
3368,0 lx0,620,506,0180 × 724464 de 5760
4355,3 lx0,490,417,00112 × 10410.584 de 11.648
5607,8 lx0,660,547,38104 × 564000 de 5824
6351,3 lx0,460,378,40128 × 9611.160 de 12.288
7429,9 lx0,680,536,3280 × 724060 de 5760
85,9 lx0,040,011,8956 × 561600 de 3136
9112,7 lx0,480,293,5280 × 805184 de 6400
10327,9 lx0,640,484,2196 × 806480 de 7680
04

LOS LÍMITES DEL MÉTODO

Un profesional que lee los límites se fía más, no menos. Estos son los del motor tal y como está hoy, y están escritos también en el código, donde ocurren.

No modela sombras ni obstrucciones

La componente interreflejada se resuelve por flujo dividido: el local se parte en seis superficies —techo, suelo y cuatro paredes— y se equilibra el flujo con sus reflectancias. Es excelente en un local vacío y se degrada con el mobiliario. Una estantería, una columna o una máquina no proyectan sombra en este cálculo. Fuera de alcance en la v1: geometría no rectangular, obstrucciones, luz natural y exteriores.

El flujo dividido se degrada en geometrías extremas

La interreflejada se reparte como un valor uniforme en todo el plano de trabajo. Lo que eso cuesta no es la media —el método equilibra todo el flujo que sale de la luminaria, así que la media aguanta incluso cuando la mayor parte de la luz ha rebotado— sino el reparto: cuanto más pesa esa componente, más plana sale la uniformidad frente a la real. En estos 10 casos el extremo es el nº 9 (10 × 10 × 4,5 m, 4 suspendidas a 1,00 m del techo), donde el 34,9 % de la luz que llega al plano de trabajo ha rebotado antes. Por eso los casos con techo muy alto, local mínimo o mucha luz indirecta no entran en el objetivo del 5 %: se publica su desviación real.

Los tipos fotométricos A y B no se leen

El motor solo calcula con fotometría de tipo C, que es el convenio de interiores. Los tipos A y B —proyectores de espectáculos y automoción— tabulan dos ángulos que no son el polar y el azimutal: meterlos en la fórmula de la componente directa daría una aritmética correcta cuyo resultado no significa lo que el motor cree, y saldría un mapa isolux creíble y falso. Se rechazan en la puerta, con un mensaje que dice que hay que pedirle al fabricante el fichero en tipo C. En este corpus hay 4 ficheros rechazados por esta y otras causas, listados arriba.

La v1 no incorpora la EN 12464-1

El objetivo de lux lo pone el usuario. La aplicación no dice si una instalación cumple la EN 12464-1 ni la ISO 8995-1: son normas con copyright y reproducir su contenido exige una licencia que la v1 no tiene. Para España se pueden usar los valores del Real Decreto 486/1997, anexo IV, que es ley publicada en el BOE y se cita como fuente.

05

CASOS DE REFERENCIA CON SOLUCIÓN CERRADA

Las secciones anteriores comparan este programa con datos de fuera: con la ficha de un fabricante, o con lo que devuelve otro programa. Esta sección hace algo distinto: enfrenta cada cifra con la fórmula que dice cuál tiene que ser. El valor correcto se conoce antes de ejecutar nada, porque se deriva a mano y está escrito al lado.

La diferencia no es de comodidad. Comparar dos programas dice que se parecen, no que acierten: dos motores con el mismo error coinciden perfectamente. Aquí no hay a quién parecerse.

#Qué pone a pruebaLa fórmulaEste programaDiferencia
R1El flujo de una curva constante, y con él el peso de ángulo sólido.
Φ = 4π·I
12.566,3706 lm12.566,3706 lm0,000000 %
R3El flujo de una curva lineal a trozos, que distingue la primitiva analítica del trapecio.
Φ = 2π·I₀·(1 − sen γ₀/γ₀), que para γ₀ = 90° vale 2π·I₀ − 4·I₀
2283,1853 lm2283,1853 lm+0,000000 %
R5La escala del motor: si esto falla, ninguna otra cifra significa nada.
E = I / h²
206,6116 lx206,6116 lx0,000000 %
R8Separa el ángulo fotométrico γ del ángulo de incidencia θ sobre una pared.
E = I(γ)·cos θ / d², con cos γ = 1/3 y cos θ = 2/3 a d = 3,00 m
16,0257 lx16,0257 lx0,000000 %
R9La cadena directa con una curva real, no lineal a trozos.
E = I₀·h² / (h² + r²)², con h = 3,00 m y r = 0 (punto A)
111,1111 lx111,1111 lx0,000000 %
R11La media sobre la malla de producción, con su zona marginal.
Em = (1/2304)·Σ I·h/((xᵢ−2)² + (yⱼ−2)² + h²)^{3/2} sobre los 2.304 centros útiles
143,5382 lx143,5382 lx+0,000000 %
R14La componente interreflejada en el único caso donde tiene solución exacta.
E_ir = (1/A)·ρ·Φ/(1 − ρ), con A = 96 m², Φ = 10 000 lm y ρ = 0,50
104,1667 lx104,1667 lx0,000000 %
R17La cadena entera por la misma puerta que usa el producto.
Em = (directa media + ρ·Φ/(A·(1−ρ))) · FM, con FM = 0,80
268,8931 lx268,8931 lx0,000000 %

Hasta dónde llega cada uno.

R1. Acredita: Que el integrador aplica el peso sen γ y cierra la vuelta azimutal. No acredita: Nada sobre la lectura de ficheros reales: la curva se construye en código.

R3. Acredita: Que la integración usa la primitiva exacta y no una regla del trapecio. No acredita: Curvas que no sean lineales a trozos: para esas está R9.

R5. Acredita: La magnitud absoluta de la componente directa bajo la vertical. No acredita: La geometría del coseno fuera del nadir, ni la incidencia oblicua.

R8. Acredita: Que el motor no confunde el ángulo de emisión con el de incidencia. No acredita: El reparto sobre la pared entera: es un solo punto.

R9. Acredita: La interpolación de una curva suave y la magnitud resultante. No acredita: Curvas asimétricas: la lambertiana tiene simetría de revolución.

R11. Acredita: Que la media se toma sobre las celdas que corresponde y con el peso que corresponde. No acredita: Que esa media sea la media verdadera del rectángulo: la de malla la supera en un 0,0090 %, que es el sesgo de muestreo del punto medio y se publica.

R14. Acredita: Que el solucionador de rebotes converge y que la energía cierra. No acredita: El reparto espacial de la interreflejada, las reflectancias no uniformes, y el comportamiento del método en geometrías que no sean un recinto cerrado y uniforme.

R17. Acredita: Que las dos componentes se suman en el orden correcto y que el factor de mantenimiento se aplica una sola vez y al final. No acredita: Nada que no acrediten ya R11 y R14 por separado: esto valida el montaje, no las piezas.

Lo que ninguna de estas cifras dice
Son escenas de geometría elemental: local rectangular y vacío, superficies mate, y una curva fotométrica construida dentro del propio programa para que su resultado se pueda escribir con una fórmula. Miden que la física implementada es la física declarada. No miden lo que marcará un luxómetro en una instalación real, y no convierten a este programa en validado, certificado ni homologado por nadie.
06

10 COMPARACIONES MEDIDAS

Caso 1 · local de 6,00 × 4,00 × 2,80 m. Iluminancia media: 655,7 lx aquí y 660,0 lx en el programa de referencia, una diferencia del −0,7 %. Medido el 20 de agosto de 2026.

Caso 2 · local de 12,00 × 8,00 × 3,00 m. Iluminancia media: 538,6 lx aquí y 544,0 lx en el programa de referencia, una diferencia del −1,0 %. Medido el 20 de agosto de 2026.

Caso 3 · local de 9,00 × 7,00 × 3,00 m. Iluminancia media: 591,4 lx aquí y 602,0 lx en el programa de referencia, una diferencia del −1,8 %. Medido el 21 de agosto de 2026.

Caso 4 · local de 30,00 × 20,00 × 8,00 m. Iluminancia media: 731,4 lx aquí y 744,0 lx en el programa de referencia, una diferencia del −1,7 %. Medido el 21 de agosto de 2026.

Caso 5 · local de 20,00 × 2,00 × 2,70 m. Iluminancia media: 919,6 lx aquí y 893,0 lx en el programa de referencia, una diferencia del +3,0 %. Medido el 21 de agosto de 2026.

Caso 6 · local de 40,00 × 15,00 × 10,00 m. Iluminancia media: 761,3 lx aquí y 784,0 lx en el programa de referencia, una diferencia del −2,9 %. Medido el 21 de agosto de 2026.

Caso 7 · local de 8,00 × 5,00 × 2,70 m. Iluminancia media: 635,3 lx aquí y 643,0 lx en el programa de referencia, una diferencia del −1,2 %. Medido el 21 de agosto de 2026.

Caso 8 · local de 3,00 × 3,00 × 2,50 m. Iluminancia media: 156,8 lx aquí y 164,0 lx en el programa de referencia, una diferencia del −4,4 %. Medido el 21 de agosto de 2026.

Caso 9 · local de 10,00 × 10,00 × 4,50 m. Iluminancia media: 236,2 lx aquí y 237,0 lx en el programa de referencia, una diferencia del −0,3 %. Medido el 21 de agosto de 2026.

Caso 10 · local de 15,00 × 10,00 × 3,00 m. Iluminancia media: 508,8 lx aquí y 516,0 lx en el programa de referencia, una diferencia del −1,4 %. Medido el 21 de agosto de 2026.

La diferencia es la cifra de aquí menos la del otro programa, dividida por la del otro programa. Con signo más, aquí sale más luz que allí.

Están medidas las 10 comparaciones de la hoja. Cada una habla de su local, con su luminaria y con sus supuestos; fuera de esos 10 locales no hay ninguna medida.

La comparación se hizo contra un software de cálculo luminotécnico de referencia en Europa. Su nombre y su versión constan en la documentación técnica de este cálculo, disponible a petición.

Los dos programas han calculado el mismo local sobre plano, vacío y rectangular. Ninguna de estas cifras dice lo que marcará un luxómetro en la obra terminada.

Fuentes de esta pantalla, todas en el repositorio: validation/anclajes.json (3 anclas con su fuente y su confianza, de las cuales 2 con URL de ficha publicada), validation/fixtures (66 ficheros fotométricos), validation/cases/casos.ts (la definición de los 10 casos), validation/comparaciones.json (la tabla de comparaciones medidas contra otro programa, 10 de 10, tecleada a mano y cotejada contra el motor al compilar) y validation/RESULTADOS.md (la hoja para reproducirlos en el otro programa, y cómo se rellena la anterior), validation/cases/analiticos.ts (las 8 referencias con solución cerrada, cada una con su fórmula, y sin poder importar ni un valor del motor: si la fórmula la calculara el propio motor, se estaría comparando consigo mismo) y validation/referencias.json (lo que se declara de ellas para publicar, hoy las 8). El cálculo lo hace src/engine al compilar esta página.

← Volver al cálculoPrivacidad →