.withMultiContracting(this.multiContracting) .withCanNegotiate(this.canNegotiate) .withControllableKW(controllableKW) .withUpRegulationKW(upRegulationKW) .withDownRegulationKW(downRegulationKW)
.withControllableKW(-interruptible) .withStorageCapacity(capacityKWh) .withUpRegulationKW(maxDischargeKW)
withControllableKW(-car.getHomeChargeKW()). withUpRegulationKW(-car.getHomeChargeKW()). withDownRegulationKW(car.getHomeChargeKW()).
info.withPowerType(powerType) .withCustomerClass(CustomerClass.LARGE) .withControllableKW(-interruptible) .withStorageCapacity(nBatteries * maxChargeKW / 3.0) .withUpRegulationKW(-nChargers * maxChargeKW)
@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); }