iec60909/part4/
section6.rs1extern crate self as iec60909;
2
3use anyhow::Result;
4
5use iec60909::*;
6
7pub fn iec60909_4_6() -> Result<ACSystem<&'static str>> {
9 let b1 = busbar!(380, "1-T3", "1-Q1", "1-T4"); let b2 = busbar!(110, "2-T3", "2-T4", "2-L3");
11 let b3 = busbar!(110, "3-T2", "3-L1", "3-L4");
12 let b4 = busbar!(110, "4-T1", "4-L2", "4-L5");
13 let b5 = busbar!(110, "5-L4", "5-L3", "5-L5", "5-T5", "5-Q2", "5-T6");
14 let b6 = busbar!(10, "6-G3", "6-L6");
15 let b7 = busbar!(10, "7-M1", "7-L6", "7-M2");
16 let b8 = busbar!(30, "8");
17 let g1 = SynchronousGenerator::new()
22 .node("G1")
23 .ur(21)
24 .sr(150_000)
25 .xdpp(0.14)
26 .xdsat(1.8)
27 .cos_phi(0.85)
28 .r(0.002) .build()?;
30 let t1 = NetworkTransformer::new()
31 .node_lv("G1")
32 .node_hv("4-T1")
33 .ur_hv(115)
34 .ur_lv(21)
35 .sr(150_000)
36 .ukr(16)
37 .urr(0.5)
38 .p(12) .x0x(0.95)
40 .r0r(1.0)
41 .build()?;
42
43 let g2 = SynchronousGenerator::new()
44 .node("G2")
45 .ur(10.5)
46 .sr(100_000)
47 .p(7.5)
48 .xdpp(0.16)
49 .xdsat(2.0)
50 .cos_phi(0.9)
51 .r(0.005)
52 .build()?;
53 let t2 = NetworkTransformer::new()
54 .node_lv("G2")
55 .node_hv("3-T2")
56 .ur_hv(120.0)
57 .ur_lv(10.5)
58 .sr(100e3)
59 .ukr(12.0)
60 .urr(0.5) .x0x(1.0)
62 .r0r(1.0)
63 .build()?;
64
65 let g3 = SynchronousGenerator::new()
66 .node("6-G3")
67 .ur(10.5)
68 .sr(10_000)
69 .p(5.0) .xdpp(0.1)
71 .xdsat(1.8)
72 .cos_phi(0.8)
73 .r(0.018)
74 .build()?;
75
76 let t3 = ThreeWindingTransformer::new()
81 .node_hv("1-T3")
82 .node_mv("2-T3")
83 .node_lv("8")
84 .ur_hv(400)
85 .ur_mv(120)
86 .ur_lv(30)
87 .sr_hv_mv(350_000)
88 .sr_mv_lv(50_000)
89 .sr_hv_lv(50_000)
90 .ukr_hv_mv(21)
91 .ukr_hv_lv(10)
92 .ukr_mv_lv(7)
93 .urr_hv_mv(0.26)
94 .urr_hv_lv(0.16)
95 .urr_mv_lv(0.16)
96 .build()?;
98 let t4 = ThreeWindingTransformer::new()
99 .node_hv("1-T4")
100 .node_mv("2-T4")
101 .node_lv("9")
102 .ur_hv(400)
103 .ur_mv(120)
104 .ur_lv(30)
105 .sr_hv_mv(350_000)
106 .sr_mv_lv(50_000)
107 .sr_hv_lv(50_000)
108 .ukr_hv_mv(21)
109 .ukr_hv_lv(10)
110 .ukr_mv_lv(7)
111 .urr_hv_mv(0.26)
112 .urr_hv_lv(0.16)
113 .urr_mv_lv(0.16)
114 .build()?;
116 let t5 = NetworkTransformer::new()
129 .node_hv("5-T5")
130 .node_lv("6-G3")
131 .ur_hv(115)
132 .ur_lv(10.5)
133 .sr(31_500)
134 .ukr(12.0)
135 .urr(0.5)
136 .build()?;
137 let t6 = NetworkTransformer::new()
138 .node_hv("5-T6")
139 .node_lv("6-L6")
140 .ur_hv(115)
141 .ur_lv(10.5)
142 .sr(31_500)
143 .ukr(12.0)
144 .urr(0.5)
145 .build()?;
146
147 let q1 = NetworkFeeder::new()
148 .node("1-Q1")
150 .ur(380)
151 .ikss(38)
152 .rx(0.1)
153 .x0x(3.0)
154 .r0x(0.15)
155 .tr(t3.ur_hv / t3.ur_mv)
156 .build()?;
157 let q2 = NetworkFeeder::new()
158 .node("5-Q2")
159 .ur(110)
160 .ikss(16)
161 .rx(0.1)
162 .x0x(3.3)
163 .r0x(0.20)
164 .build()?;
165
166 let m1 = AsynchronousMotor::new()
167 .node("7-M1")
168 .ur(10)
169 .pr(5e3)
170 .cos_phi(0.88)
171 .eta(97.5)
172 .ilr_ir(5.0)
173 .p(1)
174 .build()?;
175 let m2 = AsynchronousMotor::new()
177 .node("7-M2")
178 .ur(10)
179 .pr(2_000)
180 .cos_phi(0.89)
181 .eta(96.8)
182 .ilr_ir(5.2)
183 .p(2)
184 .n(2)
185 .build()?;
186
187 let r1 = Reactor::new().xr(22.0).build()?; let r6 = Reactor::new().ukr(10.0).build()?;
191
192 let l1 = OverheadLine::new()
193 .node_i("2-T3")
194 .node_j("3-L1")
195 .l(20)
196 .rl(0.12)
197 .xl(0.39)
198 .r0(0.32)
199 .x0(1.26)
200 .build()?;
201 let l2 = OverheadLine::new()
202 .node_i("3-L1")
203 .node_j("4-L2")
204 .l(10)
205 .rl(0.12)
206 .xl(0.39)
207 .r0(0.32)
208 .x0(1.26)
209 .build()?;
210 let l3 = OverheadLine::new()
211 .node_i("2-L3")
212 .node_j("5-L3")
213 .l(5)
214 .rl(0.12)
215 .xl(0.39)
216 .r0(0.52)
217 .x0(1.86)
218 .parallel(2) .build()?;
220 let l4 = OverheadLine::new()
221 .node_i("5-L4")
222 .node_j("3-L4")
223 .l(10)
224 .rl(0.096)
225 .xl(0.388)
226 .r0(0.22)
227 .x0(1.10)
228 .build()?;
229 let l5 = OverheadLine::new()
230 .node_i("5-L5")
231 .node_j("4-L5")
232 .l(15)
233 .rl(0.12)
234 .xl(0.386)
235 .r0(0.22)
236 .x0(1.10)
237 .build()?;
238
239 let l6 = Cable::new()
240 .node_i("6-L6")
241 .node_j("7-L6")
242 .ur(10)
243 .l(1)
244 .rl(0.082)
245 .xl(0.086)
246 .build()?;
247
248 let ac_system = ACSystem::new()
249 .frequency(50)
250 .busbars([b1, b2, b8, b5, b6, b7, b3, b4])
251 .feeders([q1, q2])
252 .power_station(PowerStationUnit {
253 generator: g1,
254 transformer: t1,
255 })
256 .power_station(PowerStationUnit {
257 generator: g2,
258 transformer: t2,
259 })
260 .generator(g3)
261 .three_winding_transformers([t3, t4])
262 .transformers([t5, t6])
263 .motors([m1, m2])
264 .reactors([r1, r6])
265 .lines([l1, l2, l3, l4, l5])
266 .cable(l6)
267 .build()?;
268
269 Ok(ac_system)
270}