ocs-calculators 0.1.0 → 0.1.2

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.
Files changed (136) hide show
  1. package/CHANGELOG.md +45 -4
  2. package/README.md +47 -5
  3. package/README_EN.md +11 -5
  4. package/dist/ampacity/index.cjs +17 -0
  5. package/dist/ampacity/index.cjs.map +1 -0
  6. package/dist/ampacity/index.d.cts +68 -0
  7. package/dist/ampacity/index.d.ts +68 -0
  8. package/dist/ampacity/index.js +17 -0
  9. package/dist/ampacity/index.js.map +1 -0
  10. package/dist/chunk-3ERFRRHZ.cjs +119 -0
  11. package/dist/chunk-3ERFRRHZ.cjs.map +1 -0
  12. package/dist/chunk-4UU7WA7N.cjs +107 -0
  13. package/dist/chunk-4UU7WA7N.cjs.map +1 -0
  14. package/dist/chunk-5INEDXRY.cjs +69 -0
  15. package/dist/chunk-5INEDXRY.cjs.map +1 -0
  16. package/dist/chunk-5Q6IASB2.cjs +101 -0
  17. package/dist/chunk-5Q6IASB2.cjs.map +1 -0
  18. package/dist/chunk-746H65EQ.js +91 -0
  19. package/dist/chunk-746H65EQ.js.map +1 -0
  20. package/dist/chunk-CVA4EH2K.js +102 -0
  21. package/dist/chunk-CVA4EH2K.js.map +1 -0
  22. package/dist/chunk-DGO2DCO5.cjs +19 -0
  23. package/dist/chunk-DGO2DCO5.cjs.map +1 -0
  24. package/dist/chunk-FVESJBUD.cjs +95 -0
  25. package/dist/chunk-FVESJBUD.cjs.map +1 -0
  26. package/dist/chunk-GN6QNOUL.js +91 -0
  27. package/dist/chunk-GN6QNOUL.js.map +1 -0
  28. package/dist/chunk-IFVYGNT3.js +107 -0
  29. package/dist/chunk-IFVYGNT3.js.map +1 -0
  30. package/dist/chunk-IUENDAAJ.js +67 -0
  31. package/dist/chunk-IUENDAAJ.js.map +1 -0
  32. package/dist/chunk-J2UXRMTU.cjs +126 -0
  33. package/dist/chunk-J2UXRMTU.cjs.map +1 -0
  34. package/dist/chunk-KOSC6EA3.js +101 -0
  35. package/dist/chunk-KOSC6EA3.js.map +1 -0
  36. package/dist/chunk-LDSV3U4M.js +69 -0
  37. package/dist/chunk-LDSV3U4M.js.map +1 -0
  38. package/dist/chunk-MZBQ4546.cjs +102 -0
  39. package/dist/chunk-MZBQ4546.cjs.map +1 -0
  40. package/dist/chunk-NBFOB2PI.cjs +91 -0
  41. package/dist/chunk-NBFOB2PI.cjs.map +1 -0
  42. package/dist/chunk-NBHEOJ5A.cjs +88 -0
  43. package/dist/chunk-NBHEOJ5A.cjs.map +1 -0
  44. package/dist/chunk-P6KUGPHD.cjs +91 -0
  45. package/dist/chunk-P6KUGPHD.cjs.map +1 -0
  46. package/dist/chunk-QTPXTDGY.js +119 -0
  47. package/dist/chunk-QTPXTDGY.js.map +1 -0
  48. package/dist/chunk-RPKDEFSJ.cjs +78 -0
  49. package/dist/chunk-RPKDEFSJ.cjs.map +1 -0
  50. package/dist/chunk-RVG3LEZQ.js +95 -0
  51. package/dist/chunk-RVG3LEZQ.js.map +1 -0
  52. package/dist/chunk-RVP3IU2L.cjs +67 -0
  53. package/dist/chunk-RVP3IU2L.cjs.map +1 -0
  54. package/dist/chunk-UO2PHBC3.js +126 -0
  55. package/dist/chunk-UO2PHBC3.js.map +1 -0
  56. package/dist/chunk-VAHQDIMW.js +88 -0
  57. package/dist/chunk-VAHQDIMW.js.map +1 -0
  58. package/dist/chunk-WPMKM6NL.js +78 -0
  59. package/dist/chunk-WPMKM6NL.js.map +1 -0
  60. package/dist/chunk-YHDO6XVM.js +19 -0
  61. package/dist/chunk-YHDO6XVM.js.map +1 -0
  62. package/dist/copper/index.cjs +12 -0
  63. package/dist/copper/index.cjs.map +1 -0
  64. package/dist/copper/index.d.cts +57 -0
  65. package/dist/copper/index.d.ts +57 -0
  66. package/dist/copper/index.js +12 -0
  67. package/dist/copper/index.js.map +1 -0
  68. package/dist/curve-stagger/index.cjs +17 -0
  69. package/dist/curve-stagger/index.cjs.map +1 -0
  70. package/dist/curve-stagger/index.d.cts +77 -0
  71. package/dist/curve-stagger/index.d.ts +77 -0
  72. package/dist/curve-stagger/index.js +17 -0
  73. package/dist/curve-stagger/index.js.map +1 -0
  74. package/dist/dropper/index.cjs +15 -0
  75. package/dist/dropper/index.cjs.map +1 -0
  76. package/dist/dropper/index.d.cts +84 -0
  77. package/dist/dropper/index.d.ts +84 -0
  78. package/dist/dropper/index.js +15 -0
  79. package/dist/dropper/index.js.map +1 -0
  80. package/dist/force/index.cjs +17 -0
  81. package/dist/force/index.cjs.map +1 -0
  82. package/dist/force/index.d.cts +69 -0
  83. package/dist/force/index.d.ts +69 -0
  84. package/dist/force/index.js +17 -0
  85. package/dist/force/index.js.map +1 -0
  86. package/dist/icing/index.cjs +9 -0
  87. package/dist/icing/index.cjs.map +1 -0
  88. package/dist/icing/index.d.cts +43 -0
  89. package/dist/icing/index.d.ts +43 -0
  90. package/dist/icing/index.js +9 -0
  91. package/dist/icing/index.js.map +1 -0
  92. package/dist/index.cjs +162 -1220
  93. package/dist/index.cjs.map +1 -1
  94. package/dist/index.d.cts +47 -775
  95. package/dist/index.d.ts +47 -775
  96. package/dist/index.js +108 -1063
  97. package/dist/index.js.map +1 -1
  98. package/dist/stroke/index.cjs +19 -0
  99. package/dist/stroke/index.cjs.map +1 -0
  100. package/dist/stroke/index.d.cts +63 -0
  101. package/dist/stroke/index.d.ts +63 -0
  102. package/dist/stroke/index.js +19 -0
  103. package/dist/stroke/index.js.map +1 -0
  104. package/dist/tension/index.cjs +19 -0
  105. package/dist/tension/index.cjs.map +1 -0
  106. package/dist/tension/index.d.cts +85 -0
  107. package/dist/tension/index.d.ts +85 -0
  108. package/dist/tension/index.js +19 -0
  109. package/dist/tension/index.js.map +1 -0
  110. package/dist/types-C2OanO8N.d.cts +33 -0
  111. package/dist/types-C2OanO8N.d.ts +33 -0
  112. package/dist/voltage-drop/index.cjs +12 -0
  113. package/dist/voltage-drop/index.cjs.map +1 -0
  114. package/dist/voltage-drop/index.d.cts +40 -0
  115. package/dist/voltage-drop/index.d.ts +40 -0
  116. package/dist/voltage-drop/index.js +12 -0
  117. package/dist/voltage-drop/index.js.map +1 -0
  118. package/dist/wavespeed/index.cjs +17 -0
  119. package/dist/wavespeed/index.cjs.map +1 -0
  120. package/dist/wavespeed/index.d.cts +58 -0
  121. package/dist/wavespeed/index.d.ts +58 -0
  122. package/dist/wavespeed/index.js +17 -0
  123. package/dist/wavespeed/index.js.map +1 -0
  124. package/dist/wear/index.cjs +13 -0
  125. package/dist/wear/index.cjs.map +1 -0
  126. package/dist/wear/index.d.cts +55 -0
  127. package/dist/wear/index.d.ts +55 -0
  128. package/dist/wear/index.js +13 -0
  129. package/dist/wear/index.js.map +1 -0
  130. package/dist/wind/index.cjs +15 -0
  131. package/dist/wind/index.cjs.map +1 -0
  132. package/dist/wind/index.d.cts +66 -0
  133. package/dist/wind/index.d.ts +66 -0
  134. package/dist/wind/index.js +15 -0
  135. package/dist/wind/index.js.map +1 -0
  136. package/package.json +64 -3
@@ -0,0 +1,85 @@
1
+ import { C as CalculatorMeta } from '../types-C2OanO8N.js';
2
+
3
+ declare const tensionMeta: CalculatorMeta;
4
+
5
+ /** 单个温度档的输入参数 */
6
+ interface TensionPointInput {
7
+ /** 基准工况张力 T₁,kN */
8
+ readonly baseTensionKN: number;
9
+ /** 基准温度 t₁,℃ */
10
+ readonly baseTempDegC: number;
11
+ /** 目标温度 t₂,℃ */
12
+ readonly targetTempDegC: number;
13
+ /** 单位自重荷载 g,N/m(覆冰工况传自重与冰重的组合值) */
14
+ readonly weightPerLengthNPerM: number;
15
+ /** 计算跨距 l,m(多跨锚段传当量跨距 l_D) */
16
+ readonly spanM: number;
17
+ /** 弹性模量 E,GPa */
18
+ readonly elasticModulusGPa: number;
19
+ /** 截面积 A,mm² */
20
+ readonly crossSectionMM2: number;
21
+ /** 线膨胀系数 α,1/℃ */
22
+ readonly expansionPerDegC: number;
23
+ }
24
+ /** 安装曲线公共参数(不含目标温度) */
25
+ type TensionCurveInput = Omit<TensionPointInput, 'targetTempDegC'>;
26
+ /** 单个温度档的计算结果 */
27
+ interface TensionResult {
28
+ /** 目标温度 t₂,℃ */
29
+ readonly targetTempDegC: number;
30
+ /** 该温度下的张力 T₂,kN */
31
+ readonly tensionKN: number;
32
+ /** 跨中弛度 f,m(抛物线近似) */
33
+ readonly sagM: number;
34
+ /** 求解迭代次数 */
35
+ readonly iterations: number;
36
+ /** 状态方程残差,N(用于校验收敛,应接近 0) */
37
+ readonly residualN: number;
38
+ }
39
+ /**
40
+ * 跨中弛度,抛物线近似:f = gl²/(8T)
41
+ * @param weightPerLengthNPerM 单位自重荷载 g,N/m
42
+ * @param spanM 跨距 l,m
43
+ * @param tensionN 张力 T,N
44
+ * @returns 弛度 f,m
45
+ */
46
+ declare function sagM(weightPerLengthNPerM: number, spanM: number, tensionN: number): number;
47
+ /**
48
+ * 当量跨距(多跨锚段归算):l_D = √(Σlᵢ³ / Σlᵢ)
49
+ * @param spansM 各跨跨距,m
50
+ * @returns 当量跨距 l_D,m
51
+ */
52
+ declare function equivalentSpanM(spansM: readonly number[]): number;
53
+ /**
54
+ * 覆冰荷载(均匀冰筒模型)与 icing 模块共用 `src/common/ice.ts`,
55
+ * 由根 index 统一导出,此处不再重复定义。
56
+ */
57
+ /**
58
+ * 状态方程系数 K = g²l²EA/24,单位 N³。
59
+ * 使状态方程可写成 F(T) = T − K/T² 的紧凑形式。
60
+ */
61
+ declare function stateCoefficientK(weightPerLengthNPerM: number, spanM: number, elasticModulusGPa: number, crossSectionMM2: number): number;
62
+ /**
63
+ * 求解状态方程 T − K/T² = target 的正根。
64
+ *
65
+ * h(T) = T − K/T² − target 在 T > 0 上严格单调递增(h′ = 1 + 2K/T³ > 0),
66
+ * 因此用二分法必定收敛。又由 T = target + K/T² 可知 T > target,
67
+ * 可直接取 target 作为下界,bracket 很紧。
68
+ */
69
+ declare function solveTensionN(K: number, targetN: number): {
70
+ tensionN: number;
71
+ iterations: number;
72
+ residualN: number;
73
+ };
74
+ /**
75
+ * 求某一温度档的张力与弛度。
76
+ *
77
+ * 状态方程:T₂ − g²l²EA/(24T₂²) = T₁ − g²l²EA/(24T₁²) − αEA(t₂ − t₁)
78
+ */
79
+ declare function tensionAt(input: TensionPointInput): TensionResult;
80
+ /**
81
+ * 批量求解多个温度档,生成安装曲线表。
82
+ */
83
+ declare function tensionCurve(base: TensionCurveInput, tempsDegC: readonly number[]): TensionResult[];
84
+
85
+ export { type TensionCurveInput, type TensionPointInput, type TensionResult, equivalentSpanM, sagM, solveTensionN, stateCoefficientK, tensionAt, tensionCurve, tensionMeta };
@@ -0,0 +1,19 @@
1
+ import {
2
+ equivalentSpanM,
3
+ sagM,
4
+ solveTensionN,
5
+ stateCoefficientK,
6
+ tensionAt,
7
+ tensionCurve,
8
+ tensionMeta
9
+ } from "../chunk-QTPXTDGY.js";
10
+ export {
11
+ equivalentSpanM,
12
+ sagM,
13
+ solveTensionN,
14
+ stateCoefficientK,
15
+ tensionAt,
16
+ tensionCurve,
17
+ tensionMeta
18
+ };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * 全库公共类型定义。
3
+ *
4
+ * 命名约定(重要):
5
+ * 所有数值字段的单位都写在变量名末尾,例如 tensionKN / spanM / crossSectionMM2。
6
+ * 工程计算里单位混淆是头号 bug 来源,宁可名字长,也不要靠注释记单位。
7
+ */
8
+ /**
9
+ * 每个计算器模块必须导出的元信息。
10
+ * 这是本库区别于"玩具代码"的核心 —— 公式、依据、适用范围、免责声明全部可机读。
11
+ */
12
+ interface CalculatorMeta {
13
+ /** 计算器中文名 */
14
+ readonly name: string;
15
+ /** 计算器英文名,用于国际检索 */
16
+ readonly nameEn: string;
17
+ /** 一句话用途说明 */
18
+ readonly summary: string;
19
+ /** 核心公式,LaTeX 或纯文本,可多条 */
20
+ readonly formula: readonly string[];
21
+ /** 参考依据:标准号、设计手册、教材。注意标注该标准是否真正包含此公式 */
22
+ readonly references: readonly string[];
23
+ /** 适用范围与已知限制 */
24
+ readonly scope: readonly string[];
25
+ /** 免责声明 */
26
+ readonly disclaimer: string;
27
+ /** 在线版本地址 */
28
+ readonly online: string;
29
+ }
30
+ /** 重力加速度,N/kg(m/s²) */
31
+ declare const G0 = 9.81;
32
+
33
+ export { type CalculatorMeta as C, G0 as G };
@@ -0,0 +1,33 @@
1
+ /**
2
+ * 全库公共类型定义。
3
+ *
4
+ * 命名约定(重要):
5
+ * 所有数值字段的单位都写在变量名末尾,例如 tensionKN / spanM / crossSectionMM2。
6
+ * 工程计算里单位混淆是头号 bug 来源,宁可名字长,也不要靠注释记单位。
7
+ */
8
+ /**
9
+ * 每个计算器模块必须导出的元信息。
10
+ * 这是本库区别于"玩具代码"的核心 —— 公式、依据、适用范围、免责声明全部可机读。
11
+ */
12
+ interface CalculatorMeta {
13
+ /** 计算器中文名 */
14
+ readonly name: string;
15
+ /** 计算器英文名,用于国际检索 */
16
+ readonly nameEn: string;
17
+ /** 一句话用途说明 */
18
+ readonly summary: string;
19
+ /** 核心公式,LaTeX 或纯文本,可多条 */
20
+ readonly formula: readonly string[];
21
+ /** 参考依据:标准号、设计手册、教材。注意标注该标准是否真正包含此公式 */
22
+ readonly references: readonly string[];
23
+ /** 适用范围与已知限制 */
24
+ readonly scope: readonly string[];
25
+ /** 免责声明 */
26
+ readonly disclaimer: string;
27
+ /** 在线版本地址 */
28
+ readonly online: string;
29
+ }
30
+ /** 重力加速度,N/kg(m/s²) */
31
+ declare const G0 = 9.81;
32
+
33
+ export { type CalculatorMeta as C, G0 as G };
@@ -0,0 +1,12 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+ var _chunkRVP3IU2Lcjs = require('../chunk-RVP3IU2L.cjs');
6
+ require('../chunk-DGO2DCO5.cjs');
7
+
8
+
9
+
10
+
11
+ exports.DEFAULT_MIN_END_VOLTAGE_V = _chunkRVP3IU2Lcjs.DEFAULT_MIN_END_VOLTAGE_V; exports.voltageDropCheck = _chunkRVP3IU2Lcjs.voltageDropCheck; exports.voltageDropMeta = _chunkRVP3IU2Lcjs.voltageDropMeta;
12
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/voltage-drop/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACF,4MAAC","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/voltage-drop/index.cjs"}
@@ -0,0 +1,40 @@
1
+ import { C as CalculatorMeta } from '../types-C2OanO8N.cjs';
2
+
3
+ declare const voltageDropMeta: CalculatorMeta;
4
+
5
+ /** 25kV 体系常用的末端电压下限,V */
6
+ declare const DEFAULT_MIN_END_VOLTAGE_V = 20000;
7
+ interface VoltageDropInput {
8
+ /** 变电所母线电压 U₀,V */
9
+ readonly busVoltageV: number;
10
+ /** 持续电流 I,A */
11
+ readonly currentA: number;
12
+ /** 20℃ 单位电阻 r₂₀,Ω/km */
13
+ readonly r20OhmPerKm: number;
14
+ /** 供电臂等效长度 L,km */
15
+ readonly feederLengthKm: number;
16
+ /** 环境温度 T,℃。缺省 25 */
17
+ readonly tempDegC?: number;
18
+ /** 并联导线数。缺省 1 */
19
+ readonly parallelCount?: number;
20
+ /** 末端最低允许电压,V。缺省 20000 */
21
+ readonly minEndVoltageV?: number;
22
+ }
23
+ interface VoltageDropResult {
24
+ /** 温度修正(并含并联折减)后的单位电阻 r_T,Ω/km */
25
+ readonly rTOhmPerKm: number;
26
+ /** 电压损失 ΔU,V */
27
+ readonly voltageDropV: number;
28
+ /** 末端电压 U_end,V */
29
+ readonly endVoltageV: number;
30
+ /** 压降率,% */
31
+ readonly dropPercent: number;
32
+ /** 末端电压是否满足要求 */
33
+ readonly passes: boolean;
34
+ }
35
+ /**
36
+ * 电压降校核:ΔU = I·r_T·L(并联 n 路时 r_T/n),U_end = U₀ − ΔU。
37
+ */
38
+ declare function voltageDropCheck(input: VoltageDropInput): VoltageDropResult;
39
+
40
+ export { DEFAULT_MIN_END_VOLTAGE_V, type VoltageDropInput, type VoltageDropResult, voltageDropCheck, voltageDropMeta };
@@ -0,0 +1,40 @@
1
+ import { C as CalculatorMeta } from '../types-C2OanO8N.js';
2
+
3
+ declare const voltageDropMeta: CalculatorMeta;
4
+
5
+ /** 25kV 体系常用的末端电压下限,V */
6
+ declare const DEFAULT_MIN_END_VOLTAGE_V = 20000;
7
+ interface VoltageDropInput {
8
+ /** 变电所母线电压 U₀,V */
9
+ readonly busVoltageV: number;
10
+ /** 持续电流 I,A */
11
+ readonly currentA: number;
12
+ /** 20℃ 单位电阻 r₂₀,Ω/km */
13
+ readonly r20OhmPerKm: number;
14
+ /** 供电臂等效长度 L,km */
15
+ readonly feederLengthKm: number;
16
+ /** 环境温度 T,℃。缺省 25 */
17
+ readonly tempDegC?: number;
18
+ /** 并联导线数。缺省 1 */
19
+ readonly parallelCount?: number;
20
+ /** 末端最低允许电压,V。缺省 20000 */
21
+ readonly minEndVoltageV?: number;
22
+ }
23
+ interface VoltageDropResult {
24
+ /** 温度修正(并含并联折减)后的单位电阻 r_T,Ω/km */
25
+ readonly rTOhmPerKm: number;
26
+ /** 电压损失 ΔU,V */
27
+ readonly voltageDropV: number;
28
+ /** 末端电压 U_end,V */
29
+ readonly endVoltageV: number;
30
+ /** 压降率,% */
31
+ readonly dropPercent: number;
32
+ /** 末端电压是否满足要求 */
33
+ readonly passes: boolean;
34
+ }
35
+ /**
36
+ * 电压降校核:ΔU = I·r_T·L(并联 n 路时 r_T/n),U_end = U₀ − ΔU。
37
+ */
38
+ declare function voltageDropCheck(input: VoltageDropInput): VoltageDropResult;
39
+
40
+ export { DEFAULT_MIN_END_VOLTAGE_V, type VoltageDropInput, type VoltageDropResult, voltageDropCheck, voltageDropMeta };
@@ -0,0 +1,12 @@
1
+ import {
2
+ DEFAULT_MIN_END_VOLTAGE_V,
3
+ voltageDropCheck,
4
+ voltageDropMeta
5
+ } from "../chunk-IUENDAAJ.js";
6
+ import "../chunk-YHDO6XVM.js";
7
+ export {
8
+ DEFAULT_MIN_END_VOLTAGE_V,
9
+ voltageDropCheck,
10
+ voltageDropMeta
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+ var _chunkNBHEOJ5Acjs = require('../chunk-NBHEOJ5A.cjs');
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+ exports.DEFAULT_WARN_THRESHOLD = _chunkNBHEOJ5Acjs.DEFAULT_WARN_THRESHOLD; exports.kmHToMPerS = _chunkNBHEOJ5Acjs.kmHToMPerS; exports.naturalFrequencyHz = _chunkNBHEOJ5Acjs.naturalFrequencyHz; exports.wavePropagationSpeedMPerS = _chunkNBHEOJ5Acjs.wavePropagationSpeedMPerS; exports.waveSpeedCheck = _chunkNBHEOJ5Acjs.waveSpeedCheck; exports.wavespeedMeta = _chunkNBHEOJ5Acjs.wavespeedMeta;
17
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/wavespeed/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,qYAAC","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/wavespeed/index.cjs"}
@@ -0,0 +1,58 @@
1
+ import { C as CalculatorMeta } from '../types-C2OanO8N.cjs';
2
+
3
+ declare const wavespeedMeta: CalculatorMeta;
4
+
5
+ /** 波速利用率告警阈值(工程经验值) */
6
+ declare const DEFAULT_WARN_THRESHOLD = 0.7;
7
+ interface WaveSpeedInput {
8
+ /** 接触线张力 T,kN */
9
+ readonly tensionKN: number;
10
+ /** 线密度 ρ,kg/m */
11
+ readonly linearMassKgPerM: number;
12
+ /** 列车速度 v,km/h */
13
+ readonly speedKmH: number;
14
+ /** 跨距 l,m */
15
+ readonly spanM: number;
16
+ /** 告警阈值 β。缺省 0.7 */
17
+ readonly warnThreshold?: number;
18
+ }
19
+ interface WaveSpeedResult {
20
+ /** 波传播速度 c = √(T/ρ),m/s */
21
+ readonly waveSpeedMPerS: number;
22
+ /** 波速利用率 β = v/c,无量纲 */
23
+ readonly beta: number;
24
+ /** 波速利用率,% */
25
+ readonly betaPercent: number;
26
+ /** 前三阶固有频率 f₁ ~ f₃,Hz */
27
+ readonly naturalFrequenciesHz: readonly number[];
28
+ /** 一阶共振车速 v_res = f₁·l,km/h */
29
+ readonly resonanceSpeedKmH: number;
30
+ /** β 是否达到告警阈值 */
31
+ readonly warn: boolean;
32
+ }
33
+ /**
34
+ * 波传播速度:c = √(T/ρ),m/s。
35
+ *
36
+ * @param tensionKN 接触线张力 T,kN
37
+ * @param linearMassKgPerM 线密度 ρ,kg/m
38
+ */
39
+ declare function wavePropagationSpeedMPerS(tensionKN: number, linearMassKgPerM: number): number;
40
+ /**
41
+ * 两端固定弦第 n 阶固有频率:f_n = n/(2L)·√(T/ρ) = n·c/(2L),Hz。
42
+ *
43
+ * @param n 阶次,正整数
44
+ * @param spanM 跨距 L,m
45
+ * @param waveSpeedMPerS 波速 c,m/s
46
+ */
47
+ declare function naturalFrequencyHz(n: number, spanM: number, waveSpeedMPerS: number): number;
48
+ /** km/h → m/s */
49
+ declare function kmHToMPerS(speedKmH: number): number;
50
+ /**
51
+ * 波速利用率校核。
52
+ *
53
+ * β = v/c;β 越接近 1 越接近共振区,达到阈值(默认 0.7)时告警。
54
+ * 一阶共振车速 v_res 为跨距通过频率与一阶固有频率相遇时的车速。
55
+ */
56
+ declare function waveSpeedCheck(input: WaveSpeedInput): WaveSpeedResult;
57
+
58
+ export { DEFAULT_WARN_THRESHOLD, type WaveSpeedInput, type WaveSpeedResult, kmHToMPerS, naturalFrequencyHz, wavePropagationSpeedMPerS, waveSpeedCheck, wavespeedMeta };
@@ -0,0 +1,58 @@
1
+ import { C as CalculatorMeta } from '../types-C2OanO8N.js';
2
+
3
+ declare const wavespeedMeta: CalculatorMeta;
4
+
5
+ /** 波速利用率告警阈值(工程经验值) */
6
+ declare const DEFAULT_WARN_THRESHOLD = 0.7;
7
+ interface WaveSpeedInput {
8
+ /** 接触线张力 T,kN */
9
+ readonly tensionKN: number;
10
+ /** 线密度 ρ,kg/m */
11
+ readonly linearMassKgPerM: number;
12
+ /** 列车速度 v,km/h */
13
+ readonly speedKmH: number;
14
+ /** 跨距 l,m */
15
+ readonly spanM: number;
16
+ /** 告警阈值 β。缺省 0.7 */
17
+ readonly warnThreshold?: number;
18
+ }
19
+ interface WaveSpeedResult {
20
+ /** 波传播速度 c = √(T/ρ),m/s */
21
+ readonly waveSpeedMPerS: number;
22
+ /** 波速利用率 β = v/c,无量纲 */
23
+ readonly beta: number;
24
+ /** 波速利用率,% */
25
+ readonly betaPercent: number;
26
+ /** 前三阶固有频率 f₁ ~ f₃,Hz */
27
+ readonly naturalFrequenciesHz: readonly number[];
28
+ /** 一阶共振车速 v_res = f₁·l,km/h */
29
+ readonly resonanceSpeedKmH: number;
30
+ /** β 是否达到告警阈值 */
31
+ readonly warn: boolean;
32
+ }
33
+ /**
34
+ * 波传播速度:c = √(T/ρ),m/s。
35
+ *
36
+ * @param tensionKN 接触线张力 T,kN
37
+ * @param linearMassKgPerM 线密度 ρ,kg/m
38
+ */
39
+ declare function wavePropagationSpeedMPerS(tensionKN: number, linearMassKgPerM: number): number;
40
+ /**
41
+ * 两端固定弦第 n 阶固有频率:f_n = n/(2L)·√(T/ρ) = n·c/(2L),Hz。
42
+ *
43
+ * @param n 阶次,正整数
44
+ * @param spanM 跨距 L,m
45
+ * @param waveSpeedMPerS 波速 c,m/s
46
+ */
47
+ declare function naturalFrequencyHz(n: number, spanM: number, waveSpeedMPerS: number): number;
48
+ /** km/h → m/s */
49
+ declare function kmHToMPerS(speedKmH: number): number;
50
+ /**
51
+ * 波速利用率校核。
52
+ *
53
+ * β = v/c;β 越接近 1 越接近共振区,达到阈值(默认 0.7)时告警。
54
+ * 一阶共振车速 v_res 为跨距通过频率与一阶固有频率相遇时的车速。
55
+ */
56
+ declare function waveSpeedCheck(input: WaveSpeedInput): WaveSpeedResult;
57
+
58
+ export { DEFAULT_WARN_THRESHOLD, type WaveSpeedInput, type WaveSpeedResult, kmHToMPerS, naturalFrequencyHz, wavePropagationSpeedMPerS, waveSpeedCheck, wavespeedMeta };
@@ -0,0 +1,17 @@
1
+ import {
2
+ DEFAULT_WARN_THRESHOLD,
3
+ kmHToMPerS,
4
+ naturalFrequencyHz,
5
+ wavePropagationSpeedMPerS,
6
+ waveSpeedCheck,
7
+ wavespeedMeta
8
+ } from "../chunk-VAHQDIMW.js";
9
+ export {
10
+ DEFAULT_WARN_THRESHOLD,
11
+ kmHToMPerS,
12
+ naturalFrequencyHz,
13
+ wavePropagationSpeedMPerS,
14
+ waveSpeedCheck,
15
+ wavespeedMeta
16
+ };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+ var _chunk5INEDXRYcjs = require('../chunk-5INEDXRY.cjs');
7
+
8
+
9
+
10
+
11
+
12
+ exports.DEFAULT_REPLACEMENT_THRESHOLD_PERCENT = _chunk5INEDXRYcjs.DEFAULT_REPLACEMENT_THRESHOLD_PERCENT; exports.sectionFromDiameterMM2 = _chunk5INEDXRYcjs.sectionFromDiameterMM2; exports.wearMeta = _chunk5INEDXRYcjs.wearMeta; exports.wearRatio = _chunk5INEDXRYcjs.wearRatio;
13
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/wear/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACF,mRAAC","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/wear/index.cjs"}
@@ -0,0 +1,55 @@
1
+ import { C as CalculatorMeta } from '../types-C2OanO8N.cjs';
2
+
3
+ declare const wearMeta: CalculatorMeta;
4
+
5
+ /** 更换阈值缺省值:η > 20% 建议更换接触线 */
6
+ declare const DEFAULT_REPLACEMENT_THRESHOLD_PERCENT = 20;
7
+ /** 磨耗计算公共输入 */
8
+ interface WearBaseInput {
9
+ /** 原截面积 A₀,mm² */
10
+ readonly originalSectionMM2: number;
11
+ /** 更换阈值 η,%。缺省 20 */
12
+ readonly replacementThresholdPercent?: number;
13
+ }
14
+ /** 按实测残截面积计算 */
15
+ interface WearByAreaInput extends WearBaseInput {
16
+ readonly mode: 'area';
17
+ /** 实测残截面积 A,mm²,不得大于 A₀ */
18
+ readonly residualSectionMM2: number;
19
+ }
20
+ /** 按实测残径计算(圆截面近似 A = πd²/4) */
21
+ interface WearByDiameterInput extends WearBaseInput {
22
+ readonly mode: 'residual-diameter';
23
+ /** 实测残径 d,mm */
24
+ readonly residualDiameterMM: number;
25
+ }
26
+ type WearInput = WearByAreaInput | WearByDiameterInput;
27
+ /** 判定结论:keep = 继续使用,replace = 建议更换 */
28
+ type WearVerdict = 'keep' | 'replace';
29
+ /** 磨耗率计算结果 */
30
+ interface WearResult {
31
+ /** 原截面积 A₀,mm² */
32
+ readonly originalSectionMM2: number;
33
+ /** 参与计算的残截面积 A,mm²(残径模式为换算值) */
34
+ readonly residualSectionMM2: number;
35
+ /** 截面损失 A₀ − A,mm² */
36
+ readonly sectionLossMM2: number;
37
+ /** 磨耗率 η,% */
38
+ readonly wearPercent: number;
39
+ /** 使用的更换阈值,% */
40
+ readonly thresholdPercent: number;
41
+ readonly verdict: WearVerdict;
42
+ }
43
+ /** 圆截面近似:由实测残径 d(mm)换算残截面积 A = π·d²/4(mm²) */
44
+ declare function sectionFromDiameterMM2(diameterMM: number): number;
45
+ /**
46
+ * 接触线磨耗率:η = (A₀ − A) / A₀ × 100%。
47
+ *
48
+ * 支持两种输入模式:直接给残截面积(`mode: 'area'`),或给实测残径
49
+ * 按 A = π·d²/4 换算(`mode: 'residual-diameter'`)。
50
+ *
51
+ * 判定:η **严格大于**阈值(缺省 20%)判为 `replace`,等于阈值仍为 `keep`。
52
+ */
53
+ declare function wearRatio(input: WearInput): WearResult;
54
+
55
+ export { DEFAULT_REPLACEMENT_THRESHOLD_PERCENT, type WearBaseInput, type WearByAreaInput, type WearByDiameterInput, type WearInput, type WearResult, type WearVerdict, sectionFromDiameterMM2, wearMeta, wearRatio };
@@ -0,0 +1,55 @@
1
+ import { C as CalculatorMeta } from '../types-C2OanO8N.js';
2
+
3
+ declare const wearMeta: CalculatorMeta;
4
+
5
+ /** 更换阈值缺省值:η > 20% 建议更换接触线 */
6
+ declare const DEFAULT_REPLACEMENT_THRESHOLD_PERCENT = 20;
7
+ /** 磨耗计算公共输入 */
8
+ interface WearBaseInput {
9
+ /** 原截面积 A₀,mm² */
10
+ readonly originalSectionMM2: number;
11
+ /** 更换阈值 η,%。缺省 20 */
12
+ readonly replacementThresholdPercent?: number;
13
+ }
14
+ /** 按实测残截面积计算 */
15
+ interface WearByAreaInput extends WearBaseInput {
16
+ readonly mode: 'area';
17
+ /** 实测残截面积 A,mm²,不得大于 A₀ */
18
+ readonly residualSectionMM2: number;
19
+ }
20
+ /** 按实测残径计算(圆截面近似 A = πd²/4) */
21
+ interface WearByDiameterInput extends WearBaseInput {
22
+ readonly mode: 'residual-diameter';
23
+ /** 实测残径 d,mm */
24
+ readonly residualDiameterMM: number;
25
+ }
26
+ type WearInput = WearByAreaInput | WearByDiameterInput;
27
+ /** 判定结论:keep = 继续使用,replace = 建议更换 */
28
+ type WearVerdict = 'keep' | 'replace';
29
+ /** 磨耗率计算结果 */
30
+ interface WearResult {
31
+ /** 原截面积 A₀,mm² */
32
+ readonly originalSectionMM2: number;
33
+ /** 参与计算的残截面积 A,mm²(残径模式为换算值) */
34
+ readonly residualSectionMM2: number;
35
+ /** 截面损失 A₀ − A,mm² */
36
+ readonly sectionLossMM2: number;
37
+ /** 磨耗率 η,% */
38
+ readonly wearPercent: number;
39
+ /** 使用的更换阈值,% */
40
+ readonly thresholdPercent: number;
41
+ readonly verdict: WearVerdict;
42
+ }
43
+ /** 圆截面近似:由实测残径 d(mm)换算残截面积 A = π·d²/4(mm²) */
44
+ declare function sectionFromDiameterMM2(diameterMM: number): number;
45
+ /**
46
+ * 接触线磨耗率:η = (A₀ − A) / A₀ × 100%。
47
+ *
48
+ * 支持两种输入模式:直接给残截面积(`mode: 'area'`),或给实测残径
49
+ * 按 A = π·d²/4 换算(`mode: 'residual-diameter'`)。
50
+ *
51
+ * 判定:η **严格大于**阈值(缺省 20%)判为 `replace`,等于阈值仍为 `keep`。
52
+ */
53
+ declare function wearRatio(input: WearInput): WearResult;
54
+
55
+ export { DEFAULT_REPLACEMENT_THRESHOLD_PERCENT, type WearBaseInput, type WearByAreaInput, type WearByDiameterInput, type WearInput, type WearResult, type WearVerdict, sectionFromDiameterMM2, wearMeta, wearRatio };
@@ -0,0 +1,13 @@
1
+ import {
2
+ DEFAULT_REPLACEMENT_THRESHOLD_PERCENT,
3
+ sectionFromDiameterMM2,
4
+ wearMeta,
5
+ wearRatio
6
+ } from "../chunk-LDSV3U4M.js";
7
+ export {
8
+ DEFAULT_REPLACEMENT_THRESHOLD_PERCENT,
9
+ sectionFromDiameterMM2,
10
+ wearMeta,
11
+ wearRatio
12
+ };
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+ var _chunkFVESJBUDcjs = require('../chunk-FVESJBUD.cjs');
8
+
9
+
10
+
11
+
12
+
13
+
14
+ exports.AIR_DENSITY_KG_PER_M3 = _chunkFVESJBUDcjs.AIR_DENSITY_KG_PER_M3; exports.windClearanceCheck = _chunkFVESJBUDcjs.windClearanceCheck; exports.windDeflectionM = _chunkFVESJBUDcjs.windDeflectionM; exports.windLoadNPerM = _chunkFVESJBUDcjs.windLoadNPerM; exports.windMeta = _chunkFVESJBUDcjs.windMeta;
15
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/ocs-calculators/ocs-calculators/dist/wind/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACF,gTAAC","file":"/home/runner/work/ocs-calculators/ocs-calculators/dist/wind/index.cjs"}