.withControllableKW(controllableKW) .withUpRegulationKW(upRegulationKW) .withDownRegulationKW(downRegulationKW) .withStorageCapacity(storageCapacity);
.withStorageCapacity(capacityKWh) .withUpRegulationKW(maxDischargeKW) .withDownRegulationKW(maxChargeKW); addCustomerInfo(info); ensureSeeds();
withControllableKW(-car.getHomeChargeKW()). withUpRegulationKW(-car.getHomeChargeKW()). withDownRegulationKW(car.getHomeChargeKW()). withStorageCapacity(car.getMaxCapacity());
.withStorageCapacity(nBatteries * maxChargeKW / 3.0) .withUpRegulationKW(-nChargers * maxChargeKW) .withDownRegulationKW(nChargers * maxChargeKW); // optimistic, perhaps addCustomerInfo(info); ensureSeeds();
@Override public void initialize () { super.initialize(); log.info("Initialize " + name); // fill out CustomerInfo powerType = PowerType.THERMAL_STORAGE_CONSUMPTION; CustomerInfo info = new CustomerInfo(name, 1); info.withPowerType(powerType) .withCustomerClass(CustomerClass.LARGE) .withControllableKW(-unitSize / cop) .withStorageCapacity(stockCapacity * CP_ICE * (maxTemp - minTemp)) .withUpRegulationKW(-unitSize / cop) .withDownRegulationKW(unitSize / cop); // optimistic, perhaps addCustomerInfo(info); ensureSeeds(); // randomize current temp only if state not set if (null == currentTemp) { setCurrentTemp(minTemp + (maxTemp - minTemp) * opSeed.nextDouble()); currentStock = stockCapacity; } currentNcUsage = nonCoolingUsage; // set up the tariff evaluator. We are wide-open to variable pricing. tariffEvaluator = new TariffEvaluator(this); tariffEvaluator.withInertia(0.7).withPreferredContractDuration(14); tariffEvaluator.initializeInconvenienceFactors(0.0, 0.01, 0.0, 0.0); tariffEvaluator.initializeRegulationFactors(-getMaxCooling() * 0.05, 0.0, getMaxCooling() * 0.04); }