コード例 #1
0
ファイル: optimizers.py プロジェクト: sebasanper/wflopg
def _setup_visualization(owflop, history):
    axes = {}
    fig = _plt.figure()
    grid = _gs.GridSpec(3, 5)
    axes['windrose'] = fig.add_subplot(grid[0, :2], polar=True)
    vis.draw_windrose(axes['windrose'], owflop._ds.direction_pmf)
    axes['convergence'] = fig.add_subplot(grid[1, :2])
    axes['step_size'] = fig.add_subplot(grid[2, :2],
                                        sharex=axes['convergence'])
    axes['layout'] = fig.add_subplot(grid[:, 2:])
    vis.site_setup(axes['layout'])
    vis.draw_turbines(axes['layout'], history.isel(iteration=0).layout,
                      owflop.rotor_radius_adim,
                      minimal_proximity=owflop.minimal_proximity,
                      inside=owflop.inside)
    vis.draw_boundaries(axes['layout'], owflop.boundaries)
    grid.tight_layout(fig)
    _plt.pause(.10)
    return axes
コード例 #2
0
# %% save initial layout figure
fig = plt.figure()
ax = plt.subplot(111)
vis.site_setup(ax, o.minimal_proximity)
vis.draw_boundaries(ax, o.boundaries)
vis.draw_turbines(ax, o._ds.layout, o.rotor_radius_adim, o.minimal_proximity)
fig.savefig('IEA37C1W_16-layout_initial.pdf', bbox_inches="tight")

# %% plot windrose and initial pseudogradients
fig = plt.figure(figsize=(8, 1.7))
alignax = None
gs = fig.add_gridspec(ncols=6, nrows=1, wspace=0., hspace=0.,
                      width_ratios=[.8, .2] + 4*[1])
axwr = fig.add_subplot(gs[0:2, 0], polar=True)
vis.draw_windrose(axwr, o.wind_rose.dir_weights)
axwr.set_xticks([0, np.pi/2, np.pi, 3*np.pi/2])
axwr.set_xticklabels(['N', 'O', 'S', 'W'])
axwr.xaxis.set_tick_params(pad=-2)
axwr.set_rticks([])
#
for k, pg in enumerate([
    {'title': 'simple', 'function': o.calculate_simple_vector,
     'scale': 2**+1},
    {'title': 'push-away', 'function': o.calculate_push_away_vector,
     'scale': 2**+1},
    {'title': 'push-back', 'function': o.calculate_push_back_vector,
     'scale': 2**+1},
    {'title': 'push-cross', 'function': o.calculate_push_cross_vector,
     'scale': 2**-4},
]):
コード例 #3
0
ファイル: BWFS_IV.py プロジェクト: sebasanper/wflopg
os.chdir("../../../documents/BWFS/")
plt.rc('text', usetex=True)
plt.rc('font', family='serif', serif='Times')
plt.rc('axes', titlesize=10)

# %% save wind rose figure
o = wflopg.Owflop()
o.load_problem("problem-BWFS-IV-WES.yaml",
               wind_resource={'interpolation': 'linear'},
               layout={
                   'type': 'hex',
                   'turbines': 30
               })
fig = plt.figure(figsize=(1.28, 1.7))
axwr = fig.add_subplot(111, polar=True)
vis.draw_windrose(axwr, o._ds.direction_pmf)
axwr.set_xticks([0, np.pi / 2, np.pi, 3 * np.pi / 2])
axwr.set_xticklabels(['N', 'O', 'S', 'W'])
axwr.xaxis.set_tick_params(pad=-2)
axwr.set_rticks([])
fig.savefig("Borssele_IV-wind_rose.pdf", bbox_inches="tight")

# %% optimize using different parameters and turbine numbers
history = {}
cases = {
    30: ([4, 4.5, 5, 5.5], ['4', '', '5', '']),
    50: ([7.5, 8.0, 8.5], ['7.5', '8.0', '8.5']),
    70: ([10, 10.5, 11, 11.5, 12, 12.5], ['10', '', '11', '', '12', '']),
    90: ([13.5, 14, 14.5, 15, 15.5], ['', '14', '', '15', ''])
}
for kind, multiplier, scaling in [('soft', 2, [0.9, 1.1]),