ocs-calculators 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +3 -3
- package/README_EN.md +1 -1
- package/dist/{chunk-CVA4EH2K.js → chunk-IQR3SRCD.js} +9 -9
- package/dist/chunk-IQR3SRCD.js.map +1 -0
- package/dist/{chunk-MZBQ4546.cjs → chunk-MTAYG3U2.cjs} +9 -9
- package/dist/chunk-MTAYG3U2.cjs.map +1 -0
- package/dist/copper/index.cjs +2 -2
- package/dist/copper/index.d.cts +2 -2
- package/dist/copper/index.d.ts +2 -2
- package/dist/copper/index.js +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-CVA4EH2K.js.map +0 -1
- package/dist/chunk-MZBQ4546.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [0.1.3] - 2026-09-07
|
|
2
|
+
|
|
3
|
+
### 修复
|
|
4
|
+
|
|
5
|
+
- **型号代码规范化**: 与铜计算器的型号键由 H 前置误写形态
|
|
6
|
+
( / / )统一为站内规范写法 ** / / **
|
|
7
|
+
(H 后置构词,与 TB/T 2809-2026 牌号体系及站点词条口径一致)。
|
|
8
|
+
⚠️ 破坏性变更:以旧键字符串调用 copper 相关函数的调用方需同步改名,
|
|
9
|
+
旧键传入会得到「未知型号」错误。
|
|
10
|
+
- 同日已在站点部署侧(itswe 与 7 个计算器页)
|
|
11
|
+
完成相同归一,并修复 7 页输入控件的畸形 uid=197609(showhoo) gid=197609 groups=197609 属性(曾致 JS 绑定整体失效)。
|
|
12
|
+
|
|
1
13
|
# 更新日志
|
|
2
14
|
|
|
3
15
|
本文件格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
|
package/README.md
CHANGED
|
@@ -180,8 +180,8 @@ src/<模块名>/
|
|
|
180
180
|
|
|
181
181
|
## 相关项目
|
|
182
182
|
|
|
183
|
-
-
|
|
184
|
-
- [itswe](https://github.com/showhoo/itswe) —
|
|
183
|
+
- ocs-wiki-content — 504 条词条快照与结构化数据(规划中,仓库未建,建仓后再挂链接)
|
|
184
|
+
- [itswe](https://github.com/showhoo/itswe) — 站点介绍与建站文档
|
|
185
185
|
|
|
186
186
|
## 赞助
|
|
187
187
|
|
|
@@ -192,7 +192,7 @@ src/<模块名>/
|
|
|
192
192
|
## 授权
|
|
193
193
|
|
|
194
194
|
- **代码**:[MIT](./LICENSE)
|
|
195
|
-
- **配套百科内容**:CC BY-SA 4.0(见
|
|
195
|
+
- **配套百科内容**:CC BY-SA 4.0(见 [itswe](https://github.com/showhoo/itswe) 仓库 LICENSE 与 [itswe.com](https://www.itswe.com))
|
|
196
196
|
|
|
197
197
|
---
|
|
198
198
|
|
package/README_EN.md
CHANGED
|
@@ -137,7 +137,7 @@ src/<module>/
|
|
|
137
137
|
|
|
138
138
|
Development and maintenance of this project is supported by:
|
|
139
139
|
|
|
140
|
-
**[Henan
|
|
140
|
+
**[Henan Chuangwit Railway Equipment Co., Ltd.](https://www.chuangwit.com)** (河南创为铁路器材有限公司)
|
|
141
141
|
|
|
142
142
|
## License
|
|
143
143
|
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
var copperMeta = {
|
|
7
7
|
name: "\u63A5\u89E6\u7EBF\u53C2\u6570\u901F\u67E5",
|
|
8
8
|
nameEn: "Contact Wire Parameter Lookup",
|
|
9
|
-
summary: "\u5185\u7F6E
|
|
9
|
+
summary: "\u5185\u7F6E CTMH / CTAH / CTS \u7CFB\u5217 120/150 mm\xB2 \u63A5\u89E6\u7EBF\u53C2\u6570\u8868\uFF0C\u6309\u957F\u5EA6\u4E0E\u73AF\u5883\u6E29\u5EA6\u7ED9\u51FA\u603B\u91CD\u91CF\u4E0E\u6E29\u5EA6\u4FEE\u6B63\u7535\u963B\u3002",
|
|
10
10
|
formula: [
|
|
11
11
|
"\u7535\u963B\u6E29\u5EA6\u4FEE\u6B63\uFF08\u03B1 = 0.00393 /\u2103\uFF09\uFF1Ar_T = r\u2082\u2080\xB7[1 + \u03B1\xB7(T \u2212 20)]",
|
|
12
12
|
"\u603B\u91CD\u91CF\uFF1AW = w\u2080 \xD7 l\uFF08w\u2080 \u5355\u4F4D\u91CD\u91CF kg/km\uFF0Cl \u957F\u5EA6 km\uFF09"
|
|
@@ -15,7 +15,7 @@ var copperMeta = {
|
|
|
15
15
|
"\u5185\u7F6E\u53C2\u6570\u8868\u6765\u6E90 TB/T 2809-2017\u300A\u7535\u6C14\u5316\u94C1\u8DEF\u7528\u94DC\u53CA\u94DC\u5408\u91D1\u63A5\u89E6\u7EBF\u300B\uFF082018-05-01 \u5B9E\u65BD\uFF09",
|
|
16
16
|
"\u5355\u4F4D\u91CD\u91CF\u4E3A\u6807\u79F0\u503C",
|
|
17
17
|
"\u8F7D\u6D41\u91CF\u4E3A 150\u2103 \u6301\u7EED\u503C\uFF0C\u5BA4\u5185/\u5BA4\u5916\u53CC\u53E3\u5F84\u6309\u6807\u51C6\u88685",
|
|
18
|
-
"r\u2082\u2080 \u9664
|
|
18
|
+
"r\u2082\u2080 \u9664 CTMH-120 \u53D6\u7ED9\u5B9A\u503C\u5916\uFF0C\u5747\u6309\u5BFC\u7535\u7387\u53CD\u7B97\u4F30\u7B97\uFF08IACS \u6807\u51C6\u7535\u963B\u7387 0.017241 \u03A9\xB7mm\xB2/m \xF7 \u5BFC\u7535\u7387 \xF7 \u622A\u9762\u79EF\uFF1B0.017241 = 1/58\uFF09",
|
|
19
19
|
"\u6B63\u5F0F\u5DE5\u7A0B\u4EE5\u4EA7\u54C1\u6807\u51C6\u4E0E\u51FA\u5382\u68C0\u9A8C\u5355\u4E3A\u51C6"
|
|
20
20
|
],
|
|
21
21
|
scope: [
|
|
@@ -29,42 +29,42 @@ var copperMeta = {
|
|
|
29
29
|
|
|
30
30
|
// src/copper/index.ts
|
|
31
31
|
var TB2809_WIRE_PARAMS = {
|
|
32
|
-
"
|
|
32
|
+
"CTMH-120": {
|
|
33
33
|
unitWeightKgPerKm: 1082,
|
|
34
34
|
r20OhmPerKm: 0.2113,
|
|
35
35
|
ampacityIndoor150A: 430,
|
|
36
36
|
ampacityOutdoor150A: 560,
|
|
37
37
|
note: "\u53D6\u6807\u51C6 CTMH \u884C\uFF08\u9AD8\u5F3A\u5EA6\u94DC\u9541\u5408\u91D1\uFF09\uFF0C\u03C1 \u6309\u6807\u51C6\u4E0A\u9650 0.02535 \u8BA1\u7B97"
|
|
38
38
|
},
|
|
39
|
-
"
|
|
39
|
+
"CTMH-150": {
|
|
40
40
|
unitWeightKgPerKm: 1350,
|
|
41
41
|
r20OhmPerKm: 0.169,
|
|
42
42
|
ampacityIndoor150A: 500,
|
|
43
43
|
ampacityOutdoor150A: 650,
|
|
44
44
|
note: "\u53D6\u6807\u51C6 CTMH \u884C\uFF08\u9AD8\u5F3A\u5EA6\u94DC\u9541\u5408\u91D1\uFF09"
|
|
45
45
|
},
|
|
46
|
-
"
|
|
46
|
+
"CTAH-120": {
|
|
47
47
|
unitWeightKgPerKm: 1070,
|
|
48
48
|
r20OhmPerKm: 0.1481,
|
|
49
49
|
ampacityIndoor150A: 515,
|
|
50
50
|
ampacityOutdoor150A: 680,
|
|
51
51
|
note: "\u53D6\u6807\u51C6 CTA \u884C\uFF08\u94DC\u94F6\u5408\u91D1\uFF09\uFF0C\u03C1 \u2264 0.01777"
|
|
52
52
|
},
|
|
53
|
-
"
|
|
53
|
+
"CTAH-150": {
|
|
54
54
|
unitWeightKgPerKm: 1330,
|
|
55
55
|
r20OhmPerKm: 0.1185,
|
|
56
56
|
ampacityIndoor150A: 620,
|
|
57
57
|
ampacityOutdoor150A: 785,
|
|
58
58
|
note: "\u53D6\u6807\u51C6 CTA \u884C\uFF08\u94DC\u94F6\u5408\u91D1\uFF09"
|
|
59
59
|
},
|
|
60
|
-
"
|
|
60
|
+
"CTS-120": {
|
|
61
61
|
unitWeightKgPerKm: 1080,
|
|
62
62
|
r20OhmPerKm: 0.1916,
|
|
63
63
|
ampacityIndoor150A: 515,
|
|
64
64
|
ampacityOutdoor150A: 680,
|
|
65
65
|
note: "\u53D6\u6807\u51C6 CTS \u884C\uFF08\u94DC\u9521\u5408\u91D1\uFF09\uFF0C\u8F7D\u6D41\u91CF\u6309 CTS \u884C\u53D6\u503C"
|
|
66
66
|
},
|
|
67
|
-
"
|
|
67
|
+
"CTS-150": {
|
|
68
68
|
unitWeightKgPerKm: 1345,
|
|
69
69
|
r20OhmPerKm: 0.1533,
|
|
70
70
|
ampacityIndoor150A: 620,
|
|
@@ -99,4 +99,4 @@ export {
|
|
|
99
99
|
TB2809_WIRE_PARAMS,
|
|
100
100
|
wireLookup
|
|
101
101
|
};
|
|
102
|
-
//# sourceMappingURL=chunk-
|
|
102
|
+
//# sourceMappingURL=chunk-IQR3SRCD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/copper/meta.ts","../src/copper/index.ts"],"sourcesContent":["import type { CalculatorMeta } from '../types';\n\nexport const copperMeta: CalculatorMeta = {\n name: '接触线参数速查',\n nameEn: 'Contact Wire Parameter Lookup',\n summary:\n '内置 CTMH / CTAH / CTS 系列 120/150 mm² 接触线参数表,按长度与环境温度给出总重量与温度修正电阻。',\n formula: [\n '电阻温度修正(α = 0.00393 /℃):r_T = r₂₀·[1 + α·(T − 20)]',\n '总重量:W = w₀ × l(w₀ 单位重量 kg/km,l 长度 km)',\n ],\n references: [\n '内置参数表来源 TB/T 2809-2017《电气化铁路用铜及铜合金接触线》(2018-05-01 实施)',\n '单位重量为标称值',\n '载流量为 150℃ 持续值,室内/室外双口径按标准表5',\n 'r₂₀ 除 CTMH-120 取给定值外,均按导电率反算估算(IACS 标准电阻率 0.017241 Ω·mm²/m ÷ 导电率 ÷ 截面积;0.017241 = 1/58)',\n '正式工程以产品标准与出厂检验单为准',\n ],\n scope: [\n '温度修正仅覆盖电阻,未修正单位重量与载流量',\n '适用温度 −40 ~ 90 ℃',\n '载流量为 150℃ 允许温度下的持续值,未做环境温度修正',\n ],\n disclaimer: '本工具结果仅供参考,工程应用以设计文件为准。详见 DISCLAIMER.md。',\n online: 'https://www.itswe.com/calculator/copper/',\n};\n","export { copperMeta } from './meta';\n\n// 电阻温度修正与铜常数统一放在 src/common/resistance.ts(copper 与 voltage-drop 共用),\n// 由根 index 统一导出,此处仅内部引用,避免重复导出同名符号。\nimport { resistanceAtTempOhmPerKm } from '../common/resistance';\n\n/** 站点计算器内置的 6 个型号 */\nexport type CopperWireModel =\n | 'CTMH-120'\n | 'CTMH-150'\n | 'CTAH-120'\n | 'CTAH-150'\n | 'CTS-120'\n | 'CTS-150';\n\nexport interface WireParamEntry {\n /** 单位重量,kg/km(标称值) */\n readonly unitWeightKgPerKm: number;\n /** 20℃ 直流电阻,Ω/km */\n readonly r20OhmPerKm: number;\n /** 150℃ 持续载流量,室内口径,A */\n readonly ampacityIndoor150A: number;\n /** 150℃ 持续载流量,室外口径,A */\n readonly ampacityOutdoor150A: number;\n /** 口径说明:本行实际对应标准中的哪一行 */\n readonly note: string;\n}\n\n/**\n * 接触线参数表,来源 TB/T 2809-2017。\n *\n * 载流量为 150℃ 持续值(室内/室外双口径,标准表5)。\n *\n * 已与站点 `/calculator/assets/calc-core.js` 中的 COPPER_TABLE 逐项比对,\n * 6 个型号 × 4 项参数完全一致。\n *\n * 注:站点曾因显示层 `fmt()` 的尾零剥离正则把载流量渲染成 43/56(应为 430/560),\n * 已于 R38 之后修复。若再遇渲染值与本表不符,先确认是否为显示层问题:\n * 本表与服务端数据源始终一致。\n *\n * ⚠️ 注意型号口径:CTMH / CTAH / CTS 是站点计算器的型号代码,与标准中的\n * CTMH / CTA / CTS 并非同名对应。`note` 字段说明各行实际取自标准的哪一行,\n * 交叉引用 TB/T 2809-2017 时请以 note 为准。\n */\nexport const TB2809_WIRE_PARAMS: Record<CopperWireModel, WireParamEntry> = {\n 'CTMH-120': {\n unitWeightKgPerKm: 1082,\n r20OhmPerKm: 0.2113,\n ampacityIndoor150A: 430,\n ampacityOutdoor150A: 560,\n note: '取标准 CTMH 行(高强度铜镁合金),ρ 按标准上限 0.02535 计算',\n },\n 'CTMH-150': {\n unitWeightKgPerKm: 1350,\n r20OhmPerKm: 0.169,\n ampacityIndoor150A: 500,\n ampacityOutdoor150A: 650,\n note: '取标准 CTMH 行(高强度铜镁合金)',\n },\n 'CTAH-120': {\n unitWeightKgPerKm: 1070,\n r20OhmPerKm: 0.1481,\n ampacityIndoor150A: 515,\n ampacityOutdoor150A: 680,\n note: '取标准 CTA 行(铜银合金),ρ ≤ 0.01777',\n },\n 'CTAH-150': {\n unitWeightKgPerKm: 1330,\n r20OhmPerKm: 0.1185,\n ampacityIndoor150A: 620,\n ampacityOutdoor150A: 785,\n note: '取标准 CTA 行(铜银合金)',\n },\n 'CTS-120': {\n unitWeightKgPerKm: 1080,\n r20OhmPerKm: 0.1916,\n ampacityIndoor150A: 515,\n ampacityOutdoor150A: 680,\n note: '取标准 CTS 行(铜锡合金),载流量按 CTS 行取值',\n },\n 'CTS-150': {\n unitWeightKgPerKm: 1345,\n r20OhmPerKm: 0.1533,\n ampacityIndoor150A: 620,\n ampacityOutdoor150A: 790,\n note: '取标准 CTS 行(铜锡合金),载流量按 CTS 行取值',\n },\n};\n\nexport interface CopperLookupInput {\n readonly model: CopperWireModel;\n /** 长度 l,km */\n readonly lengthKm: number;\n /** 环境温度 T,℃ */\n readonly ambientTempDegC: number;\n}\n\nexport interface CopperLookupResult extends WireParamEntry {\n readonly model: CopperWireModel;\n /** 总重量 W = w₀ × l,kg */\n readonly totalWeightKg: number;\n /** 温度修正电阻 r_T,Ω/km */\n readonly rTOhmPerKm: number;\n /** 全长温度修正电阻,Ω */\n readonly totalResistanceOhm: number;\n}\n\n/**\n * 按型号、长度与环境温度给出接触线参数速查结果。\n */\nexport function wireLookup(input: CopperLookupInput): CopperLookupResult {\n const { model, lengthKm, ambientTempDegC } = input;\n\n const params = TB2809_WIRE_PARAMS[model];\n if (params === undefined) {\n throw new RangeError(`未知型号:${model}`);\n }\n if (!(lengthKm > 0)) {\n throw new RangeError(`长度必须为正数,收到 ${lengthKm} km`);\n }\n if (ambientTempDegC < -40 || ambientTempDegC > 90) {\n throw new RangeError(`适用温度为 −40 ~ 90 ℃,收到 ${ambientTempDegC} ℃`);\n }\n\n const rT = resistanceAtTempOhmPerKm(params.r20OhmPerKm, ambientTempDegC);\n\n return {\n model,\n ...params,\n totalWeightKg: params.unitWeightKgPerKm * lengthKm,\n rTOhmPerKm: rT,\n totalResistanceOhm: rT * lengthKm,\n };\n}\n"],"mappings":";;;;;AAEO,IAAM,aAA6B;AAAA,EACxC,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SACE;AAAA,EACF,SAAS;AAAA,IACP;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,EACZ,QAAQ;AACV;;;ACmBO,IAAM,qBAA8D;AAAA,EACzE,YAAY;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AAAA,EACA,YAAY;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AAAA,EACA,YAAY;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AAAA,EACA,YAAY;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AAAA,EACA,WAAW;AAAA,IACT,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AAAA,EACA,WAAW;AAAA,IACT,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AACF;AAuBO,SAAS,WAAW,OAA8C;AACvE,QAAM,EAAE,OAAO,UAAU,gBAAgB,IAAI;AAE7C,QAAM,SAAS,mBAAmB,KAAK;AACvC,MAAI,WAAW,QAAW;AACxB,UAAM,IAAI,WAAW,iCAAQ,KAAK,EAAE;AAAA,EACtC;AACA,MAAI,EAAE,WAAW,IAAI;AACnB,UAAM,IAAI,WAAW,gEAAc,QAAQ,KAAK;AAAA,EAClD;AACA,MAAI,kBAAkB,OAAO,kBAAkB,IAAI;AACjD,UAAM,IAAI,WAAW,yEAAuB,eAAe,SAAI;AAAA,EACjE;AAEA,QAAM,KAAK,yBAAyB,OAAO,aAAa,eAAe;AAEvE,SAAO;AAAA,IACL;AAAA,IACA,GAAG;AAAA,IACH,eAAe,OAAO,oBAAoB;AAAA,IAC1C,YAAY;AAAA,IACZ,oBAAoB,KAAK;AAAA,EAC3B;AACF;","names":[]}
|
|
@@ -6,7 +6,7 @@ var _chunkDGO2DCO5cjs = require('./chunk-DGO2DCO5.cjs');
|
|
|
6
6
|
var copperMeta = {
|
|
7
7
|
name: "\u63A5\u89E6\u7EBF\u53C2\u6570\u901F\u67E5",
|
|
8
8
|
nameEn: "Contact Wire Parameter Lookup",
|
|
9
|
-
summary: "\u5185\u7F6E
|
|
9
|
+
summary: "\u5185\u7F6E CTMH / CTAH / CTS \u7CFB\u5217 120/150 mm\xB2 \u63A5\u89E6\u7EBF\u53C2\u6570\u8868\uFF0C\u6309\u957F\u5EA6\u4E0E\u73AF\u5883\u6E29\u5EA6\u7ED9\u51FA\u603B\u91CD\u91CF\u4E0E\u6E29\u5EA6\u4FEE\u6B63\u7535\u963B\u3002",
|
|
10
10
|
formula: [
|
|
11
11
|
"\u7535\u963B\u6E29\u5EA6\u4FEE\u6B63\uFF08\u03B1 = 0.00393 /\u2103\uFF09\uFF1Ar_T = r\u2082\u2080\xB7[1 + \u03B1\xB7(T \u2212 20)]",
|
|
12
12
|
"\u603B\u91CD\u91CF\uFF1AW = w\u2080 \xD7 l\uFF08w\u2080 \u5355\u4F4D\u91CD\u91CF kg/km\uFF0Cl \u957F\u5EA6 km\uFF09"
|
|
@@ -15,7 +15,7 @@ var copperMeta = {
|
|
|
15
15
|
"\u5185\u7F6E\u53C2\u6570\u8868\u6765\u6E90 TB/T 2809-2017\u300A\u7535\u6C14\u5316\u94C1\u8DEF\u7528\u94DC\u53CA\u94DC\u5408\u91D1\u63A5\u89E6\u7EBF\u300B\uFF082018-05-01 \u5B9E\u65BD\uFF09",
|
|
16
16
|
"\u5355\u4F4D\u91CD\u91CF\u4E3A\u6807\u79F0\u503C",
|
|
17
17
|
"\u8F7D\u6D41\u91CF\u4E3A 150\u2103 \u6301\u7EED\u503C\uFF0C\u5BA4\u5185/\u5BA4\u5916\u53CC\u53E3\u5F84\u6309\u6807\u51C6\u88685",
|
|
18
|
-
"r\u2082\u2080 \u9664
|
|
18
|
+
"r\u2082\u2080 \u9664 CTMH-120 \u53D6\u7ED9\u5B9A\u503C\u5916\uFF0C\u5747\u6309\u5BFC\u7535\u7387\u53CD\u7B97\u4F30\u7B97\uFF08IACS \u6807\u51C6\u7535\u963B\u7387 0.017241 \u03A9\xB7mm\xB2/m \xF7 \u5BFC\u7535\u7387 \xF7 \u622A\u9762\u79EF\uFF1B0.017241 = 1/58\uFF09",
|
|
19
19
|
"\u6B63\u5F0F\u5DE5\u7A0B\u4EE5\u4EA7\u54C1\u6807\u51C6\u4E0E\u51FA\u5382\u68C0\u9A8C\u5355\u4E3A\u51C6"
|
|
20
20
|
],
|
|
21
21
|
scope: [
|
|
@@ -29,42 +29,42 @@ var copperMeta = {
|
|
|
29
29
|
|
|
30
30
|
// src/copper/index.ts
|
|
31
31
|
var TB2809_WIRE_PARAMS = {
|
|
32
|
-
"
|
|
32
|
+
"CTMH-120": {
|
|
33
33
|
unitWeightKgPerKm: 1082,
|
|
34
34
|
r20OhmPerKm: 0.2113,
|
|
35
35
|
ampacityIndoor150A: 430,
|
|
36
36
|
ampacityOutdoor150A: 560,
|
|
37
37
|
note: "\u53D6\u6807\u51C6 CTMH \u884C\uFF08\u9AD8\u5F3A\u5EA6\u94DC\u9541\u5408\u91D1\uFF09\uFF0C\u03C1 \u6309\u6807\u51C6\u4E0A\u9650 0.02535 \u8BA1\u7B97"
|
|
38
38
|
},
|
|
39
|
-
"
|
|
39
|
+
"CTMH-150": {
|
|
40
40
|
unitWeightKgPerKm: 1350,
|
|
41
41
|
r20OhmPerKm: 0.169,
|
|
42
42
|
ampacityIndoor150A: 500,
|
|
43
43
|
ampacityOutdoor150A: 650,
|
|
44
44
|
note: "\u53D6\u6807\u51C6 CTMH \u884C\uFF08\u9AD8\u5F3A\u5EA6\u94DC\u9541\u5408\u91D1\uFF09"
|
|
45
45
|
},
|
|
46
|
-
"
|
|
46
|
+
"CTAH-120": {
|
|
47
47
|
unitWeightKgPerKm: 1070,
|
|
48
48
|
r20OhmPerKm: 0.1481,
|
|
49
49
|
ampacityIndoor150A: 515,
|
|
50
50
|
ampacityOutdoor150A: 680,
|
|
51
51
|
note: "\u53D6\u6807\u51C6 CTA \u884C\uFF08\u94DC\u94F6\u5408\u91D1\uFF09\uFF0C\u03C1 \u2264 0.01777"
|
|
52
52
|
},
|
|
53
|
-
"
|
|
53
|
+
"CTAH-150": {
|
|
54
54
|
unitWeightKgPerKm: 1330,
|
|
55
55
|
r20OhmPerKm: 0.1185,
|
|
56
56
|
ampacityIndoor150A: 620,
|
|
57
57
|
ampacityOutdoor150A: 785,
|
|
58
58
|
note: "\u53D6\u6807\u51C6 CTA \u884C\uFF08\u94DC\u94F6\u5408\u91D1\uFF09"
|
|
59
59
|
},
|
|
60
|
-
"
|
|
60
|
+
"CTS-120": {
|
|
61
61
|
unitWeightKgPerKm: 1080,
|
|
62
62
|
r20OhmPerKm: 0.1916,
|
|
63
63
|
ampacityIndoor150A: 515,
|
|
64
64
|
ampacityOutdoor150A: 680,
|
|
65
65
|
note: "\u53D6\u6807\u51C6 CTS \u884C\uFF08\u94DC\u9521\u5408\u91D1\uFF09\uFF0C\u8F7D\u6D41\u91CF\u6309 CTS \u884C\u53D6\u503C"
|
|
66
66
|
},
|
|
67
|
-
"
|
|
67
|
+
"CTS-150": {
|
|
68
68
|
unitWeightKgPerKm: 1345,
|
|
69
69
|
r20OhmPerKm: 0.1533,
|
|
70
70
|
ampacityIndoor150A: 620,
|
|
@@ -99,4 +99,4 @@ function wireLookup(input) {
|
|
|
99
99
|
|
|
100
100
|
|
|
101
101
|
exports.copperMeta = copperMeta; exports.TB2809_WIRE_PARAMS = TB2809_WIRE_PARAMS; exports.wireLookup = wireLookup;
|
|
102
|
-
//# sourceMappingURL=chunk-
|
|
102
|
+
//# sourceMappingURL=chunk-MTAYG3U2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/chunk-MTAYG3U2.cjs","../src/copper/meta.ts","../src/copper/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACFO,IAAM,WAAA,EAA6B;AAAA,EACxC,IAAA,EAAM,4CAAA;AAAA,EACN,MAAA,EAAQ,+BAAA;AAAA,EACR,OAAA,EACE,qOAAA;AAAA,EACF,OAAA,EAAS;AAAA,IACP,oIAAA;AAAA,IACA;AAAA,EACF,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,8LAAA;AAAA,IACA,kDAAA;AAAA,IACA,iIAAA;AAAA,IACA,0QAAA;AAAA,IACA;AAAA,EACF,CAAA;AAAA,EACA,KAAA,EAAO;AAAA,IACL,gIAAA;AAAA,IACA,+CAAA;AAAA,IACA;AAAA,EACF,CAAA;AAAA,EACA,UAAA,EAAY,sKAAA;AAAA,EACZ,MAAA,EAAQ;AACV,CAAA;ADGA;AACA;AEeO,IAAM,mBAAA,EAA8D;AAAA,EACzE,UAAA,EAAY;AAAA,IACV,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,MAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,KAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,MAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,MAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA,SAAA,EAAW;AAAA,IACT,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,MAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA,SAAA,EAAW;AAAA,IACT,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,MAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR;AACF,CAAA;AAuBO,SAAS,UAAA,CAAW,KAAA,EAA8C;AACvE,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,gBAAgB,EAAA,EAAI,KAAA;AAE7C,EAAA,MAAM,OAAA,EAAS,kBAAA,CAAmB,KAAK,CAAA;AACvC,EAAA,GAAA,CAAI,OAAA,IAAW,KAAA,CAAA,EAAW;AACxB,IAAA,MAAM,IAAI,UAAA,CAAW,CAAA,8BAAA,EAAQ,KAAK,CAAA,CAAA;AACpC,EAAA;AACqB,EAAA;AACE,IAAA;AACvB,EAAA;AACmD,EAAA;AAC5B,IAAA;AACvB,EAAA;AAEwD,EAAA;AAEjD,EAAA;AACL,IAAA;AACG,IAAA;AACuC,IAAA;AAC9B,IAAA;AACa,IAAA;AAC3B,EAAA;AACF;AFtCgE;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/chunk-MTAYG3U2.cjs","sourcesContent":[null,"import type { CalculatorMeta } from '../types';\n\nexport const copperMeta: CalculatorMeta = {\n name: '接触线参数速查',\n nameEn: 'Contact Wire Parameter Lookup',\n summary:\n '内置 CTMH / CTAH / CTS 系列 120/150 mm² 接触线参数表,按长度与环境温度给出总重量与温度修正电阻。',\n formula: [\n '电阻温度修正(α = 0.00393 /℃):r_T = r₂₀·[1 + α·(T − 20)]',\n '总重量:W = w₀ × l(w₀ 单位重量 kg/km,l 长度 km)',\n ],\n references: [\n '内置参数表来源 TB/T 2809-2017《电气化铁路用铜及铜合金接触线》(2018-05-01 实施)',\n '单位重量为标称值',\n '载流量为 150℃ 持续值,室内/室外双口径按标准表5',\n 'r₂₀ 除 CTMH-120 取给定值外,均按导电率反算估算(IACS 标准电阻率 0.017241 Ω·mm²/m ÷ 导电率 ÷ 截面积;0.017241 = 1/58)',\n '正式工程以产品标准与出厂检验单为准',\n ],\n scope: [\n '温度修正仅覆盖电阻,未修正单位重量与载流量',\n '适用温度 −40 ~ 90 ℃',\n '载流量为 150℃ 允许温度下的持续值,未做环境温度修正',\n ],\n disclaimer: '本工具结果仅供参考,工程应用以设计文件为准。详见 DISCLAIMER.md。',\n online: 'https://www.itswe.com/calculator/copper/',\n};\n","export { copperMeta } from './meta';\n\n// 电阻温度修正与铜常数统一放在 src/common/resistance.ts(copper 与 voltage-drop 共用),\n// 由根 index 统一导出,此处仅内部引用,避免重复导出同名符号。\nimport { resistanceAtTempOhmPerKm } from '../common/resistance';\n\n/** 站点计算器内置的 6 个型号 */\nexport type CopperWireModel =\n | 'CTMH-120'\n | 'CTMH-150'\n | 'CTAH-120'\n | 'CTAH-150'\n | 'CTS-120'\n | 'CTS-150';\n\nexport interface WireParamEntry {\n /** 单位重量,kg/km(标称值) */\n readonly unitWeightKgPerKm: number;\n /** 20℃ 直流电阻,Ω/km */\n readonly r20OhmPerKm: number;\n /** 150℃ 持续载流量,室内口径,A */\n readonly ampacityIndoor150A: number;\n /** 150℃ 持续载流量,室外口径,A */\n readonly ampacityOutdoor150A: number;\n /** 口径说明:本行实际对应标准中的哪一行 */\n readonly note: string;\n}\n\n/**\n * 接触线参数表,来源 TB/T 2809-2017。\n *\n * 载流量为 150℃ 持续值(室内/室外双口径,标准表5)。\n *\n * 已与站点 `/calculator/assets/calc-core.js` 中的 COPPER_TABLE 逐项比对,\n * 6 个型号 × 4 项参数完全一致。\n *\n * 注:站点曾因显示层 `fmt()` 的尾零剥离正则把载流量渲染成 43/56(应为 430/560),\n * 已于 R38 之后修复。若再遇渲染值与本表不符,先确认是否为显示层问题:\n * 本表与服务端数据源始终一致。\n *\n * ⚠️ 注意型号口径:CTMH / CTAH / CTS 是站点计算器的型号代码,与标准中的\n * CTMH / CTA / CTS 并非同名对应。`note` 字段说明各行实际取自标准的哪一行,\n * 交叉引用 TB/T 2809-2017 时请以 note 为准。\n */\nexport const TB2809_WIRE_PARAMS: Record<CopperWireModel, WireParamEntry> = {\n 'CTMH-120': {\n unitWeightKgPerKm: 1082,\n r20OhmPerKm: 0.2113,\n ampacityIndoor150A: 430,\n ampacityOutdoor150A: 560,\n note: '取标准 CTMH 行(高强度铜镁合金),ρ 按标准上限 0.02535 计算',\n },\n 'CTMH-150': {\n unitWeightKgPerKm: 1350,\n r20OhmPerKm: 0.169,\n ampacityIndoor150A: 500,\n ampacityOutdoor150A: 650,\n note: '取标准 CTMH 行(高强度铜镁合金)',\n },\n 'CTAH-120': {\n unitWeightKgPerKm: 1070,\n r20OhmPerKm: 0.1481,\n ampacityIndoor150A: 515,\n ampacityOutdoor150A: 680,\n note: '取标准 CTA 行(铜银合金),ρ ≤ 0.01777',\n },\n 'CTAH-150': {\n unitWeightKgPerKm: 1330,\n r20OhmPerKm: 0.1185,\n ampacityIndoor150A: 620,\n ampacityOutdoor150A: 785,\n note: '取标准 CTA 行(铜银合金)',\n },\n 'CTS-120': {\n unitWeightKgPerKm: 1080,\n r20OhmPerKm: 0.1916,\n ampacityIndoor150A: 515,\n ampacityOutdoor150A: 680,\n note: '取标准 CTS 行(铜锡合金),载流量按 CTS 行取值',\n },\n 'CTS-150': {\n unitWeightKgPerKm: 1345,\n r20OhmPerKm: 0.1533,\n ampacityIndoor150A: 620,\n ampacityOutdoor150A: 790,\n note: '取标准 CTS 行(铜锡合金),载流量按 CTS 行取值',\n },\n};\n\nexport interface CopperLookupInput {\n readonly model: CopperWireModel;\n /** 长度 l,km */\n readonly lengthKm: number;\n /** 环境温度 T,℃ */\n readonly ambientTempDegC: number;\n}\n\nexport interface CopperLookupResult extends WireParamEntry {\n readonly model: CopperWireModel;\n /** 总重量 W = w₀ × l,kg */\n readonly totalWeightKg: number;\n /** 温度修正电阻 r_T,Ω/km */\n readonly rTOhmPerKm: number;\n /** 全长温度修正电阻,Ω */\n readonly totalResistanceOhm: number;\n}\n\n/**\n * 按型号、长度与环境温度给出接触线参数速查结果。\n */\nexport function wireLookup(input: CopperLookupInput): CopperLookupResult {\n const { model, lengthKm, ambientTempDegC } = input;\n\n const params = TB2809_WIRE_PARAMS[model];\n if (params === undefined) {\n throw new RangeError(`未知型号:${model}`);\n }\n if (!(lengthKm > 0)) {\n throw new RangeError(`长度必须为正数,收到 ${lengthKm} km`);\n }\n if (ambientTempDegC < -40 || ambientTempDegC > 90) {\n throw new RangeError(`适用温度为 −40 ~ 90 ℃,收到 ${ambientTempDegC} ℃`);\n }\n\n const rT = resistanceAtTempOhmPerKm(params.r20OhmPerKm, ambientTempDegC);\n\n return {\n model,\n ...params,\n totalWeightKg: params.unitWeightKgPerKm * lengthKm,\n rTOhmPerKm: rT,\n totalResistanceOhm: rT * lengthKm,\n };\n}\n"]}
|
package/dist/copper/index.cjs
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkMTAYG3U2cjs = require('../chunk-MTAYG3U2.cjs');
|
|
6
6
|
require('../chunk-DGO2DCO5.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
exports.TB2809_WIRE_PARAMS =
|
|
11
|
+
exports.TB2809_WIRE_PARAMS = _chunkMTAYG3U2cjs.TB2809_WIRE_PARAMS; exports.copperMeta = _chunkMTAYG3U2cjs.copperMeta; exports.wireLookup = _chunkMTAYG3U2cjs.wireLookup;
|
|
12
12
|
//# sourceMappingURL=index.cjs.map
|
package/dist/copper/index.d.cts
CHANGED
|
@@ -3,7 +3,7 @@ import { C as CalculatorMeta } from '../types-C2OanO8N.cjs';
|
|
|
3
3
|
declare const copperMeta: CalculatorMeta;
|
|
4
4
|
|
|
5
5
|
/** 站点计算器内置的 6 个型号 */
|
|
6
|
-
type CopperWireModel = '
|
|
6
|
+
type CopperWireModel = 'CTMH-120' | 'CTMH-150' | 'CTAH-120' | 'CTAH-150' | 'CTS-120' | 'CTS-150';
|
|
7
7
|
interface WireParamEntry {
|
|
8
8
|
/** 单位重量,kg/km(标称值) */
|
|
9
9
|
readonly unitWeightKgPerKm: number;
|
|
@@ -28,7 +28,7 @@ interface WireParamEntry {
|
|
|
28
28
|
* 已于 R38 之后修复。若再遇渲染值与本表不符,先确认是否为显示层问题:
|
|
29
29
|
* 本表与服务端数据源始终一致。
|
|
30
30
|
*
|
|
31
|
-
* ⚠️ 注意型号口径:
|
|
31
|
+
* ⚠️ 注意型号口径:CTMH / CTAH / CTS 是站点计算器的型号代码,与标准中的
|
|
32
32
|
* CTMH / CTA / CTS 并非同名对应。`note` 字段说明各行实际取自标准的哪一行,
|
|
33
33
|
* 交叉引用 TB/T 2809-2017 时请以 note 为准。
|
|
34
34
|
*/
|
package/dist/copper/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { C as CalculatorMeta } from '../types-C2OanO8N.js';
|
|
|
3
3
|
declare const copperMeta: CalculatorMeta;
|
|
4
4
|
|
|
5
5
|
/** 站点计算器内置的 6 个型号 */
|
|
6
|
-
type CopperWireModel = '
|
|
6
|
+
type CopperWireModel = 'CTMH-120' | 'CTMH-150' | 'CTAH-120' | 'CTAH-150' | 'CTS-120' | 'CTS-150';
|
|
7
7
|
interface WireParamEntry {
|
|
8
8
|
/** 单位重量,kg/km(标称值) */
|
|
9
9
|
readonly unitWeightKgPerKm: number;
|
|
@@ -28,7 +28,7 @@ interface WireParamEntry {
|
|
|
28
28
|
* 已于 R38 之后修复。若再遇渲染值与本表不符,先确认是否为显示层问题:
|
|
29
29
|
* 本表与服务端数据源始终一致。
|
|
30
30
|
*
|
|
31
|
-
* ⚠️ 注意型号口径:
|
|
31
|
+
* ⚠️ 注意型号口径:CTMH / CTAH / CTS 是站点计算器的型号代码,与标准中的
|
|
32
32
|
* CTMH / CTA / CTS 并非同名对应。`note` 字段说明各行实际取自标准的哪一行,
|
|
33
33
|
* 交叉引用 TB/T 2809-2017 时请以 note 为准。
|
|
34
34
|
*/
|
package/dist/copper/index.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -45,7 +45,7 @@ var _chunkNBFOB2PIcjs = require('./chunk-NBFOB2PI.cjs');
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
var
|
|
48
|
+
var _chunkMTAYG3U2cjs = require('./chunk-MTAYG3U2.cjs');
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
|
|
@@ -108,8 +108,8 @@ var COPPER_ALLOY_ALPHA_PER_DEG_C = 17e-6;
|
|
|
108
108
|
var WIRE_PRESETS = [
|
|
109
109
|
{
|
|
110
110
|
id: "cthm120",
|
|
111
|
-
name: "
|
|
112
|
-
nameEn: "
|
|
111
|
+
name: "CTMH-120\uFF08\u94DC\u9541 120\uFF09",
|
|
112
|
+
nameEn: "CTMH-120 (CuMg 120 mm\xB2)",
|
|
113
113
|
crossSectionMM2: 120,
|
|
114
114
|
calculatedSectionMM2: 121,
|
|
115
115
|
elasticModulusGPa: 120,
|
|
@@ -118,8 +118,8 @@ var WIRE_PRESETS = [
|
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
id: "cthm150",
|
|
121
|
-
name: "
|
|
122
|
-
nameEn: "
|
|
121
|
+
name: "CTMH-150\uFF08\u94DC\u9541 150\uFF09",
|
|
122
|
+
nameEn: "CTMH-150 (CuMg 150 mm\xB2)",
|
|
123
123
|
crossSectionMM2: 150,
|
|
124
124
|
calculatedSectionMM2: 151,
|
|
125
125
|
elasticModulusGPa: 120,
|
|
@@ -128,8 +128,8 @@ var WIRE_PRESETS = [
|
|
|
128
128
|
},
|
|
129
129
|
{
|
|
130
130
|
id: "ctha120",
|
|
131
|
-
name: "
|
|
132
|
-
nameEn: "
|
|
131
|
+
name: "CTAH-120\uFF08\u94DC\u94F6 120\uFF09",
|
|
132
|
+
nameEn: "CTAH-120 (CuAg 120 mm\xB2)",
|
|
133
133
|
crossSectionMM2: 120,
|
|
134
134
|
calculatedSectionMM2: 121,
|
|
135
135
|
elasticModulusGPa: 120,
|
|
@@ -265,5 +265,5 @@ function findAmpacityA(params) {
|
|
|
265
265
|
|
|
266
266
|
|
|
267
267
|
|
|
268
|
-
exports.AIR_DENSITY_KG_PER_M3 = _chunkFVESJBUDcjs.AIR_DENSITY_KG_PER_M3; exports.CONVENTIONAL_MARGIN_MM = _chunk5Q6IASB2cjs.CONVENTIONAL_MARGIN_MM; exports.COPPER_ALLOY_ALPHA_PER_DEG_C = COPPER_ALLOY_ALPHA_PER_DEG_C; exports.COPPER_ALPHA_PER_DEG_C = _chunkDGO2DCO5cjs.COPPER_ALPHA_PER_DEG_C; exports.DEFAULT_BASE_AMBIENT_TEMP_DEG_C = _chunkNBFOB2PIcjs.DEFAULT_BASE_AMBIENT_TEMP_DEG_C; exports.DEFAULT_ICE_DENSITY_KG_PER_M3 = _chunkP6KUGPHDcjs.DEFAULT_ICE_DENSITY_KG_PER_M3; exports.DEFAULT_MIN_END_VOLTAGE_V = _chunkRVP3IU2Lcjs.DEFAULT_MIN_END_VOLTAGE_V; exports.DEFAULT_PANTOGRAPH_HEIGHT_M = _chunk4UU7WA7Ncjs.DEFAULT_PANTOGRAPH_HEIGHT_M; exports.DEFAULT_REPLACEMENT_THRESHOLD_PERCENT = _chunk5INEDXRYcjs.DEFAULT_REPLACEMENT_THRESHOLD_PERCENT; exports.DEFAULT_WARN_THRESHOLD = _chunkNBHEOJ5Acjs.DEFAULT_WARN_THRESHOLD; exports.G0 = _chunkP6KUGPHDcjs.G0; exports.IACS_RESISTIVITY_OHM_MM2_PER_M = _chunkDGO2DCO5cjs.IACS_RESISTIVITY_OHM_MM2_PER_M; exports.MIN_MARGIN_MM = _chunk5Q6IASB2cjs.MIN_MARGIN_MM; exports.REFERENCE_DENSITY_G_PER_CM3 = REFERENCE_DENSITY_G_PER_CM3; exports.REF_TARGET_COEFF = _chunkRPKDEFSJcjs.REF_TARGET_COEFF; exports.REF_TARGET_OFFSET_N = _chunkRPKDEFSJcjs.REF_TARGET_OFFSET_N; exports.STANDARD_GAUGE_M = _chunk4UU7WA7Ncjs.STANDARD_GAUGE_M; exports.STANDARD_UNIT_WEIGHT_KG_PER_KM = STANDARD_UNIT_WEIGHT_KG_PER_KM; exports.TB2809_AMPACITY_A = TB2809_AMPACITY_A; exports.TB2809_WIRE_PARAMS =
|
|
268
|
+
exports.AIR_DENSITY_KG_PER_M3 = _chunkFVESJBUDcjs.AIR_DENSITY_KG_PER_M3; exports.CONVENTIONAL_MARGIN_MM = _chunk5Q6IASB2cjs.CONVENTIONAL_MARGIN_MM; exports.COPPER_ALLOY_ALPHA_PER_DEG_C = COPPER_ALLOY_ALPHA_PER_DEG_C; exports.COPPER_ALPHA_PER_DEG_C = _chunkDGO2DCO5cjs.COPPER_ALPHA_PER_DEG_C; exports.DEFAULT_BASE_AMBIENT_TEMP_DEG_C = _chunkNBFOB2PIcjs.DEFAULT_BASE_AMBIENT_TEMP_DEG_C; exports.DEFAULT_ICE_DENSITY_KG_PER_M3 = _chunkP6KUGPHDcjs.DEFAULT_ICE_DENSITY_KG_PER_M3; exports.DEFAULT_MIN_END_VOLTAGE_V = _chunkRVP3IU2Lcjs.DEFAULT_MIN_END_VOLTAGE_V; exports.DEFAULT_PANTOGRAPH_HEIGHT_M = _chunk4UU7WA7Ncjs.DEFAULT_PANTOGRAPH_HEIGHT_M; exports.DEFAULT_REPLACEMENT_THRESHOLD_PERCENT = _chunk5INEDXRYcjs.DEFAULT_REPLACEMENT_THRESHOLD_PERCENT; exports.DEFAULT_WARN_THRESHOLD = _chunkNBHEOJ5Acjs.DEFAULT_WARN_THRESHOLD; exports.G0 = _chunkP6KUGPHDcjs.G0; exports.IACS_RESISTIVITY_OHM_MM2_PER_M = _chunkDGO2DCO5cjs.IACS_RESISTIVITY_OHM_MM2_PER_M; exports.MIN_MARGIN_MM = _chunk5Q6IASB2cjs.MIN_MARGIN_MM; exports.REFERENCE_DENSITY_G_PER_CM3 = REFERENCE_DENSITY_G_PER_CM3; exports.REF_TARGET_COEFF = _chunkRPKDEFSJcjs.REF_TARGET_COEFF; exports.REF_TARGET_OFFSET_N = _chunkRPKDEFSJcjs.REF_TARGET_OFFSET_N; exports.STANDARD_GAUGE_M = _chunk4UU7WA7Ncjs.STANDARD_GAUGE_M; exports.STANDARD_UNIT_WEIGHT_KG_PER_KM = STANDARD_UNIT_WEIGHT_KG_PER_KM; exports.TB2809_AMPACITY_A = TB2809_AMPACITY_A; exports.TB2809_WIRE_PARAMS = _chunkMTAYG3U2cjs.TB2809_WIRE_PARAMS; exports.TRANSMISSION_RATIOS = _chunk5Q6IASB2cjs.TRANSMISSION_RATIOS; exports.WIRE_PRESETS = WIRE_PRESETS; exports.ampacityDeratingFactor = _chunkNBFOB2PIcjs.ampacityDeratingFactor; exports.ampacityMeta = _chunkNBFOB2PIcjs.ampacityMeta; exports.assessContactForce = _chunkRPKDEFSJcjs.assessContactForce; exports.cantShiftM = _chunk4UU7WA7Ncjs.cantShiftM; exports.copperMeta = _chunkMTAYG3U2cjs.copperMeta; exports.curveStaggerCheck = _chunk4UU7WA7Ncjs.curveStaggerCheck; exports.curveStaggerMeta = _chunk4UU7WA7Ncjs.curveStaggerMeta; exports.deratedAmpacityA = _chunkNBFOB2PIcjs.deratedAmpacityA; exports.deriveLinearMassKgPerM = deriveLinearMassKgPerM; exports.dropperLengths = _chunkJ2UXRMTUcjs.dropperLengths; exports.dropperMeta = _chunkJ2UXRMTUcjs.dropperMeta; exports.dropperPositionsM = _chunkJ2UXRMTUcjs.dropperPositionsM; exports.elongationMM = _chunk5Q6IASB2cjs.elongationMM; exports.equivalentSpanM = _chunk3ERFRRHZcjs.equivalentSpanM; exports.findAmpacityA = findAmpacityA; exports.findWirePreset = findWirePreset; exports.forceMeta = _chunkRPKDEFSJcjs.forceMeta; exports.iceLoadNPerM = _chunkP6KUGPHDcjs.iceLoadNPerM; exports.icingCheck = _chunkP6KUGPHDcjs.icingCheck; exports.icingMeta = _chunkP6KUGPHDcjs.icingMeta; exports.kmHToMPerS = _chunkNBHEOJ5Acjs.kmHToMPerS; exports.maxParabolaSagM = _chunkJ2UXRMTUcjs.maxParabolaSagM; exports.naturalFrequencyHz = _chunkNBHEOJ5Acjs.naturalFrequencyHz; exports.parabolaSagM = _chunkJ2UXRMTUcjs.parabolaSagM; exports.referenceTargetForceN = _chunkRPKDEFSJcjs.referenceTargetForceN; exports.requiredStrokeMM = _chunk5Q6IASB2cjs.requiredStrokeMM; exports.resistanceAtTempOhmPerKm = _chunkDGO2DCO5cjs.resistanceAtTempOhmPerKm; exports.sagM = _chunk3ERFRRHZcjs.sagM; exports.sectionFromDiameterMM2 = _chunk5INEDXRYcjs.sectionFromDiameterMM2; exports.shortCircuitCheck = _chunkNBFOB2PIcjs.shortCircuitCheck; exports.shortCircuitMinSectionMM2 = _chunkNBFOB2PIcjs.shortCircuitMinSectionMM2; exports.solveTensionN = _chunk3ERFRRHZcjs.solveTensionN; exports.stateCoefficientK = _chunk3ERFRRHZcjs.stateCoefficientK; exports.statisticalForcesN = _chunkRPKDEFSJcjs.statisticalForcesN; exports.strokeCheck = _chunk5Q6IASB2cjs.strokeCheck; exports.strokeMeta = _chunk5Q6IASB2cjs.strokeMeta; exports.tensionAt = _chunk3ERFRRHZcjs.tensionAt; exports.tensionCurve = _chunk3ERFRRHZcjs.tensionCurve; exports.tensionMeta = _chunk3ERFRRHZcjs.tensionMeta; exports.unitWeightToKgPerM = unitWeightToKgPerM; exports.versineM = _chunk4UU7WA7Ncjs.versineM; exports.voltageDropCheck = _chunkRVP3IU2Lcjs.voltageDropCheck; exports.voltageDropMeta = _chunkRVP3IU2Lcjs.voltageDropMeta; exports.wavePropagationSpeedMPerS = _chunkNBHEOJ5Acjs.wavePropagationSpeedMPerS; exports.waveSpeedCheck = _chunkNBHEOJ5Acjs.waveSpeedCheck; exports.wavespeedMeta = _chunkNBHEOJ5Acjs.wavespeedMeta; exports.wearMeta = _chunk5INEDXRYcjs.wearMeta; exports.wearRatio = _chunk5INEDXRYcjs.wearRatio; exports.weightOfPresetNPerM = weightOfPresetNPerM; exports.weightPerLengthNPerM = weightPerLengthNPerM; exports.windClearanceCheck = _chunkFVESJBUDcjs.windClearanceCheck; exports.windDeflectionM = _chunkFVESJBUDcjs.windDeflectionM; exports.windLoadNPerM = _chunkFVESJBUDcjs.windLoadNPerM; exports.windMeta = _chunkFVESJBUDcjs.windMeta; exports.wireLookup = _chunkMTAYG3U2cjs.wireLookup;
|
|
269
269
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/index.cjs","../src/data/wire-specs.ts","../src/data/tb2809-ampacity.ts"],"names":[],"mappings":"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","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/index.cjs","sourcesContent":[null,"import { G0 } from '../types';\n\n/**\n * 接触线线材参数预设。\n *\n * ⚠️ 全部为标称参考值,实际取值以产品技术条件与设计文件为准。\n * ⚠️ 本站计算器的参数界面支持手工覆盖这些值 —— 那才是工程上正确的用法。\n *\n * 自重口径(2026-08-31 已确定):\n * 线密度取标准「参考单位质量」表值,而非由标称截面推算。标准表分两列:\n * 型号|标称截面|计算截面|参考单位质量\n * CT 120|120|121|1082 kg/km\n * 注:参考单位质量按密度 8.94 g/cm³ 计算\n * 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,\n * 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。\n * 因此 CTHM-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,\n * 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。\n * 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。\n *\n * 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;\n * CTHM/CTHA 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。\n */\n\nexport interface WireSpec {\n /** 唯一标识 */\n readonly id: WirePresetId;\n /** 中文名 */\n readonly name: string;\n /** 英文名 */\n readonly nameEn: string;\n /** 标称截面积 A,mm² */\n readonly crossSectionMM2: number;\n /** 计算截面积,mm²(标准表列,自重按此值 × 8.94 g/cm³ 计) */\n readonly calculatedSectionMM2: number;\n /** 弹性模量 E,GPa(标称参考值) */\n readonly elasticModulusGPa: number;\n /** 线膨胀系数 α,1/℃(标称参考值) */\n readonly expansionPerDegC: number;\n /** 线密度,kg/m(标准参考单位质量) */\n readonly linearMassKgPerM: number;\n}\n\n/** 参考密度,g/cm³(标准注:参考单位质量按此密度计) */\nexport const REFERENCE_DENSITY_G_PER_CM3 = 8.94;\n\n/** 线材预设 id */\nexport type WirePresetId = 'cthm120' | 'cthm150' | 'ctha120';\n\n/**\n * 标准「参考单位质量」表,kg/km。\n * 与 `src/copper/index.ts` 的 TB2809_WIRE_PARAMS.unitWeightKgPerKm 同源\n * (站点 /calculator/assets/calc-core.js 的 COPPER_TABLE)。\n */\nexport const STANDARD_UNIT_WEIGHT_KG_PER_KM: Readonly<Record<WirePresetId, number>> = {\n cthm120: 1082,\n cthm150: 1350,\n ctha120: 1070,\n};\n\n/** 由标准参考单位质量换算线密度,kg/m */\nexport function unitWeightToKgPerM(kgPerKm: number): number {\n return kgPerKm / 1000;\n}\n\n/**\n * 由截面积与密度反算线密度。\n *\n * ⚠️ 传入的必须是「计算截面」而非「标称截面」,否则结果偏低约 0.85%。\n * 120 mm² 标称对应计算截面 121 mm²;150 mm² 标称对应 151 mm²。\n *\n * @param crossSectionMM2 计算截面积,mm²\n * @param densityGPerCm3 密度,g/cm³\n * @returns 线密度,kg/m\n */\nexport function deriveLinearMassKgPerM(\n crossSectionMM2: number,\n densityGPerCm3: number = REFERENCE_DENSITY_G_PER_CM3,\n): number {\n // A[mm²] × 1e-6 [m²/mm²] × ρ[g/cm³] × 1000 [kg/m³ per g/cm³]\n return crossSectionMM2 * 1e-6 * densityGPerCm3 * 1000;\n}\n\n/** 铜及铜合金接触线的常用线膨胀系数,1/℃ */\nexport const COPPER_ALLOY_ALPHA_PER_DEG_C = 1.7e-5;\n\nexport const WIRE_PRESETS: readonly WireSpec[] = [\n {\n id: 'cthm120',\n name: 'CTHM-120(铜镁 120)',\n nameEn: 'CTHM-120 (CuMg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm120),\n },\n {\n id: 'cthm150',\n name: 'CTHM-150(铜镁 150)',\n nameEn: 'CTHM-150 (CuMg 150 mm²)',\n crossSectionMM2: 150,\n calculatedSectionMM2: 151,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm150),\n },\n {\n id: 'ctha120',\n name: 'CTHA-120(铜银 120)',\n nameEn: 'CTHA-120 (CuAg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.ctha120),\n },\n];\n\n/** 按 id 取线材预设,找不到返回 undefined */\nexport function findWirePreset(id: string): WireSpec | undefined {\n return WIRE_PRESETS.find((w) => w.id === id);\n}\n\n/**\n * 由线密度求单位自重荷载 g,N/m。\n * @param linearMassKgPerM 线密度,kg/m\n */\nexport function weightPerLengthNPerM(linearMassKgPerM: number): number {\n return linearMassKgPerM * G0;\n}\n\n/**\n * 由线材预设直接取单位自重荷载 g,N/m。\n */\nexport function weightOfPresetNPerM(spec: WireSpec): number {\n return weightPerLengthNPerM(spec.linearMassKgPerM);\n}\n","/**\n * TB/T 2809-2017 表5 持续载流量参考值(A)。\n *\n * 来源:itswe.com 标准规范库,据 TB/T 2809-2017 无水印全文扫描件逐格复核。\n *\n * 查表语义:\n * - 返回数值:该项载流量\n * - 返回 null:该 (材质, 截面) 规格存在,但该工况按标准原文注\"不需要考核\"\n * (如纯铜接触线不考核 150℃ 工况)\n * - 返回 undefined:该材质无此截面规格(如铜铬锆无 120 mm²)\n *\n * ⚠️ 表中为室内(无风无日照试验条件)值与室外值;工程取值请以标准原文与\n * 产品技术条件为准。高海拔、隧道内等场景须另行叠加散热修正。\n */\n\nexport type ContactWireTypeCode =\n | 'CT'\n | 'CTA'\n | 'CTS'\n | 'CTSM'\n | 'CTSH'\n | 'CTM'\n | 'CTMM'\n | 'CTMH'\n | 'CTCZ';\n\n/** 载流量考核工况 */\nexport type AmpacityCondition = 'indoor-95' | 'outdoor-95' | 'indoor-150' | 'outdoor-150';\n\nexport type CrossSectionMM2 = 120 | 150;\n\n/** 按截面索引的载流量对,[120 mm², 150 mm²] */\ntype SectionPair = readonly [number | null, number | null];\n\nexport interface AmpacityEntry {\n readonly type: ContactWireTypeCode;\n readonly materialZh: string;\n /** 标称截面,mm² */\n readonly crossSectionMM2: CrossSectionMM2;\n readonly condition: AmpacityCondition;\n /** 持续载流量,A。null 表示该项不需要考核 */\n readonly ampacityA: number | null;\n}\n\nconst M = (\n type: ContactWireTypeCode,\n materialZh: string,\n sections: readonly CrossSectionMM2[],\n indoor95: SectionPair,\n outdoor95: SectionPair,\n indoor150: SectionPair,\n outdoor150: SectionPair,\n): AmpacityEntry[] => {\n const conditions: ReadonlyArray<readonly [AmpacityCondition, SectionPair]> = [\n ['indoor-95', indoor95],\n ['outdoor-95', outdoor95],\n ['indoor-150', indoor150],\n ['outdoor-150', outdoor150],\n ];\n const out: AmpacityEntry[] = [];\n for (const section of sections) {\n for (const [condition, pair] of conditions) {\n const value = section === 120 ? pair[0] : pair[1];\n out.push({\n type,\n materialZh,\n crossSectionMM2: section,\n condition,\n ampacityA: value ?? null,\n });\n }\n }\n return out;\n};\n\nexport const TB2809_AMPACITY_A: readonly AmpacityEntry[] = [\n ...M('CT', '铜', [120, 150], [360, 425], [495, 570], [null, null], [null, null]),\n ...M('CTA', '铜银', [120, 150], [360, 425], [495, 570], [515, 620], [680, 785]),\n ...M('CTS', '铜锡', [120, 150], [360, 425], [490, 565], [515, 620], [680, 790]),\n ...M('CTSM', '铜锡', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTSH', '铜锡', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTM', '铜镁', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTMM', '铜镁', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTMH', '铜镁', [120, 150], [300, 340], [410, 460], [430, 500], [560, 650]),\n ...M('CTCZ', '铜铬锆', [150], [null, 395], [null, 505], [null, 580], [null, 710]),\n];\n\n/**\n * 查表。\n * @returns 载流量 A;该规格存在但不考核时为 null;该材质无此截面时为 undefined\n */\nexport function findAmpacityA(params: {\n type: ContactWireTypeCode;\n crossSectionMM2: CrossSectionMM2;\n condition: AmpacityCondition;\n}): number | null | undefined {\n const row = TB2809_AMPACITY_A.find(\n (e) =>\n e.type === params.type &&\n e.crossSectionMM2 === params.crossSectionMM2 &&\n e.condition === params.condition,\n );\n return row === undefined ? undefined : row.ampacityA;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/index.cjs","../src/data/wire-specs.ts","../src/data/tb2809-ampacity.ts"],"names":[],"mappings":"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","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/index.cjs","sourcesContent":[null,"import { G0 } from '../types';\n\n/**\n * 接触线线材参数预设。\n *\n * ⚠️ 全部为标称参考值,实际取值以产品技术条件与设计文件为准。\n * ⚠️ 本站计算器的参数界面支持手工覆盖这些值 —— 那才是工程上正确的用法。\n *\n * 自重口径(2026-08-31 已确定):\n * 线密度取标准「参考单位质量」表值,而非由标称截面推算。标准表分两列:\n * 型号|标称截面|计算截面|参考单位质量\n * CT 120|120|121|1082 kg/km\n * 注:参考单位质量按密度 8.94 g/cm³ 计算\n * 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,\n * 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。\n * 因此 CTMH-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,\n * 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。\n * 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。\n *\n * 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;\n * CTMH/CTAH 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。\n */\n\nexport interface WireSpec {\n /** 唯一标识 */\n readonly id: WirePresetId;\n /** 中文名 */\n readonly name: string;\n /** 英文名 */\n readonly nameEn: string;\n /** 标称截面积 A,mm² */\n readonly crossSectionMM2: number;\n /** 计算截面积,mm²(标准表列,自重按此值 × 8.94 g/cm³ 计) */\n readonly calculatedSectionMM2: number;\n /** 弹性模量 E,GPa(标称参考值) */\n readonly elasticModulusGPa: number;\n /** 线膨胀系数 α,1/℃(标称参考值) */\n readonly expansionPerDegC: number;\n /** 线密度,kg/m(标准参考单位质量) */\n readonly linearMassKgPerM: number;\n}\n\n/** 参考密度,g/cm³(标准注:参考单位质量按此密度计) */\nexport const REFERENCE_DENSITY_G_PER_CM3 = 8.94;\n\n/** 线材预设 id */\nexport type WirePresetId = 'cthm120' | 'cthm150' | 'ctha120';\n\n/**\n * 标准「参考单位质量」表,kg/km。\n * 与 `src/copper/index.ts` 的 TB2809_WIRE_PARAMS.unitWeightKgPerKm 同源\n * (站点 /calculator/assets/calc-core.js 的 COPPER_TABLE)。\n */\nexport const STANDARD_UNIT_WEIGHT_KG_PER_KM: Readonly<Record<WirePresetId, number>> = {\n cthm120: 1082,\n cthm150: 1350,\n ctha120: 1070,\n};\n\n/** 由标准参考单位质量换算线密度,kg/m */\nexport function unitWeightToKgPerM(kgPerKm: number): number {\n return kgPerKm / 1000;\n}\n\n/**\n * 由截面积与密度反算线密度。\n *\n * ⚠️ 传入的必须是「计算截面」而非「标称截面」,否则结果偏低约 0.85%。\n * 120 mm² 标称对应计算截面 121 mm²;150 mm² 标称对应 151 mm²。\n *\n * @param crossSectionMM2 计算截面积,mm²\n * @param densityGPerCm3 密度,g/cm³\n * @returns 线密度,kg/m\n */\nexport function deriveLinearMassKgPerM(\n crossSectionMM2: number,\n densityGPerCm3: number = REFERENCE_DENSITY_G_PER_CM3,\n): number {\n // A[mm²] × 1e-6 [m²/mm²] × ρ[g/cm³] × 1000 [kg/m³ per g/cm³]\n return crossSectionMM2 * 1e-6 * densityGPerCm3 * 1000;\n}\n\n/** 铜及铜合金接触线的常用线膨胀系数,1/℃ */\nexport const COPPER_ALLOY_ALPHA_PER_DEG_C = 1.7e-5;\n\nexport const WIRE_PRESETS: readonly WireSpec[] = [\n {\n id: 'cthm120',\n name: 'CTMH-120(铜镁 120)',\n nameEn: 'CTMH-120 (CuMg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm120),\n },\n {\n id: 'cthm150',\n name: 'CTMH-150(铜镁 150)',\n nameEn: 'CTMH-150 (CuMg 150 mm²)',\n crossSectionMM2: 150,\n calculatedSectionMM2: 151,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm150),\n },\n {\n id: 'ctha120',\n name: 'CTAH-120(铜银 120)',\n nameEn: 'CTAH-120 (CuAg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.ctha120),\n },\n];\n\n/** 按 id 取线材预设,找不到返回 undefined */\nexport function findWirePreset(id: string): WireSpec | undefined {\n return WIRE_PRESETS.find((w) => w.id === id);\n}\n\n/**\n * 由线密度求单位自重荷载 g,N/m。\n * @param linearMassKgPerM 线密度,kg/m\n */\nexport function weightPerLengthNPerM(linearMassKgPerM: number): number {\n return linearMassKgPerM * G0;\n}\n\n/**\n * 由线材预设直接取单位自重荷载 g,N/m。\n */\nexport function weightOfPresetNPerM(spec: WireSpec): number {\n return weightPerLengthNPerM(spec.linearMassKgPerM);\n}\n","/**\n * TB/T 2809-2017 表5 持续载流量参考值(A)。\n *\n * 来源:itswe.com 标准规范库,据 TB/T 2809-2017 无水印全文扫描件逐格复核。\n *\n * 查表语义:\n * - 返回数值:该项载流量\n * - 返回 null:该 (材质, 截面) 规格存在,但该工况按标准原文注\"不需要考核\"\n * (如纯铜接触线不考核 150℃ 工况)\n * - 返回 undefined:该材质无此截面规格(如铜铬锆无 120 mm²)\n *\n * ⚠️ 表中为室内(无风无日照试验条件)值与室外值;工程取值请以标准原文与\n * 产品技术条件为准。高海拔、隧道内等场景须另行叠加散热修正。\n */\n\nexport type ContactWireTypeCode =\n | 'CT'\n | 'CTA'\n | 'CTS'\n | 'CTSM'\n | 'CTSH'\n | 'CTM'\n | 'CTMM'\n | 'CTMH'\n | 'CTCZ';\n\n/** 载流量考核工况 */\nexport type AmpacityCondition = 'indoor-95' | 'outdoor-95' | 'indoor-150' | 'outdoor-150';\n\nexport type CrossSectionMM2 = 120 | 150;\n\n/** 按截面索引的载流量对,[120 mm², 150 mm²] */\ntype SectionPair = readonly [number | null, number | null];\n\nexport interface AmpacityEntry {\n readonly type: ContactWireTypeCode;\n readonly materialZh: string;\n /** 标称截面,mm² */\n readonly crossSectionMM2: CrossSectionMM2;\n readonly condition: AmpacityCondition;\n /** 持续载流量,A。null 表示该项不需要考核 */\n readonly ampacityA: number | null;\n}\n\nconst M = (\n type: ContactWireTypeCode,\n materialZh: string,\n sections: readonly CrossSectionMM2[],\n indoor95: SectionPair,\n outdoor95: SectionPair,\n indoor150: SectionPair,\n outdoor150: SectionPair,\n): AmpacityEntry[] => {\n const conditions: ReadonlyArray<readonly [AmpacityCondition, SectionPair]> = [\n ['indoor-95', indoor95],\n ['outdoor-95', outdoor95],\n ['indoor-150', indoor150],\n ['outdoor-150', outdoor150],\n ];\n const out: AmpacityEntry[] = [];\n for (const section of sections) {\n for (const [condition, pair] of conditions) {\n const value = section === 120 ? pair[0] : pair[1];\n out.push({\n type,\n materialZh,\n crossSectionMM2: section,\n condition,\n ampacityA: value ?? null,\n });\n }\n }\n return out;\n};\n\nexport const TB2809_AMPACITY_A: readonly AmpacityEntry[] = [\n ...M('CT', '铜', [120, 150], [360, 425], [495, 570], [null, null], [null, null]),\n ...M('CTA', '铜银', [120, 150], [360, 425], [495, 570], [515, 620], [680, 785]),\n ...M('CTS', '铜锡', [120, 150], [360, 425], [490, 565], [515, 620], [680, 790]),\n ...M('CTSM', '铜锡', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTSH', '铜锡', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTM', '铜镁', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTMM', '铜镁', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTMH', '铜镁', [120, 150], [300, 340], [410, 460], [430, 500], [560, 650]),\n ...M('CTCZ', '铜铬锆', [150], [null, 395], [null, 505], [null, 580], [null, 710]),\n];\n\n/**\n * 查表。\n * @returns 载流量 A;该规格存在但不考核时为 null;该材质无此截面时为 undefined\n */\nexport function findAmpacityA(params: {\n type: ContactWireTypeCode;\n crossSectionMM2: CrossSectionMM2;\n condition: AmpacityCondition;\n}): number | null | undefined {\n const row = TB2809_AMPACITY_A.find(\n (e) =>\n e.type === params.type &&\n e.crossSectionMM2 === params.crossSectionMM2 &&\n e.condition === params.condition,\n );\n return row === undefined ? undefined : row.ampacityA;\n}\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -70,12 +70,12 @@ declare function iceLoadNPerM(params: IceLoadParams): number;
|
|
|
70
70
|
* 注:参考单位质量按密度 8.94 g/cm³ 计算
|
|
71
71
|
* 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,
|
|
72
72
|
* 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。
|
|
73
|
-
* 因此
|
|
73
|
+
* 因此 CTMH-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,
|
|
74
74
|
* 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。
|
|
75
75
|
* 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。
|
|
76
76
|
*
|
|
77
77
|
* 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;
|
|
78
|
-
*
|
|
78
|
+
* CTMH/CTAH 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。
|
|
79
79
|
*/
|
|
80
80
|
interface WireSpec {
|
|
81
81
|
/** 唯一标识 */
|
package/dist/index.d.ts
CHANGED
|
@@ -70,12 +70,12 @@ declare function iceLoadNPerM(params: IceLoadParams): number;
|
|
|
70
70
|
* 注:参考单位质量按密度 8.94 g/cm³ 计算
|
|
71
71
|
* 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,
|
|
72
72
|
* 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。
|
|
73
|
-
* 因此
|
|
73
|
+
* 因此 CTMH-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,
|
|
74
74
|
* 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。
|
|
75
75
|
* 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。
|
|
76
76
|
*
|
|
77
77
|
* 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;
|
|
78
|
-
*
|
|
78
|
+
* CTMH/CTAH 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。
|
|
79
79
|
*/
|
|
80
80
|
interface WireSpec {
|
|
81
81
|
/** 唯一标识 */
|
package/dist/index.js
CHANGED
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
TB2809_WIRE_PARAMS,
|
|
46
46
|
copperMeta,
|
|
47
47
|
wireLookup
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-IQR3SRCD.js";
|
|
49
49
|
import {
|
|
50
50
|
COPPER_ALPHA_PER_DEG_C,
|
|
51
51
|
IACS_RESISTIVITY_OHM_MM2_PER_M,
|
|
@@ -108,8 +108,8 @@ var COPPER_ALLOY_ALPHA_PER_DEG_C = 17e-6;
|
|
|
108
108
|
var WIRE_PRESETS = [
|
|
109
109
|
{
|
|
110
110
|
id: "cthm120",
|
|
111
|
-
name: "
|
|
112
|
-
nameEn: "
|
|
111
|
+
name: "CTMH-120\uFF08\u94DC\u9541 120\uFF09",
|
|
112
|
+
nameEn: "CTMH-120 (CuMg 120 mm\xB2)",
|
|
113
113
|
crossSectionMM2: 120,
|
|
114
114
|
calculatedSectionMM2: 121,
|
|
115
115
|
elasticModulusGPa: 120,
|
|
@@ -118,8 +118,8 @@ var WIRE_PRESETS = [
|
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
id: "cthm150",
|
|
121
|
-
name: "
|
|
122
|
-
nameEn: "
|
|
121
|
+
name: "CTMH-150\uFF08\u94DC\u9541 150\uFF09",
|
|
122
|
+
nameEn: "CTMH-150 (CuMg 150 mm\xB2)",
|
|
123
123
|
crossSectionMM2: 150,
|
|
124
124
|
calculatedSectionMM2: 151,
|
|
125
125
|
elasticModulusGPa: 120,
|
|
@@ -128,8 +128,8 @@ var WIRE_PRESETS = [
|
|
|
128
128
|
},
|
|
129
129
|
{
|
|
130
130
|
id: "ctha120",
|
|
131
|
-
name: "
|
|
132
|
-
nameEn: "
|
|
131
|
+
name: "CTAH-120\uFF08\u94DC\u94F6 120\uFF09",
|
|
132
|
+
nameEn: "CTAH-120 (CuAg 120 mm\xB2)",
|
|
133
133
|
crossSectionMM2: 120,
|
|
134
134
|
calculatedSectionMM2: 121,
|
|
135
135
|
elasticModulusGPa: 120,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/wire-specs.ts","../src/data/tb2809-ampacity.ts"],"sourcesContent":["import { G0 } from '../types';\n\n/**\n * 接触线线材参数预设。\n *\n * ⚠️ 全部为标称参考值,实际取值以产品技术条件与设计文件为准。\n * ⚠️ 本站计算器的参数界面支持手工覆盖这些值 —— 那才是工程上正确的用法。\n *\n * 自重口径(2026-08-31 已确定):\n * 线密度取标准「参考单位质量」表值,而非由标称截面推算。标准表分两列:\n * 型号|标称截面|计算截面|参考单位质量\n * CT 120|120|121|1082 kg/km\n * 注:参考单位质量按密度 8.94 g/cm³ 计算\n * 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,\n * 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。\n * 因此 CTHM-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,\n * 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。\n * 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。\n *\n * 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;\n * CTHM/CTHA 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。\n */\n\nexport interface WireSpec {\n /** 唯一标识 */\n readonly id: WirePresetId;\n /** 中文名 */\n readonly name: string;\n /** 英文名 */\n readonly nameEn: string;\n /** 标称截面积 A,mm² */\n readonly crossSectionMM2: number;\n /** 计算截面积,mm²(标准表列,自重按此值 × 8.94 g/cm³ 计) */\n readonly calculatedSectionMM2: number;\n /** 弹性模量 E,GPa(标称参考值) */\n readonly elasticModulusGPa: number;\n /** 线膨胀系数 α,1/℃(标称参考值) */\n readonly expansionPerDegC: number;\n /** 线密度,kg/m(标准参考单位质量) */\n readonly linearMassKgPerM: number;\n}\n\n/** 参考密度,g/cm³(标准注:参考单位质量按此密度计) */\nexport const REFERENCE_DENSITY_G_PER_CM3 = 8.94;\n\n/** 线材预设 id */\nexport type WirePresetId = 'cthm120' | 'cthm150' | 'ctha120';\n\n/**\n * 标准「参考单位质量」表,kg/km。\n * 与 `src/copper/index.ts` 的 TB2809_WIRE_PARAMS.unitWeightKgPerKm 同源\n * (站点 /calculator/assets/calc-core.js 的 COPPER_TABLE)。\n */\nexport const STANDARD_UNIT_WEIGHT_KG_PER_KM: Readonly<Record<WirePresetId, number>> = {\n cthm120: 1082,\n cthm150: 1350,\n ctha120: 1070,\n};\n\n/** 由标准参考单位质量换算线密度,kg/m */\nexport function unitWeightToKgPerM(kgPerKm: number): number {\n return kgPerKm / 1000;\n}\n\n/**\n * 由截面积与密度反算线密度。\n *\n * ⚠️ 传入的必须是「计算截面」而非「标称截面」,否则结果偏低约 0.85%。\n * 120 mm² 标称对应计算截面 121 mm²;150 mm² 标称对应 151 mm²。\n *\n * @param crossSectionMM2 计算截面积,mm²\n * @param densityGPerCm3 密度,g/cm³\n * @returns 线密度,kg/m\n */\nexport function deriveLinearMassKgPerM(\n crossSectionMM2: number,\n densityGPerCm3: number = REFERENCE_DENSITY_G_PER_CM3,\n): number {\n // A[mm²] × 1e-6 [m²/mm²] × ρ[g/cm³] × 1000 [kg/m³ per g/cm³]\n return crossSectionMM2 * 1e-6 * densityGPerCm3 * 1000;\n}\n\n/** 铜及铜合金接触线的常用线膨胀系数,1/℃ */\nexport const COPPER_ALLOY_ALPHA_PER_DEG_C = 1.7e-5;\n\nexport const WIRE_PRESETS: readonly WireSpec[] = [\n {\n id: 'cthm120',\n name: 'CTHM-120(铜镁 120)',\n nameEn: 'CTHM-120 (CuMg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm120),\n },\n {\n id: 'cthm150',\n name: 'CTHM-150(铜镁 150)',\n nameEn: 'CTHM-150 (CuMg 150 mm²)',\n crossSectionMM2: 150,\n calculatedSectionMM2: 151,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm150),\n },\n {\n id: 'ctha120',\n name: 'CTHA-120(铜银 120)',\n nameEn: 'CTHA-120 (CuAg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.ctha120),\n },\n];\n\n/** 按 id 取线材预设,找不到返回 undefined */\nexport function findWirePreset(id: string): WireSpec | undefined {\n return WIRE_PRESETS.find((w) => w.id === id);\n}\n\n/**\n * 由线密度求单位自重荷载 g,N/m。\n * @param linearMassKgPerM 线密度,kg/m\n */\nexport function weightPerLengthNPerM(linearMassKgPerM: number): number {\n return linearMassKgPerM * G0;\n}\n\n/**\n * 由线材预设直接取单位自重荷载 g,N/m。\n */\nexport function weightOfPresetNPerM(spec: WireSpec): number {\n return weightPerLengthNPerM(spec.linearMassKgPerM);\n}\n","/**\n * TB/T 2809-2017 表5 持续载流量参考值(A)。\n *\n * 来源:itswe.com 标准规范库,据 TB/T 2809-2017 无水印全文扫描件逐格复核。\n *\n * 查表语义:\n * - 返回数值:该项载流量\n * - 返回 null:该 (材质, 截面) 规格存在,但该工况按标准原文注\"不需要考核\"\n * (如纯铜接触线不考核 150℃ 工况)\n * - 返回 undefined:该材质无此截面规格(如铜铬锆无 120 mm²)\n *\n * ⚠️ 表中为室内(无风无日照试验条件)值与室外值;工程取值请以标准原文与\n * 产品技术条件为准。高海拔、隧道内等场景须另行叠加散热修正。\n */\n\nexport type ContactWireTypeCode =\n | 'CT'\n | 'CTA'\n | 'CTS'\n | 'CTSM'\n | 'CTSH'\n | 'CTM'\n | 'CTMM'\n | 'CTMH'\n | 'CTCZ';\n\n/** 载流量考核工况 */\nexport type AmpacityCondition = 'indoor-95' | 'outdoor-95' | 'indoor-150' | 'outdoor-150';\n\nexport type CrossSectionMM2 = 120 | 150;\n\n/** 按截面索引的载流量对,[120 mm², 150 mm²] */\ntype SectionPair = readonly [number | null, number | null];\n\nexport interface AmpacityEntry {\n readonly type: ContactWireTypeCode;\n readonly materialZh: string;\n /** 标称截面,mm² */\n readonly crossSectionMM2: CrossSectionMM2;\n readonly condition: AmpacityCondition;\n /** 持续载流量,A。null 表示该项不需要考核 */\n readonly ampacityA: number | null;\n}\n\nconst M = (\n type: ContactWireTypeCode,\n materialZh: string,\n sections: readonly CrossSectionMM2[],\n indoor95: SectionPair,\n outdoor95: SectionPair,\n indoor150: SectionPair,\n outdoor150: SectionPair,\n): AmpacityEntry[] => {\n const conditions: ReadonlyArray<readonly [AmpacityCondition, SectionPair]> = [\n ['indoor-95', indoor95],\n ['outdoor-95', outdoor95],\n ['indoor-150', indoor150],\n ['outdoor-150', outdoor150],\n ];\n const out: AmpacityEntry[] = [];\n for (const section of sections) {\n for (const [condition, pair] of conditions) {\n const value = section === 120 ? pair[0] : pair[1];\n out.push({\n type,\n materialZh,\n crossSectionMM2: section,\n condition,\n ampacityA: value ?? null,\n });\n }\n }\n return out;\n};\n\nexport const TB2809_AMPACITY_A: readonly AmpacityEntry[] = [\n ...M('CT', '铜', [120, 150], [360, 425], [495, 570], [null, null], [null, null]),\n ...M('CTA', '铜银', [120, 150], [360, 425], [495, 570], [515, 620], [680, 785]),\n ...M('CTS', '铜锡', [120, 150], [360, 425], [490, 565], [515, 620], [680, 790]),\n ...M('CTSM', '铜锡', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTSH', '铜锡', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTM', '铜镁', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTMM', '铜镁', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTMH', '铜镁', [120, 150], [300, 340], [410, 460], [430, 500], [560, 650]),\n ...M('CTCZ', '铜铬锆', [150], [null, 395], [null, 505], [null, 580], [null, 710]),\n];\n\n/**\n * 查表。\n * @returns 载流量 A;该规格存在但不考核时为 null;该材质无此截面时为 undefined\n */\nexport function findAmpacityA(params: {\n type: ContactWireTypeCode;\n crossSectionMM2: CrossSectionMM2;\n condition: AmpacityCondition;\n}): number | null | undefined {\n const row = TB2809_AMPACITY_A.find(\n (e) =>\n e.type === params.type &&\n e.crossSectionMM2 === params.crossSectionMM2 &&\n e.condition === params.condition,\n );\n return row === undefined ? undefined : row.ampacityA;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/data/wire-specs.ts","../src/data/tb2809-ampacity.ts"],"sourcesContent":["import { G0 } from '../types';\n\n/**\n * 接触线线材参数预设。\n *\n * ⚠️ 全部为标称参考值,实际取值以产品技术条件与设计文件为准。\n * ⚠️ 本站计算器的参数界面支持手工覆盖这些值 —— 那才是工程上正确的用法。\n *\n * 自重口径(2026-08-31 已确定):\n * 线密度取标准「参考单位质量」表值,而非由标称截面推算。标准表分两列:\n * 型号|标称截面|计算截面|参考单位质量\n * CT 120|120|121|1082 kg/km\n * 注:参考单位质量按密度 8.94 g/cm³ 计算\n * 即标准的 8.94 g/cm³ 是配「计算截面」(把尺寸公差计入后的截面)用的,\n * 不是配「标称截面」用的:121 × 8.94 × 1e-3 = 1.0817 ≈ 1.082 kg/m。\n * 因此 CTMH-120 自重 g = 1.082 × 9.81 = 10.61442 N/m,\n * 与站点 /calculator/tension/ 预设 rho=1.082、COPPER_TABLE.unitWeight=1082 一致。\n * 早期版本用标称截面 120 直接推算得 1.0728 kg/m,偏低约 0.85%,已废弃。\n *\n * 依据:TB/T 2810-2017(纯铜)、TB/T 2821-2017(铜银)规格尺寸表;\n * CTMH/CTAH 型号口径与 TB/T 2809-2017 的对应关系见 copper 模块 note 字段。\n */\n\nexport interface WireSpec {\n /** 唯一标识 */\n readonly id: WirePresetId;\n /** 中文名 */\n readonly name: string;\n /** 英文名 */\n readonly nameEn: string;\n /** 标称截面积 A,mm² */\n readonly crossSectionMM2: number;\n /** 计算截面积,mm²(标准表列,自重按此值 × 8.94 g/cm³ 计) */\n readonly calculatedSectionMM2: number;\n /** 弹性模量 E,GPa(标称参考值) */\n readonly elasticModulusGPa: number;\n /** 线膨胀系数 α,1/℃(标称参考值) */\n readonly expansionPerDegC: number;\n /** 线密度,kg/m(标准参考单位质量) */\n readonly linearMassKgPerM: number;\n}\n\n/** 参考密度,g/cm³(标准注:参考单位质量按此密度计) */\nexport const REFERENCE_DENSITY_G_PER_CM3 = 8.94;\n\n/** 线材预设 id */\nexport type WirePresetId = 'cthm120' | 'cthm150' | 'ctha120';\n\n/**\n * 标准「参考单位质量」表,kg/km。\n * 与 `src/copper/index.ts` 的 TB2809_WIRE_PARAMS.unitWeightKgPerKm 同源\n * (站点 /calculator/assets/calc-core.js 的 COPPER_TABLE)。\n */\nexport const STANDARD_UNIT_WEIGHT_KG_PER_KM: Readonly<Record<WirePresetId, number>> = {\n cthm120: 1082,\n cthm150: 1350,\n ctha120: 1070,\n};\n\n/** 由标准参考单位质量换算线密度,kg/m */\nexport function unitWeightToKgPerM(kgPerKm: number): number {\n return kgPerKm / 1000;\n}\n\n/**\n * 由截面积与密度反算线密度。\n *\n * ⚠️ 传入的必须是「计算截面」而非「标称截面」,否则结果偏低约 0.85%。\n * 120 mm² 标称对应计算截面 121 mm²;150 mm² 标称对应 151 mm²。\n *\n * @param crossSectionMM2 计算截面积,mm²\n * @param densityGPerCm3 密度,g/cm³\n * @returns 线密度,kg/m\n */\nexport function deriveLinearMassKgPerM(\n crossSectionMM2: number,\n densityGPerCm3: number = REFERENCE_DENSITY_G_PER_CM3,\n): number {\n // A[mm²] × 1e-6 [m²/mm²] × ρ[g/cm³] × 1000 [kg/m³ per g/cm³]\n return crossSectionMM2 * 1e-6 * densityGPerCm3 * 1000;\n}\n\n/** 铜及铜合金接触线的常用线膨胀系数,1/℃ */\nexport const COPPER_ALLOY_ALPHA_PER_DEG_C = 1.7e-5;\n\nexport const WIRE_PRESETS: readonly WireSpec[] = [\n {\n id: 'cthm120',\n name: 'CTMH-120(铜镁 120)',\n nameEn: 'CTMH-120 (CuMg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm120),\n },\n {\n id: 'cthm150',\n name: 'CTMH-150(铜镁 150)',\n nameEn: 'CTMH-150 (CuMg 150 mm²)',\n crossSectionMM2: 150,\n calculatedSectionMM2: 151,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.cthm150),\n },\n {\n id: 'ctha120',\n name: 'CTAH-120(铜银 120)',\n nameEn: 'CTAH-120 (CuAg 120 mm²)',\n crossSectionMM2: 120,\n calculatedSectionMM2: 121,\n elasticModulusGPa: 120,\n expansionPerDegC: COPPER_ALLOY_ALPHA_PER_DEG_C,\n linearMassKgPerM: unitWeightToKgPerM(STANDARD_UNIT_WEIGHT_KG_PER_KM.ctha120),\n },\n];\n\n/** 按 id 取线材预设,找不到返回 undefined */\nexport function findWirePreset(id: string): WireSpec | undefined {\n return WIRE_PRESETS.find((w) => w.id === id);\n}\n\n/**\n * 由线密度求单位自重荷载 g,N/m。\n * @param linearMassKgPerM 线密度,kg/m\n */\nexport function weightPerLengthNPerM(linearMassKgPerM: number): number {\n return linearMassKgPerM * G0;\n}\n\n/**\n * 由线材预设直接取单位自重荷载 g,N/m。\n */\nexport function weightOfPresetNPerM(spec: WireSpec): number {\n return weightPerLengthNPerM(spec.linearMassKgPerM);\n}\n","/**\n * TB/T 2809-2017 表5 持续载流量参考值(A)。\n *\n * 来源:itswe.com 标准规范库,据 TB/T 2809-2017 无水印全文扫描件逐格复核。\n *\n * 查表语义:\n * - 返回数值:该项载流量\n * - 返回 null:该 (材质, 截面) 规格存在,但该工况按标准原文注\"不需要考核\"\n * (如纯铜接触线不考核 150℃ 工况)\n * - 返回 undefined:该材质无此截面规格(如铜铬锆无 120 mm²)\n *\n * ⚠️ 表中为室内(无风无日照试验条件)值与室外值;工程取值请以标准原文与\n * 产品技术条件为准。高海拔、隧道内等场景须另行叠加散热修正。\n */\n\nexport type ContactWireTypeCode =\n | 'CT'\n | 'CTA'\n | 'CTS'\n | 'CTSM'\n | 'CTSH'\n | 'CTM'\n | 'CTMM'\n | 'CTMH'\n | 'CTCZ';\n\n/** 载流量考核工况 */\nexport type AmpacityCondition = 'indoor-95' | 'outdoor-95' | 'indoor-150' | 'outdoor-150';\n\nexport type CrossSectionMM2 = 120 | 150;\n\n/** 按截面索引的载流量对,[120 mm², 150 mm²] */\ntype SectionPair = readonly [number | null, number | null];\n\nexport interface AmpacityEntry {\n readonly type: ContactWireTypeCode;\n readonly materialZh: string;\n /** 标称截面,mm² */\n readonly crossSectionMM2: CrossSectionMM2;\n readonly condition: AmpacityCondition;\n /** 持续载流量,A。null 表示该项不需要考核 */\n readonly ampacityA: number | null;\n}\n\nconst M = (\n type: ContactWireTypeCode,\n materialZh: string,\n sections: readonly CrossSectionMM2[],\n indoor95: SectionPair,\n outdoor95: SectionPair,\n indoor150: SectionPair,\n outdoor150: SectionPair,\n): AmpacityEntry[] => {\n const conditions: ReadonlyArray<readonly [AmpacityCondition, SectionPair]> = [\n ['indoor-95', indoor95],\n ['outdoor-95', outdoor95],\n ['indoor-150', indoor150],\n ['outdoor-150', outdoor150],\n ];\n const out: AmpacityEntry[] = [];\n for (const section of sections) {\n for (const [condition, pair] of conditions) {\n const value = section === 120 ? pair[0] : pair[1];\n out.push({\n type,\n materialZh,\n crossSectionMM2: section,\n condition,\n ampacityA: value ?? null,\n });\n }\n }\n return out;\n};\n\nexport const TB2809_AMPACITY_A: readonly AmpacityEntry[] = [\n ...M('CT', '铜', [120, 150], [360, 425], [495, 570], [null, null], [null, null]),\n ...M('CTA', '铜银', [120, 150], [360, 425], [495, 570], [515, 620], [680, 785]),\n ...M('CTS', '铜锡', [120, 150], [360, 425], [490, 565], [515, 620], [680, 790]),\n ...M('CTSM', '铜锡', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTSH', '铜锡', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTM', '铜镁', [120, 150], [330, 400], [455, 525], [490, 560], [630, 730]),\n ...M('CTMM', '铜镁', [120, 150], [310, 360], [420, 480], [450, 520], [580, 670]),\n ...M('CTMH', '铜镁', [120, 150], [300, 340], [410, 460], [430, 500], [560, 650]),\n ...M('CTCZ', '铜铬锆', [150], [null, 395], [null, 505], [null, 580], [null, 710]),\n];\n\n/**\n * 查表。\n * @returns 载流量 A;该规格存在但不考核时为 null;该材质无此截面时为 undefined\n */\nexport function findAmpacityA(params: {\n type: ContactWireTypeCode;\n crossSectionMM2: CrossSectionMM2;\n condition: AmpacityCondition;\n}): number | null | undefined {\n const row = TB2809_AMPACITY_A.find(\n (e) =>\n e.type === params.type &&\n e.crossSectionMM2 === params.crossSectionMM2 &&\n e.condition === params.condition,\n );\n return row === undefined ? undefined : row.ampacityA;\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ocs-calculators",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "铁路接触网(OCS)工程计算工具集 —— 张力、弛度、吊弦、风偏移等计算,零依赖纯函数实现 / Railway overhead contact system (OCS) engineering calculators as zero-dependency pure functions",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"catenary",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/copper/meta.ts","../src/copper/index.ts"],"sourcesContent":["import type { CalculatorMeta } from '../types';\n\nexport const copperMeta: CalculatorMeta = {\n name: '接触线参数速查',\n nameEn: 'Contact Wire Parameter Lookup',\n summary:\n '内置 CTHM / CTHA / CTHS 系列 120/150 mm² 接触线参数表,按长度与环境温度给出总重量与温度修正电阻。',\n formula: [\n '电阻温度修正(α = 0.00393 /℃):r_T = r₂₀·[1 + α·(T − 20)]',\n '总重量:W = w₀ × l(w₀ 单位重量 kg/km,l 长度 km)',\n ],\n references: [\n '内置参数表来源 TB/T 2809-2017《电气化铁路用铜及铜合金接触线》(2018-05-01 实施)',\n '单位重量为标称值',\n '载流量为 150℃ 持续值,室内/室外双口径按标准表5',\n 'r₂₀ 除 CTHM-120 取给定值外,均按导电率反算估算(IACS 标准电阻率 0.017241 Ω·mm²/m ÷ 导电率 ÷ 截面积;0.017241 = 1/58)',\n '正式工程以产品标准与出厂检验单为准',\n ],\n scope: [\n '温度修正仅覆盖电阻,未修正单位重量与载流量',\n '适用温度 −40 ~ 90 ℃',\n '载流量为 150℃ 允许温度下的持续值,未做环境温度修正',\n ],\n disclaimer: '本工具结果仅供参考,工程应用以设计文件为准。详见 DISCLAIMER.md。',\n online: 'https://www.itswe.com/calculator/copper/',\n};\n","export { copperMeta } from './meta';\n\n// 电阻温度修正与铜常数统一放在 src/common/resistance.ts(copper 与 voltage-drop 共用),\n// 由根 index 统一导出,此处仅内部引用,避免重复导出同名符号。\nimport { resistanceAtTempOhmPerKm } from '../common/resistance';\n\n/** 站点计算器内置的 6 个型号 */\nexport type CopperWireModel =\n | 'CTHM-120'\n | 'CTHM-150'\n | 'CTHA-120'\n | 'CTHA-150'\n | 'CTHS-120'\n | 'CTHS-150';\n\nexport interface WireParamEntry {\n /** 单位重量,kg/km(标称值) */\n readonly unitWeightKgPerKm: number;\n /** 20℃ 直流电阻,Ω/km */\n readonly r20OhmPerKm: number;\n /** 150℃ 持续载流量,室内口径,A */\n readonly ampacityIndoor150A: number;\n /** 150℃ 持续载流量,室外口径,A */\n readonly ampacityOutdoor150A: number;\n /** 口径说明:本行实际对应标准中的哪一行 */\n readonly note: string;\n}\n\n/**\n * 接触线参数表,来源 TB/T 2809-2017。\n *\n * 载流量为 150℃ 持续值(室内/室外双口径,标准表5)。\n *\n * 已与站点 `/calculator/assets/calc-core.js` 中的 COPPER_TABLE 逐项比对,\n * 6 个型号 × 4 项参数完全一致。\n *\n * 注:站点曾因显示层 `fmt()` 的尾零剥离正则把载流量渲染成 43/56(应为 430/560),\n * 已于 R38 之后修复。若再遇渲染值与本表不符,先确认是否为显示层问题:\n * 本表与服务端数据源始终一致。\n *\n * ⚠️ 注意型号口径:CTHM / CTHA / CTHS 是站点计算器的型号代码,与标准中的\n * CTMH / CTA / CTS 并非同名对应。`note` 字段说明各行实际取自标准的哪一行,\n * 交叉引用 TB/T 2809-2017 时请以 note 为准。\n */\nexport const TB2809_WIRE_PARAMS: Record<CopperWireModel, WireParamEntry> = {\n 'CTHM-120': {\n unitWeightKgPerKm: 1082,\n r20OhmPerKm: 0.2113,\n ampacityIndoor150A: 430,\n ampacityOutdoor150A: 560,\n note: '取标准 CTMH 行(高强度铜镁合金),ρ 按标准上限 0.02535 计算',\n },\n 'CTHM-150': {\n unitWeightKgPerKm: 1350,\n r20OhmPerKm: 0.169,\n ampacityIndoor150A: 500,\n ampacityOutdoor150A: 650,\n note: '取标准 CTMH 行(高强度铜镁合金)',\n },\n 'CTHA-120': {\n unitWeightKgPerKm: 1070,\n r20OhmPerKm: 0.1481,\n ampacityIndoor150A: 515,\n ampacityOutdoor150A: 680,\n note: '取标准 CTA 行(铜银合金),ρ ≤ 0.01777',\n },\n 'CTHA-150': {\n unitWeightKgPerKm: 1330,\n r20OhmPerKm: 0.1185,\n ampacityIndoor150A: 620,\n ampacityOutdoor150A: 785,\n note: '取标准 CTA 行(铜银合金)',\n },\n 'CTHS-120': {\n unitWeightKgPerKm: 1080,\n r20OhmPerKm: 0.1916,\n ampacityIndoor150A: 515,\n ampacityOutdoor150A: 680,\n note: '取标准 CTS 行(铜锡合金),载流量按 CTS 行取值',\n },\n 'CTHS-150': {\n unitWeightKgPerKm: 1345,\n r20OhmPerKm: 0.1533,\n ampacityIndoor150A: 620,\n ampacityOutdoor150A: 790,\n note: '取标准 CTS 行(铜锡合金),载流量按 CTS 行取值',\n },\n};\n\nexport interface CopperLookupInput {\n readonly model: CopperWireModel;\n /** 长度 l,km */\n readonly lengthKm: number;\n /** 环境温度 T,℃ */\n readonly ambientTempDegC: number;\n}\n\nexport interface CopperLookupResult extends WireParamEntry {\n readonly model: CopperWireModel;\n /** 总重量 W = w₀ × l,kg */\n readonly totalWeightKg: number;\n /** 温度修正电阻 r_T,Ω/km */\n readonly rTOhmPerKm: number;\n /** 全长温度修正电阻,Ω */\n readonly totalResistanceOhm: number;\n}\n\n/**\n * 按型号、长度与环境温度给出接触线参数速查结果。\n */\nexport function wireLookup(input: CopperLookupInput): CopperLookupResult {\n const { model, lengthKm, ambientTempDegC } = input;\n\n const params = TB2809_WIRE_PARAMS[model];\n if (params === undefined) {\n throw new RangeError(`未知型号:${model}`);\n }\n if (!(lengthKm > 0)) {\n throw new RangeError(`长度必须为正数,收到 ${lengthKm} km`);\n }\n if (ambientTempDegC < -40 || ambientTempDegC > 90) {\n throw new RangeError(`适用温度为 −40 ~ 90 ℃,收到 ${ambientTempDegC} ℃`);\n }\n\n const rT = resistanceAtTempOhmPerKm(params.r20OhmPerKm, ambientTempDegC);\n\n return {\n model,\n ...params,\n totalWeightKg: params.unitWeightKgPerKm * lengthKm,\n rTOhmPerKm: rT,\n totalResistanceOhm: rT * lengthKm,\n };\n}\n"],"mappings":";;;;;AAEO,IAAM,aAA6B;AAAA,EACxC,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SACE;AAAA,EACF,SAAS;AAAA,IACP;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,EACZ,QAAQ;AACV;;;ACmBO,IAAM,qBAA8D;AAAA,EACzE,YAAY;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AAAA,EACA,YAAY;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AAAA,EACA,YAAY;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AAAA,EACA,YAAY;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AAAA,EACA,YAAY;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AAAA,EACA,YAAY;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR;AACF;AAuBO,SAAS,WAAW,OAA8C;AACvE,QAAM,EAAE,OAAO,UAAU,gBAAgB,IAAI;AAE7C,QAAM,SAAS,mBAAmB,KAAK;AACvC,MAAI,WAAW,QAAW;AACxB,UAAM,IAAI,WAAW,iCAAQ,KAAK,EAAE;AAAA,EACtC;AACA,MAAI,EAAE,WAAW,IAAI;AACnB,UAAM,IAAI,WAAW,gEAAc,QAAQ,KAAK;AAAA,EAClD;AACA,MAAI,kBAAkB,OAAO,kBAAkB,IAAI;AACjD,UAAM,IAAI,WAAW,yEAAuB,eAAe,SAAI;AAAA,EACjE;AAEA,QAAM,KAAK,yBAAyB,OAAO,aAAa,eAAe;AAEvE,SAAO;AAAA,IACL;AAAA,IACA,GAAG;AAAA,IACH,eAAe,OAAO,oBAAoB;AAAA,IAC1C,YAAY;AAAA,IACZ,oBAAoB,KAAK;AAAA,EAC3B;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/chunk-MZBQ4546.cjs","../src/copper/meta.ts","../src/copper/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACFO,IAAM,WAAA,EAA6B;AAAA,EACxC,IAAA,EAAM,4CAAA;AAAA,EACN,MAAA,EAAQ,+BAAA;AAAA,EACR,OAAA,EACE,sOAAA;AAAA,EACF,OAAA,EAAS;AAAA,IACP,oIAAA;AAAA,IACA;AAAA,EACF,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,8LAAA;AAAA,IACA,kDAAA;AAAA,IACA,iIAAA;AAAA,IACA,0QAAA;AAAA,IACA;AAAA,EACF,CAAA;AAAA,EACA,KAAA,EAAO;AAAA,IACL,gIAAA;AAAA,IACA,+CAAA;AAAA,IACA;AAAA,EACF,CAAA;AAAA,EACA,UAAA,EAAY,sKAAA;AAAA,EACZ,MAAA,EAAQ;AACV,CAAA;ADGA;AACA;AEeO,IAAM,mBAAA,EAA8D;AAAA,EACzE,UAAA,EAAY;AAAA,IACV,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,MAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,KAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,MAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,MAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,MAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,iBAAA,EAAmB,IAAA;AAAA,IACnB,WAAA,EAAa,MAAA;AAAA,IACb,kBAAA,EAAoB,GAAA;AAAA,IACpB,mBAAA,EAAqB,GAAA;AAAA,IACrB,IAAA,EAAM;AAAA,EACR;AACF,CAAA;AAuBO,SAAS,UAAA,CAAW,KAAA,EAA8C;AACvE,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,gBAAgB,EAAA,EAAI,KAAA;AAE7C,EAAA,MAAM,OAAA,EAAS,kBAAA,CAAmB,KAAK,CAAA;AACvC,EAAA,GAAA,CAAI,OAAA,IAAW,KAAA,CAAA,EAAW;AACxB,IAAA,MAAM,IAAI,UAAA,CAAW,CAAA,8BAAA,EAAQ,KAAK,CAAA,CAAA;AACpC,EAAA;AACqB,EAAA;AACE,IAAA;AACvB,EAAA;AACmD,EAAA;AAC5B,IAAA;AACvB,EAAA;AAEwD,EAAA;AAEjD,EAAA;AACL,IAAA;AACG,IAAA;AACuC,IAAA;AAC9B,IAAA;AACa,IAAA;AAC3B,EAAA;AACF;AFtCgE;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/chunk-MZBQ4546.cjs","sourcesContent":[null,"import type { CalculatorMeta } from '../types';\n\nexport const copperMeta: CalculatorMeta = {\n name: '接触线参数速查',\n nameEn: 'Contact Wire Parameter Lookup',\n summary:\n '内置 CTHM / CTHA / CTHS 系列 120/150 mm² 接触线参数表,按长度与环境温度给出总重量与温度修正电阻。',\n formula: [\n '电阻温度修正(α = 0.00393 /℃):r_T = r₂₀·[1 + α·(T − 20)]',\n '总重量:W = w₀ × l(w₀ 单位重量 kg/km,l 长度 km)',\n ],\n references: [\n '内置参数表来源 TB/T 2809-2017《电气化铁路用铜及铜合金接触线》(2018-05-01 实施)',\n '单位重量为标称值',\n '载流量为 150℃ 持续值,室内/室外双口径按标准表5',\n 'r₂₀ 除 CTHM-120 取给定值外,均按导电率反算估算(IACS 标准电阻率 0.017241 Ω·mm²/m ÷ 导电率 ÷ 截面积;0.017241 = 1/58)',\n '正式工程以产品标准与出厂检验单为准',\n ],\n scope: [\n '温度修正仅覆盖电阻,未修正单位重量与载流量',\n '适用温度 −40 ~ 90 ℃',\n '载流量为 150℃ 允许温度下的持续值,未做环境温度修正',\n ],\n disclaimer: '本工具结果仅供参考,工程应用以设计文件为准。详见 DISCLAIMER.md。',\n online: 'https://www.itswe.com/calculator/copper/',\n};\n","export { copperMeta } from './meta';\n\n// 电阻温度修正与铜常数统一放在 src/common/resistance.ts(copper 与 voltage-drop 共用),\n// 由根 index 统一导出,此处仅内部引用,避免重复导出同名符号。\nimport { resistanceAtTempOhmPerKm } from '../common/resistance';\n\n/** 站点计算器内置的 6 个型号 */\nexport type CopperWireModel =\n | 'CTHM-120'\n | 'CTHM-150'\n | 'CTHA-120'\n | 'CTHA-150'\n | 'CTHS-120'\n | 'CTHS-150';\n\nexport interface WireParamEntry {\n /** 单位重量,kg/km(标称值) */\n readonly unitWeightKgPerKm: number;\n /** 20℃ 直流电阻,Ω/km */\n readonly r20OhmPerKm: number;\n /** 150℃ 持续载流量,室内口径,A */\n readonly ampacityIndoor150A: number;\n /** 150℃ 持续载流量,室外口径,A */\n readonly ampacityOutdoor150A: number;\n /** 口径说明:本行实际对应标准中的哪一行 */\n readonly note: string;\n}\n\n/**\n * 接触线参数表,来源 TB/T 2809-2017。\n *\n * 载流量为 150℃ 持续值(室内/室外双口径,标准表5)。\n *\n * 已与站点 `/calculator/assets/calc-core.js` 中的 COPPER_TABLE 逐项比对,\n * 6 个型号 × 4 项参数完全一致。\n *\n * 注:站点曾因显示层 `fmt()` 的尾零剥离正则把载流量渲染成 43/56(应为 430/560),\n * 已于 R38 之后修复。若再遇渲染值与本表不符,先确认是否为显示层问题:\n * 本表与服务端数据源始终一致。\n *\n * ⚠️ 注意型号口径:CTHM / CTHA / CTHS 是站点计算器的型号代码,与标准中的\n * CTMH / CTA / CTS 并非同名对应。`note` 字段说明各行实际取自标准的哪一行,\n * 交叉引用 TB/T 2809-2017 时请以 note 为准。\n */\nexport const TB2809_WIRE_PARAMS: Record<CopperWireModel, WireParamEntry> = {\n 'CTHM-120': {\n unitWeightKgPerKm: 1082,\n r20OhmPerKm: 0.2113,\n ampacityIndoor150A: 430,\n ampacityOutdoor150A: 560,\n note: '取标准 CTMH 行(高强度铜镁合金),ρ 按标准上限 0.02535 计算',\n },\n 'CTHM-150': {\n unitWeightKgPerKm: 1350,\n r20OhmPerKm: 0.169,\n ampacityIndoor150A: 500,\n ampacityOutdoor150A: 650,\n note: '取标准 CTMH 行(高强度铜镁合金)',\n },\n 'CTHA-120': {\n unitWeightKgPerKm: 1070,\n r20OhmPerKm: 0.1481,\n ampacityIndoor150A: 515,\n ampacityOutdoor150A: 680,\n note: '取标准 CTA 行(铜银合金),ρ ≤ 0.01777',\n },\n 'CTHA-150': {\n unitWeightKgPerKm: 1330,\n r20OhmPerKm: 0.1185,\n ampacityIndoor150A: 620,\n ampacityOutdoor150A: 785,\n note: '取标准 CTA 行(铜银合金)',\n },\n 'CTHS-120': {\n unitWeightKgPerKm: 1080,\n r20OhmPerKm: 0.1916,\n ampacityIndoor150A: 515,\n ampacityOutdoor150A: 680,\n note: '取标准 CTS 行(铜锡合金),载流量按 CTS 行取值',\n },\n 'CTHS-150': {\n unitWeightKgPerKm: 1345,\n r20OhmPerKm: 0.1533,\n ampacityIndoor150A: 620,\n ampacityOutdoor150A: 790,\n note: '取标准 CTS 行(铜锡合金),载流量按 CTS 行取值',\n },\n};\n\nexport interface CopperLookupInput {\n readonly model: CopperWireModel;\n /** 长度 l,km */\n readonly lengthKm: number;\n /** 环境温度 T,℃ */\n readonly ambientTempDegC: number;\n}\n\nexport interface CopperLookupResult extends WireParamEntry {\n readonly model: CopperWireModel;\n /** 总重量 W = w₀ × l,kg */\n readonly totalWeightKg: number;\n /** 温度修正电阻 r_T,Ω/km */\n readonly rTOhmPerKm: number;\n /** 全长温度修正电阻,Ω */\n readonly totalResistanceOhm: number;\n}\n\n/**\n * 按型号、长度与环境温度给出接触线参数速查结果。\n */\nexport function wireLookup(input: CopperLookupInput): CopperLookupResult {\n const { model, lengthKm, ambientTempDegC } = input;\n\n const params = TB2809_WIRE_PARAMS[model];\n if (params === undefined) {\n throw new RangeError(`未知型号:${model}`);\n }\n if (!(lengthKm > 0)) {\n throw new RangeError(`长度必须为正数,收到 ${lengthKm} km`);\n }\n if (ambientTempDegC < -40 || ambientTempDegC > 90) {\n throw new RangeError(`适用温度为 −40 ~ 90 ℃,收到 ${ambientTempDegC} ℃`);\n }\n\n const rT = resistanceAtTempOhmPerKm(params.r20OhmPerKm, ambientTempDegC);\n\n return {\n model,\n ...params,\n totalWeightKg: params.unitWeightKgPerKm * lengthKm,\n rTOhmPerKm: rT,\n totalResistanceOhm: rT * lengthKm,\n };\n}\n"]}
|