4. 光强分布:配光曲线(LID)的理解、IES/LDT 文件格式解析、光源配光数据导入

配光曲线,说白了就是描述一个光源往各个方向怎么发光的“指纹”。

我刚开始做照明设计时,总觉得只要知道灯具的功率和光通量就够了。直到有一次,一个商场项目装完灯,地面照度倒是够了,但墙面全是暗区,业主直接炸了。后来一查,问题就出在配光曲线上——我选了个窄光束的筒灯,根本照不到墙面。

从那以后,我养成了一个习惯:拿到任何灯具,第一件事就是看它的配光曲线。今天我们就来彻底搞懂它。

4.1 配光曲线到底在说什么?

配光曲线,也叫光强分布曲线(LID,Luminous Intensity Distribution)。它用极坐标或直角坐标,画出了灯具在不同角度上的光强值。

你想想看,一个灯泡挂在空中,它往正下方照的光强是多少?往侧面照又是多少?把这些数据连成一条线,就是配光曲线。

核心概念:

  • C平面:水平方向的角度,0°通常指向灯具的安装方向
  • γ角:垂直方向的角度,0°是正下方,90°是水平方向
  • 光强值 I(c,γ):在某个C平面、某个γ角上的光强,单位是cd

配光曲线主要分两种:

类型 适用场景 特点
极坐标配光曲线 筒灯、射灯、路灯 直观,一眼看出光束角、对称性
直角坐标配光曲线 线型灯、洗墙灯、投光灯 适合非对称配光,数据精确

举个例子,一个30°光束角的射灯,它的极坐标配光曲线看起来就像一个“锥形”,中心光强最高,往两边迅速衰减。而一个洗墙灯的直角坐标配光曲线,你会看到一边的光强明显高于另一边——这就是非对称配光。

我的经验:看配光曲线时,先看对称性。如果左右完全对称,说明灯具安装时不用太纠结方向。如果不对称,一定要标清楚安装朝向,否则现场装反了,效果直接翻车。

4.2 IES/LDT 文件格式解析

配光曲线在软件里怎么存?靠的就是 IES 和 LDT 文件。

IES 文件是北美照明工程学会的标准,LDT 文件是欧洲的 EULUMDAT 格式。说白了,它们就是配光数据的“身份证”。

4.2.1 IES 文件结构

我最早接触 IES 文件时,打开一看全是数字,头都大了。后来拆解了几次,发现结构其实很清晰。

IESNA:LM-63-2002
[TEST] 测试报告编号
[MANUFAC] 灯具品牌
[LUMCAT] 灯具型号
[LUMINAIRE] 灯具描述
[LAMPCAT] 光源型号
[LAMP] 光源数量
[OTHER] 其他信息
TILT=NONE
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0

关键数据段解析:

数据位置 含义 示例
第1行 文件格式版本 IESNA:LM-63-2002
关键字行 灯具信息、测试条件 [MANUFAC] PHILIPS
TILT=NONE 倾斜数据,NONE表示无倾斜 TILT=NONE
第1组数字 灯具光通量、光强乘数、垂直角度数、水平角度数等 1.0 1.0 37 9 ...
后续数字 各角度对应的光强值(cd/klm) 0.0 0.0 0.0 0.0 ...

注意:IES 文件里的光强值通常是“归一化”的,单位是 cd/klm(每千流明的坎德拉)。导入软件后,软件会根据实际光通量自动换算。如果你直接拿这个值去算,结果会差很多。

4.2.2 LDT 文件结构

LDT 文件比 IES 更简洁,但信息量一点不少。

  [LDT]
  PHILIPS
  DN570B LED36S/840 PSU W60L60
  1
  1.0
  1
  36.0
  1
  0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
  0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
  0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
  0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
  0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
  0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
  0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
  0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
  0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
  0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

LDT 文件的关键数据行:

行号 含义
第1行 文件标识 [LDT]
第2行 制造商
第3行 灯具型号
第4行 光源数量
第5行 光通量(lm)
第6行 C平面数量
第7行 每个C平面的角度数
第8行 各C平面的角度值
第9行 各γ角的角度值
后续行 光强数据矩阵

我的习惯:拿到 IES 或 LDT 文件后,先用文本编辑器打开,快速扫一眼关键字行。如果 [MANUFAC] 或制造商信息对不上,或者光通量明显不合理,我会直接找厂家要新的。曾经有一次,厂家给错了 IES 文件,我导入软件后算出来的照度差了30%,还好在施工前发现了。

4.3 配光数据导入实战

配光数据怎么导入到建模软件里?我以 Python 为例,写一个简单的解析器。

4.3.1 Python 解析 IES 文件

def parse_ies(file_path):
    """
    解析 IES 文件,返回配光数据字典
    """
    with open(file_path, 'r', encoding='utf-8', errors='ignore') as f:
        lines = f.readlines()
    
    # 提取关键字信息
    metadata = {}
    data_start = 0
    for i, line in enumerate(lines):
        line = line.strip()
        if line.startswith('[') and line.endswith(']'):
            key = line[1:-1]
            if i + 1 < len(lines):
                metadata[key] = lines[i+1].strip()
        if line.startswith('TILT='):
            data_start = i + 1
            break
    
    # 解析数字数据
    numbers = []
    for line in lines[data_start:]:
        for num in line.split():
            try:
                numbers.append(float(num))
            except:
                continue
    
    # 提取关键参数
    # 格式:光通量, 乘数, 垂直角度数, 水平角度数, ...
    luminous_flux = numbers[0]  # 光通量 (lm)
    multiplier = numbers[1]     # 光强乘数
    n_vertical = int(numbers[2])   # 垂直角度数 (γ角)
    n_horizontal = int(numbers[3]) # 水平角度数 (C平面)
    
    # 提取角度值
    vertical_angles = numbers[4:4+n_vertical]
    horizontal_angles = numbers[4+n_vertical:4+n_vertical+n_horizontal]
    
    # 提取光强数据
    intensity_start = 4 + n_vertical + n_horizontal
    intensity_data = numbers[intensity_start:]
    
    # 重塑为二维数组
    intensity_matrix = []
    for i in range(n_horizontal):
        row = intensity_data[i*n_vertical:(i+1)*n_vertical]
        intensity_matrix.append(row)
    
    return {
        'metadata': metadata,
        'luminous_flux': luminous_flux,
        'multiplier': multiplier,
        'vertical_angles': vertical_angles,
        'horizontal_angles': horizontal_angles,
        'intensity_matrix': intensity_matrix
    }

# 使用示例
ies_data = parse_ies('example.ies')
print(f"灯具型号: {ies_data['metadata'].get('LUMCAT', '未知')}")
print(f"光通量: {ies_data['luminous_flux']} lm")
print(f"垂直角度数: {len(ies_data['vertical_angles'])}")
print(f"水平角度数: {len(ies_data['horizontal_angles'])}")

4.3.2 将配光数据转换为三维模型

解析完数据后,怎么把它变成可视化的配光曲线?我一般用 matplotlib 画极坐标图。

import matplotlib.pyplot as plt
import numpy as np

def plot_polar_lid(intensity_matrix, vertical_angles, horizontal_angles):
    """
    绘制极坐标配光曲线
    """
    # 取第一个C平面(通常是对称轴)
    intensity = intensity_matrix[0]
    
    # 将角度转换为弧度
    angles = np.radians(vertical_angles)
    
    # 创建极坐标图
    fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})
    ax.plot(angles, intensity, 'b-', linewidth=2)
    ax.fill(angles, intensity, alpha=0.3)
    
    # 设置角度标签
    ax.set_theta_zero_location('N')  # 0°在正上方
    ax.set_theta_direction(-1)       # 顺时针方向
    
    # 设置标题
    ax.set_title('配光曲线 (C0平面)', pad=20)
    
    plt.show()

# 使用示例
plot_polar_lid(
    ies_data['intensity_matrix'],
    ies_data['vertical_angles'],
    ies_data['horizontal_angles']
)

关键点:

  • IES 文件中的光强值需要乘以 multiplier 才是真实光强
  • 垂直角度通常从0°(正下方)到180°(正上方),但有些文件只到90°
  • 水平角度(C平面)通常从0°到360°,步长固定

4.4 配光曲线知识体系

为了让你更直观地理解配光曲线的整体知识结构,我画了一张图。

配光曲线知识体系 配光曲线 (LID) 基本概念 C平面 / γ角 极坐标 vs 直角坐标 对称性判断 文件格式 IES 格式 (北美) LDT 格式 (欧洲) 关键字解析 数据导入 Python 解析 三维可视化 软件导入 (Dialux/Relux) 核心要点 • 配光曲线是光源的“指纹”,决定了照明效果 • IES/LDT 文件是配光数据的标准存储格式 • 导入数据时注意单位换算和角度对应关系

4.5 避坑指南

最后,分享几个我踩过的坑。

我曾经... 在一个博物馆项目中,用了某品牌的洗墙灯,IES 文件显示配光很均匀。结果装上去,墙面出现了一条明显的“亮带”。后来才发现,那个 IES 文件是旧版本的,实际灯具的光学透镜已经改了。从那以后,我每次都会要求厂家提供最新的 IES 文件,并且用软件先模拟一遍再下单。

其他常见问题:

  • 角度范围不一致:有些 IES 文件只包含0°-90°的数据,有些包含0°-180°。导入时一定要确认,否则软件会报错或生成错误结果。
  • 光通量对不上:IES 文件里的光通量是理论值,实际灯具可能会有偏差。我一般会要求厂家提供实测报告,对比一下再导入。
  • 多光源灯具:有些灯具包含多个光源,IES 文件里会有一个“光源数量”字段。导入时要注意,软件可能会自动乘以光源数量,也可能不会。最好手动验证一下。

我的建议:如果你刚开始接触配光曲线,可以先从简单的筒灯开始练手。找一个知名品牌的 IES 文件,用 Python 解析出来,再画成极坐标图。对比一下软件自带的配光曲线,看看是否一致。这个过程能帮你快速建立直觉。