1
- abstract type
2
- RenewableGen <: Generator
3
- end
1
+ abstract type RenewableGen <: Generator end
4
2
5
- struct RenewableFix <: RenewableGen
3
+ struct RenewableGenBase
6
4
name:: String
7
5
available:: Bool
8
6
bus:: Bus
9
7
tech:: TechRenewable
10
8
internal:: PowerSystemInternal
11
9
end
12
10
11
+ function RenewableGenBase (name, available, bus, tech)
12
+ return RenewableGenBase (name, available, bus, tech, PowerSystemInternal ())
13
+ end
14
+
15
+ RenewableGenBase (; name= " init" ,
16
+ status= false ,
17
+ bus= Bus (),
18
+ installedcapacity= 0.0 ) = RenewableGenBase (name, status, bus,
19
+ installedcapacity)
20
+
21
+ @forward ((RenewableGenBase, :internal ), PowerSystemInternal)
22
+
23
+ name (value:: RenewableGenBase ) = value. name
24
+ available (value:: RenewableGenBase ) = value. available
25
+ bus (value:: RenewableGenBase ) = value. bus
26
+ tech (value:: RenewableGenBase ) = value. tech
27
+
28
+ struct RenewableFix <: RenewableGen
29
+ base:: RenewableGenBase
30
+ end
31
+
13
32
function RenewableFix (name, available, bus, tech)
14
- return RenewableFix (name, available, bus, tech, PowerSystemInternal ( ))
33
+ return RenewableFix (RenewableGenBase ( name, available, bus, tech))
15
34
end
16
35
17
36
""" Accepts installedcapacity as a Float64 and then creates a TechRenewable."""
18
37
function RenewableFix (name, status, bus, installedcapacity:: Float64 )
19
38
tech = TechRenewable (installedcapacity, nothing , 1.0 )
20
- RenewableFix (name, status, bus, tech)
39
+ RenewableFix (RenewableGenBase ( name, status, bus, tech) )
21
40
end
22
41
23
42
RenewableFix (; name= " init" ,
24
43
status = false ,
25
44
bus = Bus (),
26
45
installedcapacity = 0.0 ) = RenewableFix (name, status, bus, installedcapacity)
27
46
47
+ @forward ((RenewableFix, :base ), RenewableGenBase)
48
+
28
49
struct RenewableCurtailment <: RenewableGen
29
- name:: String
30
- available:: Bool
31
- bus:: Bus
32
- tech:: TechRenewable
50
+ base:: RenewableGenBase
33
51
econ:: Union{EconRenewable,Nothing}
34
- internal:: PowerSystemInternal
35
52
end
36
53
37
54
function RenewableCurtailment (name, available, bus, tech, econ)
38
- return RenewableCurtailment (name, available, bus, tech, econ, PowerSystemInternal () )
55
+ return RenewableCurtailment (RenewableGenBase ( name, available, bus, tech) , econ)
39
56
end
40
57
41
58
""" Accepts installedcapacity as a Float64 and then creates a TechRenewable."""
@@ -50,21 +67,32 @@ RenewableCurtailment(; name = "init",
50
67
installedcapacity = 0.0 ,
51
68
econ = EconRenewable ()) = RenewableCurtailment (name, status, bus, installedcapacity, econ)
52
69
70
+ econ (value:: RenewableCurtailment ) = value. econ
71
+
72
+ @forward ((RenewableCurtailment, :base ), RenewableGenBase)
73
+
53
74
struct RenewableFullDispatch <: RenewableGen
54
- name:: String
55
- available:: Bool
56
- bus:: Bus
57
- tech:: TechRenewable
75
+ base:: RenewableGenBase
58
76
econ:: Union{EconRenewable,Nothing}
59
- internal:: PowerSystemInternal
60
77
end
61
78
62
79
function RenewableFullDispatch (name, available, bus, tech, econ)
63
- return RenewableFullDispatch (name, available, bus, tech, econ, PowerSystemInternal () )
80
+ return RenewableFullDispatch (RenewableGenBase ( name, available, bus, tech) , econ)
64
81
end
65
82
66
- RenewableFullDispatch (; name = " init" ,
67
- status = false ,
68
- bus= Bus (),
69
- installedcapacity = 0.0 ,
70
- econ = EconRenewable ()) = RenewableCurtailment (name, status, bus, installedcapacity, econ)
83
+ function RenewableFullDispatch (; name = " init" ,
84
+ status = false ,
85
+ bus= Bus (),
86
+ installedcapacity = 0.0 ,
87
+ econ = EconRenewable ())
88
+ rc = RenewableCurtailment (name, status, bus, installedcapacity, econ)
89
+ return RenewableFullDispatch (PowerSystems. name (rc),
90
+ PowerSystems. available (rc),
91
+ PowerSystems. bus (rc),
92
+ PowerSystems. tech (rc),
93
+ PowerSystems. econ (rc))
94
+ end
95
+
96
+ econ (value:: RenewableFullDispatch ) = value. econ
97
+
98
+ @forward ((RenewableFullDispatch, :base ), RenewableGenBase)
0 commit comments