Exemple #1
0
 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)
Exemple #2
0
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
Exemple #3
0
 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)
Exemple #4
0
 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)