/[ascend]/trunk/models/johnpye/simple_pv.a4c
ViewVC logotype

Contents of /trunk/models/johnpye/simple_pv.a4c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2051 - (show annotations) (download) (as text)
Mon Jun 15 14:09:54 2009 UTC (11 years ago) by jpye
File MIME type: text/x-ascend
File size: 5131 byte(s)
Add simple_pv model from Ioan-Alexandru Lazar.
1 REQUIRE "atoms.a4l";
2
3 (*
4 This model was contributed by Ioan-Alexandru Lazar, 2009. It still needs
5 checking and validation by the ASCEND team.
6
7 This model implements a simple PV module, as described by Duffie & Beckman,
8 Chapter 23.2.
9
10 The atoms are defined in this file for brevity; conductance should really go
11 into atoms.a4l. ctc and vtc are application-specific and should probably stay
12 here, or go into a separate file required only by PV-related application.
13
14 The model is purely demonstrative. It does not take into account the dependence
15 between the maximum power point efficiency and temperature. It is also left
16 unparameterized, in the idea that it is rather unlikely for several instances
17 of this model to be used in another model.
18 *)
19 ATOM ctc REFINES solver_var
20 (* Temperature coefficient for short-circuit current *)
21 DIMENSION E/TMP
22 DEFAULT 0.0{A/K};
23 lower_bound := -0.5{A/K};
24 upper_bound := 0.5{A/K};
25 nominal := 0.0{A/K};
26 END ctc;
27
28 ATOM vtc REFINES solver_var
29 (* Temperature coefficient for open-circuit voltage *)
30 DIMENSION M*L^2/(E*T^3*TMP)
31 DEFAULT 0.0{volt/K};
32 lower_bound := -0.5{volt/K};
33 upper_bound := 0.5{volt/K};
34 nominal := 0.0{volt/K};
35 END vtc;
36
37 ATOM conductance REFINES solver_var
38 (* Conductance defined as ohm^-1 or Siemens *)
39 DIMENSION E^2*T^3/(M*L^2)
40 DEFAULT 10.0{ohm^-1};
41 lower_bound := -1e50{ohm^-1};
42 upper_bound := 1e50{ohm^-1};
43 nominal := 10.0{ohm^-1};
44 END conductance;
45
46 MODEL simple_pv_module;
47 NOTES
48 'reference conditions' SELF {Reference conditions are defined by reference temperature and irradiance, open-circuit voltage and short-circuit current. Under these conditions, we can obtain a reference load current (equal to the short-circuit current), a reference inverse current through the diode and the value of a under these conditions. The open-circuit voltage and short-circuit current are usually provided by the producer or measured directly. Standard irradiance is equal to the solar constant and roughly taken as 1,000 throughout this model. The reference temperature is usually supplied by the producer as well; if not, it is measured directly when the other reference values are taken.}
49
50 END NOTES;
51 surf IS_A area; (* Surface of the PV array *)
52 Il IS_A current; (* Load current *)
53 I_lref IS_A current; (* Reference load current *)
54 Isc IS_A current; (* Short-circuit current *)
55 Imp IS_A current; (* Supplied current *)
56 Io IS_A current; (* Inverse current through diode *)
57 I_oref IS_A current; (* Reference inverse current through diode *)
58 Voc IS_A voltage; (* Open-circuit voltage *)
59 Vmp IS_A voltage; (* Supplied voltage *)
60 Rs IS_A resistance; (* Shunt resistance *)
61 Tc IS_A temperature; (* Cell's temperature *)
62 T_cref IS_A temperature; (* Reference cell temperature *)
63 G_T IS_A irradiance; (* Irradiance *)
64 G_Tref IS_A irradiance; (* Reference irradiance *)
65 u_Isc IS_A ctc; (* Temperature coefficient of short-circuit current *)
66 u_Voc IS_A vtc; (* Temperature coefficient of open-circuit voltage *)
67 P IS_A energy_rate; (* Cell's power *)
68 eps IS_A energy; (* Bandgap energy *)
69 Ns IS_A solver_var; (* Number of cells in series *)
70 a IS_A solver_var; (* A curve-fitting parameter *)
71 a_ref IS_A solver_var; (* Reference curve-fitting parameter *)
72 eta IS_A factor; (* Cell's efficiency *)
73
74 (*
75 Equations are taken from Townsend (1989) as cited by Duffie & Beckman.
76 These relations ought to work for any resistive loads. Inductive loads behave differently and should be dealt with in another model.
77 *)
78 ShortCircuit: I_lref = Isc;
79 OpenCircuit: I_oref = Isc * exp(-Voc/a_ref);
80 Power: P = Vmp * Imp;
81 ShuntResistance: Rs = (a * lnm(1-(Imp/Il)) - Vmp + Voc)/Imp;
82 Shape: a/a_ref = Tc/T_cref;
83 LoadCurrent: Il = (G_T/G_Tref) * (I_lref + u_Isc*(Tc - T_cref));
84 ReverseDiodeCurrent:Io/I_oref = ((Tc/T_cref)^3) * exp(((eps/1{eV})*Ns/a_ref)*(1-(T_cref/Tc)));
85 ReferenceShape: a_ref = ((u_Voc * T_cref) - Voc + ((eps/1{eV}) * Ns))/((u_Isc * T_cref/I_lref)-3);
86 Efficiency: eta = P/(surf*G_T);
87
88 METHODS
89 METHOD on_load;
90 RUN default_self;
91 RUN specify;
92 RUN values;
93 END on_load;
94
95 METHOD specify;
96 FIX Ns;
97 FIX Isc;
98 FIX Voc;
99 FIX Imp;
100 FIX Vmp;
101 FIX u_Isc;
102 FIX u_Voc;
103 FIX eps;
104 FIX Tc;
105 FIX T_cref;
106 FIX G_T;
107 FIX G_Tref;
108 FIX surf;
109 END specify;
110
111 METHOD values;
112 (* Values for Duffie & Beckman, ex. 23.2.1 *)
113 Ns := 36;
114 Isc := 2.9 {A};
115 Voc := 20 {V};
116 Imp := 2.67 {A};
117 Vmp := 16.5 {V};
118 u_Isc := 1.325e-3 {A/K};
119 u_Voc := -0.0775 {V/K};
120 Tc := 340.2 {K};
121 T_cref := 298 {K};
122 eps := 1.12{eV};
123 G_T := 1000 {W/m^2};
124 G_Tref := 1000 {W/m^2};
125 surf := 0.427 {m^2};
126 END values;
127
128 METHOD default_self;
129 Ns := 36;
130 eps := 1.12 {eV}; (* Default for Si-based panes *)
131 T_cref := 298 {K};
132 Tc := 258 {K};
133 G_T := 1000 {W/m^2};
134 G_Tref := 1000 {W/m^2}; (* Typical irradiance for reference *)
135 END default_self;
136 END simple_pv_module;

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22