Files
bps-schema/schema-community-energy.json
ringo 1f7ba8ee47 feat(schema): 扩展社区级模式定义建筑引用和能源需求结构
- 在 schema-community.json 中扩展描述字段,增加建筑引用、气象和模拟配置支持
- 添加 BuildingRef 和 CommunityBuildingAttributes 定义社区级建筑属性
- 添加 WeatherContext 和 SimulationContext 支持气象数据和模拟参数配置
- 在 schema-community-energy.json 中扩展描述字段,增加社区级能源需求聚合功能
- 添加 BuildingEnergyDemand、AggregatedEnergyDemand 和 CommunityEnergyDemand 结构
- 添加 DistrictEnergy 的设计温度配置字段
- 格式化 JSON 模式定义,简化数组和对象表示法
- 创建 docs/cea-mapping.md 文档,详细说明 bps-schema 与 CEA 软件的字段映射关系
- 包含社区几何、能源系统、数据库引用和参考案例的完整映射示例
2026-05-29 14:33:18 +08:00

235 lines
7.6 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "bps/community-energy",
"title": "Community-Scale Energy Schema",
"description": "District energy system parameters for community scale. Covers plants, networks, pipes, building connections, and community-level energy demand aggregation.",
"$defs": {
"_IdentifiedObject": {
"type": "object",
"properties": {
"identifier": {
"type": "string",
"pattern": "^[.A-Za-z0-9_-]+$",
"minLength": 1,
"maxLength": 100
},
"display_name": {
"type": ["string", "null"]
},
"user_data": {
"type": ["object", "null"]
}
},
"required": ["identifier"]
},
"PlantType": {
"type": "string",
"enum": [
"CHP", "GasBoiler", "ElectricBoiler",
"GroundSourceHeatPump", "AirSourceHeatPump",
"Chiller", "CoolingTower",
"ThermalStorage", "SolarThermal", "PV"
]
},
"NetworkType": {
"type": "string",
"enum": ["CHW", "HW", "Steam", "Electricity"]
},
"Plant": {
"type": "object",
"allOf": [
{ "$ref": "#/$defs/_IdentifiedObject" },
{
"type": "object",
"properties": {
"type": { "const": "Plant" },
"plant_type": { "$ref": "#/$defs/PlantType" },
"rated_capacity": { "type": "number", "exclusiveMinimum": 0, "description": "kW" },
"cop": { "type": "number", "exclusiveMinimum": 0 },
"fuel_type": { "type": "string", "default": "natural_gas" },
"location": {
"type": "array", "items": { "type": "number" },
"minItems": 3, "maxItems": 3
}
},
"required": ["type", "plant_type", "rated_capacity"],
"additionalProperties": false
}
]
},
"Pipe": {
"type": "object",
"allOf": [
{ "$ref": "#/$defs/_IdentifiedObject" },
{
"type": "object",
"properties": {
"type": { "const": "Pipe" },
"start_node": { "type": "string" },
"end_node": { "type": "string" },
"length": { "type": "number", "exclusiveMinimum": 0, "description": "m" },
"diameter": { "type": "number", "exclusiveMinimum": 0, "description": "m" },
"insulation_thickness": { "type": "number", "minimum": 0, "default": 0 },
"insulation_conductivity": { "type": "number", "exclusiveMinimum": 0, "default": 0.04 }
},
"required": ["type", "start_node", "end_node", "length", "diameter"],
"additionalProperties": false
}
]
},
"Network": {
"type": "object",
"allOf": [
{ "$ref": "#/$defs/_IdentifiedObject" },
{
"type": "object",
"properties": {
"type": { "const": "Network" },
"network_type": { "$ref": "#/$defs/NetworkType" },
"supply_temperature": { "type": "number", "description": "Celsius" },
"return_temperature": { "type": "number", "description": "Celsius" },
"pipes": {
"type": "array",
"items": { "$ref": "#/$defs/Pipe" }
}
},
"required": ["type", "network_type", "pipes"],
"additionalProperties": false
}
]
},
"BuildingConnection": {
"type": "object",
"allOf": [
{ "$ref": "#/$defs/_IdentifiedObject" },
{
"type": "object",
"properties": {
"type": { "const": "BuildingConnection" },
"building_ref": { "type": "string" },
"network_ref": { "type": "string" },
"design_flow_rate": { "type": "number", "exclusiveMinimum": 0 }
},
"required": ["type", "building_ref", "network_ref"],
"additionalProperties": false
}
]
},
"BuildingEnergyDemand": {
"type": "object",
"properties": {
"building_ref": {
"type": "string",
"description": "对应 schema-community.json 中 BuildingRef.ref 的标识符"
},
"gross_floor_area_m2": { "type": "number" },
"conditioned_floor_area_m2": { "type": "number" },
"annual": {
"type": "object",
"properties": {
"heating_mwh": { "type": "number" },
"cooling_mwh": { "type": "number" },
"electricity_mwh": { "type": "number" },
"dhw_mwh": { "type": "number" },
"total_mwh": { "type": "number" }
},
"required": ["heating_mwh", "cooling_mwh", "electricity_mwh", "dhw_mwh"]
},
"peak_heating_kw": { "type": "number" },
"peak_cooling_kw": { "type": "number" }
},
"required": ["building_ref", "annual"],
"additionalProperties": false
},
"AggregatedEnergyDemand": {
"type": "object",
"properties": {
"total_buildings": { "type": "integer", "minimum": 0 },
"total_gfa_m2": { "type": "number" },
"total_conditioned_m2": { "type": "number" },
"total_heating_mwh": { "type": "number" },
"total_cooling_mwh": { "type": "number" },
"total_electricity_mwh": { "type": "number" },
"total_dhw_mwh": { "type": "number" },
"total_energy_mwh": { "type": "number" },
"energy_use_intensity_kwh_m2": { "type": "number" }
},
"required": ["total_buildings", "total_energy_mwh"],
"additionalProperties": false
},
"CommunityEnergyDemand": {
"type": "object",
"allOf": [
{ "$ref": "#/$defs/_IdentifiedObject" },
{
"type": "object",
"properties": {
"type": { "const": "CommunityEnergyDemand" },
"buildings": {
"type": "array",
"items": { "$ref": "#/$defs/BuildingEnergyDemand" },
"description": "每栋建筑的年度用能需求明细"
},
"aggregated": {
"$ref": "#/$defs/AggregatedEnergyDemand",
"description": "社区聚合指标"
}
},
"required": ["type"],
"additionalProperties": false
}
]
},
"DistrictEnergy": {
"type": "object",
"allOf": [
{ "$ref": "#/$defs/_IdentifiedObject" },
{
"type": "object",
"properties": {
"type": { "const": "DistrictEnergy" },
"plants": {
"type": "array",
"items": { "$ref": "#/$defs/Plant" }
},
"networks": {
"type": "array",
"items": { "$ref": "#/$defs/Network" }
},
"connections": {
"type": "array",
"items": { "$ref": "#/$defs/BuildingConnection" }
},
"demand": {
"$ref": "#/$defs/CommunityEnergyDemand",
"description": "区域能源系统的负荷输入(来自建筑需求模拟)"
},
"supply_temperature_hw_c": {
"type": "number",
"description": "供热管网设计供温"
},
"return_temperature_hw_c": {
"type": "number",
"description": "供热管网设计回温"
},
"supply_temperature_chw_c": {
"type": "number",
"description": "供冷管网设计供温"
},
"return_temperature_chw_c": {
"type": "number",
"description": "供冷管网设计回温"
}
},
"required": ["type"],
"additionalProperties": false
}
]
}
}
}