2.1. Calculation of Electric Passenger Cars per Grid Square
In this paper, the developed approach is explained using a real-world example with the federal state of Baden-Wuerttemberg, Germany, as the area of observation. However, this approach is universally applicable for different regional scenarios, as long as sufficiently precise data regarding passenger car registrations and population are available. The total number of passenger cars per grid square is determined instead of calculating the number of electric passenger cars directly in order to allow for scaling of the penetration rate. This penetration rate
is the quotient of the number of electric passenger cars divided by the total number of passenger cars in a given area according to (1).
The penetration rate assumes values between 0% and 100% and is defined for all grid squares in a specific area. This area may consist of a single postal code area or municipality, of the entire federal state of Baden-Wuerttemberg or of a group of municipalities classified by a similar property such as population density, for example. In this case, the current number of registered passenger cars per postal code area can be obtained from the Federal Motor Transport Authority [
8]. The distribution of passenger cars within a postal code area can be inhomogeneous, requiring more detailed regionalization. By using the population census data of the German State Statistical Office from 2022, it is possible to derive the population of adult residents over the age of 18 in Germany to grid squares of a size of 100 m by 100 m [
9]. The assumption is that the number of registered passenger cars in a grid square is proportional to its adult population.
Therefore, in order to calculate the number of passenger cars per grid square, the share of the adult population of each grid square per postal code area
is determined by dividing the adult population per grid square
by the adult population of the postal code area
encompassing the grid square according to (2). Next, the calculated share is multiplied by the number of passenger cars per postal code area
to obtain the number of passenger cars per grid square
, as shown in (3). The resulting number of passenger cars per grid square is not an integer. This is valid as this number is only used to calculate the number of electric passenger cars in a subsequent step.
Next, the penetration rate of electric passenger cars is determined for each postal code area based on the data provided in [
8]. In order to analyze future scenarios with specific assumed penetration rates, a scaling factor is introduced. This scaling factor
is calculated in (4) by dividing the target penetration rate of the observed area
by the current penetration rate
of the observed area, in this case the federal state of Baden-Wuerttemberg. The current penetration rate of each postal code area
is then multiplied by the determined scaling factor
to calculate the target penetration rate of each postal code area
, as shown in (5).
The scaling of the penetration rate may result in postal code areas that exceed the maximum penetration rate of 100%. Therefore, a distribution algorithm is implemented that takes the total number of excess electric passenger cars rounded to an integer using the Round Half to Even approach and scatters them randomly to postal code areas that have not yet reached the maximum penetration rate. The penetration rate for each postal code area is then recalculated. This approach preserves the characteristic distribution of electric passenger cars over the postal code areas while ensuring that the target penetration rate of the entire observed area is met. Additional factors such as differences in regional policies and charging infrastructure construction plans may have an impact on the future penetration rate of individual postal code areas and should be considered in future research. Considering such dynamic factors may improve the modeling when compared to the assumption made in this paper: the penetration rate of each postal code area is scaled using the same scaling factor for future scenarios.
Figure 2 shows the current penetration rate of electric passenger cars by postal code area in Baden-Wuerttemberg. In this case, the scaling factor is one and the overall penetration rate for the federal state of Baden-Wuerttemberg is 3.2%. In contrast, the penetration rate for individual postal code areas varies from 0% to about 5%. This demonstrates that a more detailed consideration of the penetration rate is important for a realistic regionalization of electric passenger cars and therefore their location-dependent charging demand.
The previously determined number of passenger cars in a grid square
is then multiplied by the target penetration rate of the encompassing postal code area
to calculate the number of electric passenger cars in the grid square
according to (6).
As previously described, the number of passenger cars per grid square is not an integer. The result of this calculation must, however, be an integer as this number represents the amount of electric passenger cars that are associated with a grid square in the simulation. To avoid rounding errors leading to a lower or higher number of electric passenger cars and thus to an underestimated or overestimated charging demand, the number of electric passenger cars is rounded using probabilities. This rounding method is beneficial when rounding a large number of decimals that are then aggregated, leading to less deviation from the expected value when compared to other rounding methods such as “round up” or “round half up”. The probability
that the calculated number of electric passenger cars per grid square
is rounded to the next highest integer is calculated according to (7). The rounded, integer count of electric passenger cars per grid square
results from (8) and (9), based on the Bernoulli distribution. For example, a grid square has a calculated total number of 17.3 passenger cars and a penetration rate of 20%. The decimal number of 3.46 electric passenger cars results for this grid square. By rounding with probabilities, the probability of four electric passenger cars in this grid square is 46%, while the probability of three electric passenger cars is 54%.
2.2. Identification of Parking Spaces and Charging Locations per Grid Square
The identification of charging locations is necessary for the location-dependent regionalization of the charging demand of electric passenger cars. In general, each electric passenger car associated with a grid square has the option to park and charge at home within the grid square. The actual availability of home charging depends on the simulation configuration. In addition to home charging, the identification of public charging is necessary. In this paper, it is generally assumed that alternating current (AC) charging up to 22 kW, depending on the simulation configuration, is possible at every parking space. This allows for modeling future scenarios for which the locations and utilization profiles of future charging infrastructure are not yet sufficiently known. Similar to charging at home, the availability of public charging depends on the simulation configuration. In this paper, the availability of private and public charging infrastructure is assumed to be uniform over the entire observed area. For future research, it may be more accurate to differentiate these availabilities per postal code area, for example, based on data regarding currently operated charging infrastructure and infrastructure construction plans.
Therefore, parking spaces must be identified and located within the grid squares. In this paper, parking spaces are identified using the open-source data of OpenStreetMap (OSM). OSM is an open-source database for collecting geographical data around the world, created and maintained by volunteers [
10]. OSM uses three different data types to store geographical information. These include nodes, ways, and relations. Nodes represent individual geographical coordinates [
11], ways are sequences of nodes that represent paths or roads [
12], and relations are complex geometric objects that can consist of nodes and ways [
13]. Additional information in the form of key-value pairs, referred to as tags, can be stored in these objects. All tags are described in [
14] and the relevant tags for identification of parking areas are extracted. For the federal state of Baden-Wuerttemberg, a special data set from [
15] is used, which is filtered by the extracted tags. All identified parking areas, with their specific parking capacities, are then mapped to the grid squares using their geographic coordinates. The information about the parking capacity of a parking area can either be taken directly from the source data or must be estimated individually. For the individual estimation, the existing parking capacity information from the source data is used, along with the parking area size data from OSM, to derive a correlation between parking area size and the parking capacity using linear regression. Furthermore, parking areas with multiple stories are also taken into account. The area size of one story is multiplied by the number of stories. Based on this estimated total area, the parking capacity is then subsequently estimated. In addition to the OSM data, there are two further data sources for identifying parking areas that are relevant for Baden-Wuerttemberg, the platforms MobiDataBW [
16] and ParkMe [
17]. Both contain commercially operated public parking lots and parking garages and contain data about their capacity and occupancy. These two sources are used to supplement and validate the OSM data. The total parking capacity of all parking areas across Baden-Wuerttemberg was calculated to be 3,098,128 parking spaces.
Figure 3 shows the location and area of all 100 m by 100 m grid squares with identified parking capacity in the central part of Stuttgart, the capital city of the federal state of Baden-Wuerttemberg, as an example. In this case, the color scale shows the total parking capacity per grid square across all parking location types, and these grid squares therefore represent possible destinations for electric passenger cars to park and charge at, when away from home.
An electric passenger car can drive to five different location types: “home”, “work”, “retail”, “business”, and “other”. The location type “work” describes trip end points for parking at the workplace. The location type “retail” describes trip end points for temporary parking to run errands near stores, shopping centers, or parking in an urban area. The location type “business” describes trip end points that include parking at industrial areas and services. The location type “other” includes all other trip end points that could not be assigned to any of the previous categories. The identified parking areas are categorized into the four location types: “work”, “retail”, “business”, or “other”. The location type “home” is not modelled using parking area data. The categorization is based on the values of the OSM tags “access”, “building”, “landuse”, and “parking”. For example, the value “employees” of the OSM tag “access” leads to a categorization of the location type “work”, and the value “retail” of the OSM tag “building” leads to a categorization of the location type “retail”.
The method of using parking capacity availability information to improve the regionalization of the location-dependent charging demand is advantageous to avoid overestimating the number of electric passenger cars parking in one grid square. However, there could still be some overestimation because the parking capacities of the parking areas are not only available to electric passenger cars, but to all types of cars. To avoid this problem, all passenger cars would have to be simulated, and this would require vastly more computational resources than necessary in most cases, especially at the low penetration rates of electric passenger cars. This limitation is not assumed to have a large impact on the simulation results and may be negligible at higher penetration rates of electric passenger cars.
In order to further improve the modeling of driving and parking behavior, real-world occupancy data for parking areas in the observed area is used. For the federal state of Baden-Wuerttemberg, data from [
16] are taken into account. For the occupancy data, a query is made for all available parking areas in Baden-Wuerttemberg, which provides current information on occupancy status. The query was carried out every minute between 4 June 2023 to 1 October 2023. During this time, over 40 million data points were collected at 246 parking areas in the form of free parking spaces. As the number of parking areas with an indication of current occupancy increased during the query period, data are not available for every parking area over the entire period. In addition, the occupancy status of some parking areas was not updated over long periods of time, which means that the collected data must first be processed before it can be used to build an occupancy model. The occupancy model should provide specific occupancy profiles for each day of the week. In the first step of processing, the data for all 246 parking areas are analyzed, and parking areas with mostly constant values are filtered out. This leads to a reduction in the collected data set to almost 10 million data points from 64 parking areas. Periods with constant values lasting more than 12 h are identified as incorrect data. As the normalization is carried out based on weekdays, all public holidays are also sorted out, as these would distort the data. Occupancy on public holidays is very similar to occupancy on Sundays, which is why the Sunday occupancy profile can be used for both. In order to calculate a theoretical occupancy for each parking area, normalized curves are required for the four location types: “work”, “retail”, “business”, and “other”. The normalization is carried out by calculating the mean values for the time on a particular day of a week. With the known parking capacity of each parking area, an occupancy between 0% and 100% can be determined for every minute of each day of a week.
In addition to the common public charging, it is also relevant to consider the effects of direct current (DC) fast charging (over 20 kW to 150 kW) and DC high-power charging (above 150 kW), as defined in [
19], as these may cause higher peaks in the charging demand in a shorter period of time. The locations of the fast-charging stations in the federal state of Baden-Wuerttemberg used for modeling are divided into two groups. The first group includes all fast and high-power charging points that are already installed and usable today [
20]. The second group consists of future fast and high-power charging points that have been commissioned and awarded by the federal government in order to close supply gaps [
21]. All current and future fast and high-power charging points can be located in the grid squares by using their specific coordinates.
2.3. Modeling of Trip-Chains and Load Profiles for Individual Electric Passenger Cars
In this paper, an improved agent-based bottom-up modeling approach building on [
22] utilizing a semi-Markov process [
23] is used to determine the charging demand of electric passenger cars. For each electric passenger car, a trip-chain is generated and a corresponding charging load profile is calculated. A trip-chain consists of a series of individual trips to different locations at specific times with specific driving distances that interrupt the regular state of parking during an observation period. During parking, the electric passenger cars have the option to charge, which is the basis for the calculation of the load profiles. As input for the trip-chain generation, historic German mobility data of conventional passenger cars [
24] and parameters of current electric passenger car models in Germany [
25], such as battery capacity, charging power, consumption and range are used. Five different semi-Markov states that correspond to the parking location types previously defined in
Section 2.2 describe the current location of an electric passenger car, with an additional state representing the movement from one location to another. This results in the six semi-Markov states: “home”, “work”, “retail”, “business”, “other”, and “driving”. For these semi-Markov states, a state transition probability matrix is derived using the historical German mobility data from [
24]. Because of the time dependency of the probability matrix, the driving behavior can be modelled more accurately [
23]. First, an initial state is randomly selected. In case this is the “driving” state, a trip is generated. Otherwise, a parking event takes place. The next state is again randomly selected based on the probability matrix, taking the initial state and the time of day into account. Then, the dwell time in this state is randomly selected, also based on the probability matrix as well as the state before, the state after, and the time of day. For trips, this dwell time is the trip’s duration, and for a parking event, it is the parking duration. In addition, for trips, the distance to the next destination is also randomly selected based on the probability matrix, in this case, based on the state representing a location type, the trip’s duration, as well as the time of day. In order to sort out randomly drawn, implausible trips, the average speed during a trip is calculated by dividing the trip’s driving distance by the trip’s duration. According to [
26], about 98% of all passenger cars on German highways with no speed limit drive slower than 160 km/h, and therefore, any trip with an average speed of greater than 160 km/h is disregarded and redrawn until a plausible trip is found. This is a valid assumption as no trip starts or ends directly on a highway and therefore should on average always be slower than typical highway speeds.
In order to consider the effects of fast and high-power charging, long-distance trips of electric passenger cars that have the capability to fast charge are modelled differently. Due to the fact that trips are generated before the calculation of the charging load profiles in the developed approach, it is not possible to add trips based on each electric passenger car’s state of charge (SOC). Instead, the modeling of fast charging is accomplished by iterating through all trips in a trip-chain and identifying very long trips that are likely to be interrupted with a fast-charging stop by the driver. At the time of writing this paper in December 2024, there are no public data available on the average driving distance before a fast-charging stop is carried out by the driver of an electric passenger car. Therefore, the trip’s duration is used instead. The official recommendation of the German Federal Ministry for Digital and Transport is to take a break from driving after two hours for at least 10 min [
27]. Any trip that exceeds this duration will be interrupted by a fast-charging stop for a specific length of time, at a minimum of 10 min. In order to make the modeling more realistic, the time needed by a specific electric passenger car model to charge the amount of energy necessary to complete the trip after a stop at its maximum DC fast-charging power
is calculated. This is achieved by determining the distance the electric passenger car is likely to drive within the two hours
using the average speed
during the trip (10) and calculating the remaining driving distance
based on the trip’s total driving distance
(11). Next, the minimum time
required to charge the energy necessary for completing the remaining driving distance is calculated by multiplying the car model’s average consumption by the remaining driving distance and then dividing the resulting energy demand by the maximum DC fast-charging power of the car model, as shown in (12).
A trip with a duration of over two hours is therefore split into two trips, interrupted by a parking event at the additionally implemented location type “fast charging”. Due to the fact that the original total trip duration cannot change, the duration of the fast-charging break has to be integrated. In this case, the duration of the first trip is reduced by the duration of the fast-charging break. Therefore, the start time of the first trip corresponds to the start time of the original trip, the duration equals two hours minus the duration of the fast-charging break, and the driving distance is . The start time of the second trip is the end time of the fast-charging break, the end time of the second trip corresponds to the end of the original trip, and the driving distance is . Furthermore, the start and end times of all generated trips are rounded down by the simulation time period resolution, which can be defined in the simulation configuration. For example, with a resolution of five minutes, a trip start time of 14:23 is rounded down to 14:20 and a trip end time of 17:44 is rounded down to 17:40. This is carried out to better match the generated trips to the calculated load profiles, each of which is a time-series of power values with the time period resolution as the time interval.
After each trip of the generated trip-chain, the necessity of charging is evaluated. This decision is based on various criteria. The energy consumption for the next trip is calculated to check if the current battery capacity is sufficient to reach the next location. In addition, a minimum SOC that must be available in the battery after every trip is defined in the simulation configuration. If the SOC after the next trip is lower than this minimum or if the current SOC is not sufficient to reach the next location, charging must take place. In all other cases, charging is optional, and the start of charging is based on probabilities. Depending on the SOC when starting to park at a location, the base probability of initiating the charging process is determined based on real-world data from [
28] in Figure 2 with r = 0.25. These data correlate the SOC of an electric passenger car with the probability of initiating a charging process and is the result of an analysis of the charging behavior of a 10,000 Nissan Leaf with a 24 kWh battery capacity. In this paper, these probabilities are also applied to electric passenger car models with a higher battery capacity, although it should be investigated whether it would be more realistic to scale these probabilities relative to the size of the battery capacity. The determined base probability
, dependent only on the current SOC, is then multiplied by the assumed probability that the charging infrastructure at the current location type is available
. In addition, the probability that a driver would want to initiate charging at a specific location type based on configurable preferences
is also multiplied. Different preferences may result from other factors such as charging cost, for example. The result is the total probability of initiating a charging process
, as shown in (13).
Once a charging process is initiated, the charging power is calculated for each time step. The charging power is limited by the maximum charging power of the electric passenger car model and the nominal power of the charging infrastructure at the current location type. In order to minimize the degradation process of the batteries, the constant-current constant-voltage charging (CCCV) method is implemented for AC charging, meaning that the electric passenger cars always charge with a constant maximum charging power until the SOC of 80%, for example, is reached. Then, the charging power drops, and they continue charging at a constant voltage [
29]. The charging process continues for each time step until either the SOC of the electric passenger car has reached the defined target or the charging power falls below the defined minimum charging power. An electric passenger car arriving at a fast-charging station represents a special case. As long as the current SOC is below the target SOC, it will always fast-charge independent of charging preferences as the only reason to stop at this location is the intention to fast charge. The charging process is similar to that of the other charging location types, with the difference that the charging power is limited by the maximum DC fast-charging power of the electric passenger car model and is dependent on the SOC during each time step. The modeling is improved by defining individual fast-charging profiles for the current electric passenger car models derived from measurement data from [
30]. Regardless of the charging process type, the efficiency of the inverter either in the electric passenger car itself or in the infrastructure is taken into consideration and can be defined in the simulation configuration. All charging processes of an individual electric passenger car within the observed period of time add up to its resulting charging load profile.
2.4. Mapping of Charging Load to Grid Squares Based on Driving Behavior
In order to regionalize the calculated charging load of each simulated electric passenger car, the charging processes at different location types are mapped to appropriate grid squares. The location type “home” is directly defined by the assignment of an electric passenger car to its home grid square and therefore does not change during the simulation. Every grid square that has a non-zero parking capacity of a specific location type, as described in
Section 2.2, is generally considered a valid trip end point. Trips that have the location types “work”, “retail”, “business”, and “other” as the destination therefore end in a grid square with this type of parking capacity within the driving distance defined as part of the trip. The location type “fast charging” is a special case as it represents all publicly available fast or high-power charging points that were previously identified in all grid squares.
The distance travelled by an electric passenger car as part of a trip is an important parameter for regionalizing the charging demand. By using georeferenced data, the distance between the start and end points of a trip can be determined as a straight-line distance. Since the straight-line distance differs from the driving distance travelled on a road, it is necessary to convert these distances. This conversion factor was determined using a set of 20,000 exemplary trips. For each exemplary trip, the straight-line distance between the start and end points was calculated, as was the length of the shortest drivable route between these two points using [
31]. Grid squares containing either electric passenger cars or parking spaces were randomly selected as a starting point. An end point was then determined using a random distance between 1 to 700 km and a random angle. The distance selection was not entirely random but based on a probability distribution which takes the frequency of trip distances extracted from [
24] into account. The selected random distance therefore corresponds to the straight-line distance, while the shortest route length calculated using [
31] corresponds to the associated driving distance. These data provide a basis for the distance-dependent determination of the conversion factor between the driving distance and the straight-line distance. This conversion factor also depends on the density of the road network, allowing the accessibility of a trip end point to be taken into account. For this reason, the road network density of the municipality at the starting point of each exemplary trip is determined. The density is calculated using OSM data by dividing the total length of the road network in each municipality by its total area. This indicates for each municipality in Baden-Wuerttemberg how accessible locations within it are. The conversion factor is therefore dependent on both the driving distance as well as the road network density and is selected for each generated trip individually to calculate the associated straight-line distance used to find possible trip end points as part of the mobility simulation.
When deciding on a trip end point, a preselection is made using a k-d tree. A k-d tree is a data structure that allows for efficient searches of nearby points and points in a certain distance [
32]. This concept is implemented by adding the latitude and longitude coordinates according to the World Geodetic System 84 of the centroid of each grid square to the k-d tree and then using a spatial search algorithm to identify all grid squares within a given radius, in this case, the straight-line distance of a trip from its starting point. The search area is defined as the area between two concentric circles, with the center point of both being the centroid of the grid square that is the starting point of a trip. The circle with the smaller radius has the radius
, which is equal to the calculated straight-line distance
minus a location-type-dependent offset
and must always be greater than zero according to (14). The circle with the larger radius has the radius
, which is equal to the straight-line distance
plus a location-type-dependent offset
and must always be greater than the location-type-dependent minimum search area radius
, as shown in (15).
Therefore, the search area is defined as an annulus, which describes the region between the two concentric circles. Increasing the location-type-dependent offset increases the difference between the radii and therefore widens the search area for the trip end point as shown in
Figure 4. Furthermore, the search area is dependent on the straight-line distance, and a greater straight-line distance may lead to more possible trip end points.
In addition to the distance and the available parking capacity, the theoretical occupancy of the parking spaces is taken into account in the regionalization when selecting the trip end point. This theoretical occupancy is implemented using the developed occupancy model described in
Section 2.2. The parking capacity and category of the parking spaces determine which occupancy profile is applied. Through normalization, this profile can be multiplied by the parking capacity in order to obtain the total number of free parking spaces in a grid square for the entire simulation period. The deviation between the current and theoretical occupancy is then determined for each possible trip end point in this preselection. The trip is assigned to the end point with the largest deviation, which still has available parking capacity. In this way, parking spaces are used according to their parking capacity and category. It is important to note that the presented model has limitations regarding parking space occupancy, as only electric passenger cars are simulated. This leads to a potential overestimation of the available parking capacity, as parking spaces may be occupied by other vehicle types, such as non-electric passenger cars. The model becomes more accurate in this regard at higher penetration rates.
For more realistic results, the time period used during the trip-chain generation and charging load profile calculation of all simulated electric passenger cars described in
Section 2.3 starts earlier than the mobility simulation time period. This is due to the fact that all electric passenger cars are set to start with the same SOC, when in reality, these SOCs are assumed to vary widely across all electric passenger cars at the beginning of a day. For example, the time period of interest may be two days long, but the electric passenger cars’ behavior will start to be simulated three days earlier, for a total of five days. This approach was also used in [
6]. To reduce the simulation duration, a fixed number of electric passenger cars is simulated, with the intention of reusing the calculated charging load profiles. In this case, each identified electric passenger car in every grid square is randomly associated with one of the previously simulated electric passenger cars. Due to the probabilistic nature of the previously described semi-Markov trip-chain generation, the difference between simulating all determined electric passenger cars individually and reusing a sufficiently high number of simulated electric passenger cars is negligible but may reduce the simulation duration considerably. This optimization is optional, however.
Mapping of the charging load to a grid square is achieved by iterating through every time step of the simulated time period. First, the list of simulated electric passenger cars that start a trip in the current time step is determined. This list is then sorted by location type. The trips that lead to the electric passenger car’s home location are considered separately from the other trips. For these, the destination is already known, which is why it is not necessary to determine the end point of the trip. For trips to the location types “work”, “retail”, “business”, and “other”, a trip end point is determined using the described methodology and occupancy model. The computational time necessary for finding a trip end point is dependent on the number of possible trip end points, which may increase depending on the size of the observed area as well as the area type. An urban area is expected to have more possible trip end points than a more rural area, for example. In addition, the available parking capacity at the selected trip end point must be reduced for every trip that does not lead “home” and increased upon the time of departure at the start of the next trip. Once all trips starting at the simulated time step have been assigned a trip end point, the trips starting at the next time step are identified and regionalized using the same process. After the simulation period has been completed, each grid square has a load profile for each charging location type. These load profiles may then be aggregated per grid square and represent the total load profile of all charging electric passenger cars in a grid square. These load profiles per grid square can be further aggregated, depending on the use case, for example at the postal code area level, at the municipality level, or over an individually defined area.
Figure 5 presents a Unified Modeling Language (UML) activity diagram modeling the simplified control flow of the software algorithm implemented for selecting suitable grid squares as trip end points and the subsequent mapping of the calculated charging load to individual grid squares.