A function that creates and runs an environment from OpenAI Gym. Parameter: The environment name. Flag to display environment. Links: Link to the action function.
Helper class that provides a standard way to create an ABC using inheritance.
# Test for EnvironmentRuntimeFactoryenv_runtime = EnvironmentRuntimeFactory.create('LunarLanderContinuous-v2')#print(env_runtime)print(env_runtime.get_env_inputs_names())env_runtime = EnvironmentRuntimeFactory.create('CartPole-v1')#print(env_runtime)print(env_runtime.get_env_inputs_names())
A function that creates an runs the GenericGym environment from OpenAI Gym. Parameter: The environment name. Flag to display environment. Links: Link to the action function.
A function that creates an runs the CartPole-v1 environment from OpenAI Gym. Parameter: The environment name. Flag to display environment. Links: Link to the action function.
A function that creates an runs the CartPole-v1 environment from OpenAI Gym. Parameter: The environment name. Flag to display environment. Links: Link to the action function.
A function that creates an runs the Pendulum-v1 environment from OpenAI Gym. Parameter: The environment name. Flag to display environment. Links: Link to the action function.
class Pendulum_1(OpenAIGym):"A function that creates an runs the Pendulum-v1 environment from OpenAI Gym. Parameter: The environment name. Flag to display environment. Links: Link to the action function."# from obs[0], indices# 0 cos(theta) - +1 is up, -1 is down, 0 is left and right# 1 sin(theta) - +1 is left, -1 is right, 0 is up and down# 2 theta dot - +dot is anti-clockwise, -dot is clockwise# 3 theta dot - normalised to +/- 1 # 4 theta +1/-1 (added here) 1 is pointing upwards, + is anti-clockwise, - is clockwise# reward - -(theta^2 + 0.1*theta_dt^2 + 0.001*action^2)def__init__(self, render=False, render_mode="rgb_array", video_wrap=False, value=0, name="Pendulum_1", seed=None, links=None, new_name=True, namespace=None,**cargs): super().__init__('Pendulum-v1', render=render, render_mode=render_mode, video_wrap=video_wrap, value=value, name=name, seed=seed, links=links, new_name=new_name, namespace=namespace, **cargs)def process_hierarchy_values(self):self.hierarchy_values =self.links[0].get_value()def process_actions(self):passdef apply_actions_get_obs(self):returnself.env.step([self.hierarchy_values])def parse_obs(self): self.value =self.obs[0]self.reward =-self.obs[1]self.done =self.obs[2]self.info =self.obs[3]def process_values(self): vel =self.obs[0][2]/8.0self.value = np.append(self.value, vel) x = math.copysign(math.acos(self.obs[0][0]), self.obs[0][1])/math.pi#theta = 100 - (10 * math.copysign(1-abs(x), x)) theta =100- (10* x)self.value = np.append(self.value, theta)class Factory:def create(self, namespace=None, seed=None, gym_name=None): return Pendulum_1(namespace=namespace, seed=seed, gym_name=gym_name)
A function that creates and runs the MountainCar-v0 environment from OpenAI Gym. Parameter: The environment name. Flag to display environment. Links: Link to the action function.
A function that creates and runs the MountainCarContinuous-v0 environment from OpenAI Gym. Parameter: The environment name. Flag to display environment. Links: Link to the action function.
A function that creates and runs the YawEnv environment for a wind turbine. Indexes 0 - action, 1 - yaw error, 2 - wind direction, 3 - wind speed (ignore 0).
A function that creates and runs the microgrid environment for an energy management system. ‘Deep reinforcement learning for energy management in a microgrid with flexible demand.’ Taha Abdelhalim Nakabi, Pekka Toivanen. https://doi.org/10.1016/j.segan.2020.100413
Inputs - st = [SoCt, BSCt, Cbt, Tt, Gt, Put, Lb,t, t]. 0 - ISC - the average SoC (state-of-charge) of the TCLs, 1 - IL - the current load value of the daily consumption pattern. 2 - IPC - the pricing counter, 3 - IBS - the battery SoC, 4 - IEG - the energy generation, 5 - IT - the temparature, 6 - IEP - the electricty prices, 7 - ITS - the time step, Actions: 0 - TCL action, Atcl, 1 - price action, Ap, 2 - energy deficiency action, Ad, 3 - energy excess action, Ae
from pct.microgrid import MicroGridEnv0Plusenv = MicroGrid(seed=1)env.summary()
pen = Pendulum(render=True, namespace=namespace, seed=1)pen.add_link(Constant([1], namespace=namespace))print(pen.get_config())#pen.run(steps=10, verbose=True)# why TypeError: size must be two numbers?