for a paper project, I use PowerTAC as evaluation of a pricing scheme.
Now I want to vary the share of electric vehicles and the other consumers.
Is this easily possible in research mode or do I have to change the whole population model as to achieve it?
Hello, Fabian -
Ideally, most of the server configuration is accessible from the top level, by specifying a custom config file in the cli or web2 profiles when you run the server. As a practical matter, population is hard to control this way for models in which population is not specified as a simple number but rather as a (potentially large) list of individual instances.
So there are two possible approaches that I can see.
1. Some population models can indeed be changed with simple config variables. These, with their default values, are
2. Other customer types, including electric vehicles, are configured as lists of individual models. Their configuration files are in the src/main/resources/config directory in submodules of the powertac-server module. For example, take a look at customer-models/src/main/resources/config/properties.xml where the cold-storage, lift-truck, and battery models are defined. Each named individual has its own configuration. You could add new individuals, or you could scale the existing individuals. Scaling the lift trucks and batteries should be easy, but scaling the cold-storage models would require some understanding of how the model works. You could scale the evcustomer models fairly easily, but this model is already set up with a few hundred individuals, and if you try to scale it up by adding individuals, eventually you will seriously impact server performance (since each individual must compute its status in each timeslot). See evcustomer/src/main/resources/config/properties.xml. The number of individuals comes from the "count" attributes under evSocialClass. It current configures around 100 individuals; probably the server would run OK with 500. Alternatively, you could scale the carType instances, by multiplying the maxCapacity and ChargeKW values by a factor, effectively making each instance represent multiple vehicles (with identical behaviors). These values could be set in the top-level config file, for example