Пример #1
0
def cost_model(E_sto, Speed, Accel, P_sto, innov):
    '''penalty on the power injected to the grid
    P_grid = P_prod - P_sto
    penal = (P_grid/power_max)**2
    '''
    P_prod = searev_power(Speed)
    P_grid = P_prod - P_sto
    penal = (P_grid / power_max)**2
    return penal
Пример #2
0
def cost_model(E_sto, Speed, Accel, P_sto, innov):
    """penalty on the power injected to the grid
    P_grid = P_prod - P_sto
    penal = (P_grid/power_max)**2
    """
    P_prod = searev_power(Speed)
    P_grid = P_prod - P_sto
    penal = (P_grid / power_max) ** 2
    return penal
def P_sto_law_lin(E_sto, Speed, Accel):
    """linear storage control law"""
    P_prod = searev_power(Speed)
    P_grid = P_rated * E_sto / E_rated
    return P_prod - P_grid
Пример #4
0
def P_sto_law_lin(E_sto, Speed, Accel):
    '''linear storage control law'''
    P_prod = searev_power(Speed)
    P_grid = P_rated * E_sto / E_rated
    return P_prod - P_grid
Пример #5
0
P_prod = np.zeros(N_sim)
P_grid = np.zeros(N_sim)

# draw a disturbance sequence:
np.random.seed(seed)
w = innov_law.rvs(N_sim)

# Time vector
k_range = np.arange(N_sim)
t = k_range * dt
t_x = np.arange(N_sim + 1) * dt

# Simulation loop:
for k in k_range:
    # Searev Power :
    P_prod[k] = searev_power(Speed[k])
    # Control computation:
    P_sto[k] = P_sto_law(E_sto[k], Speed[k], Accel[k])

    P_grid[k] = P_prod[k] - P_sto[k]
    # State evolution:
    E_sto[k + 1], Speed[k + 1], Accel[k + 1] = searev_sys.dyn(
        E_sto[k], Speed[k], Accel[k], P_sto[k], w[k])

# Compute state variables derivatives:
E_full = np.ma.array(E_sto, mask=(E_sto < E_rated * 0.9999))
E_empty = np.ma.array(E_sto, mask=(E_sto > E_rated * 0.0001))

# Power delivered to the grid
P_grid = P_prod - P_sto
Пример #6
0
P_prod = np.zeros(N_sim)
P_grid = np.zeros(N_sim)

# draw a disturbance sequence:
np.random.seed(seed)
w = innov_law.rvs(N_sim)

# Time vector
k_range = np.arange(N_sim)
t = k_range * dt
t_x = np.arange(N_sim + 1) * dt

# Simulation loop:
for k in k_range:
    # Searev Power :
    P_prod[k] = searev_power(Speed[k])
    # Control computation:
    P_sto[k] = P_sto_law(E_sto[k], Speed[k], Accel[k])

    P_grid[k] = P_prod[k] - P_sto[k]
    # State evolution:
    E_sto[k + 1], Speed[k + 1], Accel[k + 1] = searev_sys.dyn(E_sto[k], Speed[k], Accel[k], P_sto[k], w[k])

# Compute state variables derivatives:
E_full = np.ma.array(E_sto, mask=(E_sto < E_rated * 0.9999))
E_empty = np.ma.array(E_sto, mask=(E_sto > E_rated * 0.0001))

# Power delivered to the grid
P_grid = P_prod - P_sto

cost = cost_model(E_sto[:-1], Speed[:-1], Accel[:-1], P_sto, w)