-
Notifications
You must be signed in to change notification settings - Fork 1.1k
create ModelChain(s) that implement very simple models #143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
To be a little more concrete, the class ModelChain():
def prepare_inputs():
self.solar_position = self.location.get_solarposition(self.times)
self.airmass = self.location.get_airmass(
solar_position=self.solar_position, model=self.airmass_model)
if irradiance is None:
irradiance = self.location.get_clearsky(
self.solar_position.index, self.clearsky_model,
zenith_data=self.solar_position['apparent_zenith'],
airmass_data=self.airmass['airmass_absolute'])
self.irradiance = irradiance
self.total_irrad = self.system.get_irradiance(
self.solar_position['apparent_zenith'],
self.solar_position['azimuth'],
self.irradiance['dni'],
self.irradiance['ghi'],
self.irradiance['dhi'],
model=self.transposition_model)
if weather is None:
weather = {'wind_speed': 0, 'temp_air': 20}
self.weather = weather
def run_model():
raise NotImplementedError('you must subclass MC and implement this method')
class SAPMChain(ModelChain):
def run_model():
self.prepare_inputs()
# followed by all of the SAPM calls
class BasicChain(ModelChain):
def run_model():
self.prepare_inputs()
self.dc = self.total_irrad['global'] * self.poa_global_to_dc_power_const
self.ac = self.dc * self.dc_to_ac_const
class PVUSAChain(ModelChain):
def run_model():
self.prepare_inputs()
# the pvusa eqn |
hello again ;.) I'd done this with the 2.x code but still quite experimental. I would recommend to use: |
I hate to say it, but I recommend against PR for this const. Often PR is Also, I think PR is the most overloaded term in solar, and have seen it On Sat, Apr 23, 2016 at 3:28 AM, DaCoEx [email protected] wrote:
|
I agree with Jessica. One common issue with PR is that there are several definitions in current use. Perhaps we can agree on the simple model and that would help clarify things. My proposal would be PVWatts: Pac = POA/1000 x Pdc(nameplate) x efficiency x (1 + gammaPmp (Tc – 25)) We need three constants: Pdc(nameplate), efficiency (PVWatts uses 0.81) and gammaTmp (-0.004/C is typical) Cliff |
+1 for PVWatts. Might be a good project for someone at the EPRI workshop. |
closed by #194. |
It could be useful to create a ModelChain or two that implements some kind of extremely basic system modeling. Something like
power = user_def_const * poa_global
. The PVUSA model could be useful too. You all probably have more experience with sort of thing than I do.A couple of motivations:
I'm not yet sure if/how PVSystem would need to be modified to support this kind of thing. Maybe some additional keyword arguments in its constructor. Maybe you can reuse the module and inverter parameters arguments.
The text was updated successfully, but these errors were encountered: