def __init__(self, nsteps, nx, xmax=(0.5, 0.1), xmin=0.0, min_period=5, max_period=30, name='period', device='cpu'): super().__init__(nsteps, nx, xmax, xmin, name=name, device=device) self.min_period = min_period self.max_period = max_period self.white_noise_generator = lambda nsim, xmin, xmax: psl.WhiteNoise(nx=self.nx, nsim=nsim, xmax=xmax, xmin=xmin)[:nsim] self.period_generator = lambda nsim, xmin, xmax: psl.Periodic(nx=self.nx, nsim=nsim, numPeriods=random.randint(self.min_period, self.max_period), xmax=xmax, xmin=xmin)[:nsim] # self.sequence_generator = lambda nsim, xmin, xmax: self.period_generator(nsim, xmin, xmax) + self.white_noise_generator(nsim, -0.1*xmax, 0.1*xmax) self.sequence_generator = lambda nsim, xmin, xmax: self.period_generator(nsim, xmin, xmax) + self.white_noise_generator(nsim, xmin, 1.0 - xmax)
def dataset_load(args, device): if systems[args.system] == 'emulator': dataset = EmulatorDataset(system=args.system, nsim=args.nsim, norm=args.norm, nsteps=args.nsteps, device=device, savedir=args.savedir, name='closedloop') else: dataset = FileDataset(system=args.system, nsim=args.nsim, norm=args.norm, nsteps=args.nsteps, device=device, savedir=args.savedir, name='closedloop') nsim, ny = dataset.data['Y'].shape nu = dataset.data['U'].shape[1] new_sequences = { 'Y_max': 0.8 * np.ones([nsim, ny]), 'Y_min': 0.2 * np.ones([nsim, ny]), 'U_max': np.ones([nsim, nu]), 'U_min': np.zeros([nsim, nu]), 'R': psl.Steps(nx=1, nsim=nsim, randsteps=30, xmax=1, xmin=0), # 'R': psl.Periodic(nx=1, nsim=nsim, numPeriods=12, xmax=1, xmin=0), 'Y_ctrl_': psl.WhiteNoise(nx=ny, nsim=nsim, xmax=[1.0] * ny, xmin=[0.0] * ny) } dataset.add_data(new_sequences) return dataset
def __init__(self, nsteps, nx, xmax, xmin, name='period'): super().__init__(nsteps, nx, xmax, xmin, name=name) self.sequence_generator = lambda nsim: psl.WhiteNoise( nx=self.nx, nsim=nsim, xmax=self.xmax, xmin=self.xmin)
def __init__(self, nsteps, nx, xmax, xmin, name='period', device='cpu'): super().__init__(nsteps, nx, xmax, xmin, name=name, device=device) self.sequence_generator = lambda nsim, xmin, xmax: psl.WhiteNoise(nx=self.nx, nsim=nsim, xmax=xmax, xmin=xmin)