Block Name: Battery
Code Location: VisualSim/actor/lib/power/Battery
Table of Content:
Block Overview:
- Work in conjunction with PowerTable, works both when there is a power source for charging is available and unavailable.
- Battery module can be used to perform battery sizing, analyze battery characteristics, Battery efficiency , instantaneous and average power consumption.
- Block parameters are provided to configure the battery for different types of battery and configurations
Description:
The battery has a table consisting different type of the batteries. Each type will have different attributes that a regular battery has. These values can be changed to model behavior of a particular type of the battery. The users can create their own battery type by specifying all the required attributes mentioned in the table. A particular battery will then be considered once the Battery type(MyBat) is specified in the Battery_Selection parameter.
Every battery in the table includes following attributes.
Attribute Name
|
Description
|
Example
|
MyBat
|
The type of the battery used in the model
|
Li-ion
|
Vbat
|
Maximum Voltage of the battery
|
3.7V
|
mAh
|
The energy charge that a battery will hold and how long a device will run before the battery needs recharging.
|
1,200 mAh
|
Crate
|
Discharge rate of the battery, used to compute the maximum power that can be drawn at any time from the battery
|
1.0
|
SelfDis
|
Self-discharge of the battery. Battery will Self-discharge a small amount of power from the battery continuously. Represented in percentage per month
|
8.0%/month
|
ChargeCycle
|
The maximum number of charge and discharge can be done for the perticular battery. The maximum power capacity of the battery will be reduced by an amount specified in 'ChargeCycleReduction' by the time battery reaches maximum Charge cycle
|
1200
|
ChargeCycleReduction
|
The amount by which the Maximum power of the battery drops by, when the battery reaches maximum charge cycle, mentioned in percentage.
|
20%
|
surgeLevel
|
Used to decide if the power request from the load at current time is a surge or not. Mentioned in percentage
|
50%
|
SurgeLifeRed
|
When load request at that time stamp is considered as surge, the specified percent of life of the battery reduces
|
(10.0E-4)%
|
SurgePowerRed
|
When load request at that time stamp is considered as surge, the specified percent of maximum capacity of the battery reduces. Since the maaximum capicity drops, this will not recovered upon charging.
|
(0.5E-4)%
|
ChargeTime
|
The amount of time the battery takes to full charge when used in regular mode
|
3.5
|
AgingPowerDrop
|
The maximum capacity of the battery drops over time due to aging of the battery
|
-
|
EnergyDensity
|
Energy density of the battery
|
-
|
Battery requires PowerTable to work. The instant_pwr_out port output is connected to From_PowerTable port. The PowerTable sends out the power requested by the load, Battery Block uses this information to caluculate how much power is to be reduced and nature of the load requested is it whether surge or not etc; In terms of charging th battery currently available energy harvesters are motor based, wind based, solar, constant power supply and file based. User can select any of the energy harvesters and can modify power output from those blocks to charge the batter.
The battery charging can be done in two different ways, Regular Charging and TurboCharging. In regular charging mode, battery will have a fixed duration of time for full charge. Also in this mode user can set a minimum State of Charge level(SOC), the battery will not be charged until the state of charge reaches this value. On the other hand by disabling the CustomCharge parameter battery will be charged continuously whenever a charging source is connected When Turbo Charging is used the battery charging is done in three steps, in each step the State of Charge of the battery is reached to a specified level. The time that the battery takes to charge up to each step is different. This detail is provided in a Turbo Charge setup. The column ‘Charging Time’ is the time need for the battery to charge up to the percentage specified in ‘Percentage’ column. The table can be modified for the charger used in real scenario. This block is having only three charging states. And this block supports only three states of TurboCharging.
The configuration table for TurboCharging is shown below:
Percentage
|
Charging Time
|
0% - 15%
|
15 min
|
15% - 50%
|
30 min
|
50% - 100%
|
120 min
|
Plots Available:
The battery model generates different plots in order to verify if the selected battery suits for the application or not. These plots include:
- Input Charge vs Charge Accepted: This plot gives the information on the incoming charging power to the battery and the amount of power being used to charge the battery. This plot is updating in real-time
- Instantaneous Power Consumption: This plot shows the total power requested from all the load at a given time and the maximum power that can be delivered at any time. This helps in choosing the right type battery rating for the application, this plot is updating in real-time
- Available Battery Capacity: this plot over time shows the charge available in the battery, this plot is updating in real-time
- Battery Life Remaining Percentage: Starting from 100% this plot shows the remaining life of the battery. This plot is updating in real-time
- Surge Details: This is a text display; whenever a surge appears the percentage of the battery life drops to is displayed in here
- FullCharge Capacity vs Designed Capacity: This graph shows the Full Charge capacity of the battery along the Designed Capacity of the battery, Since maximum capacity of the battery drops over this lot is important.
- There are two text files saved in the model directory. One contains the Statistics of the load and the Battery, Another file contains the surge details.
Parameters:
Name
|
Description
|
Type
|
Example
|
Battery_Selection
|
Type of the battery selected. The battery type selected should be having all the required details in the database block
|
String
|
"Li-ion"
|
BatteryProfileFile
|
File location containing Battery profile for different battery types.
|
String
|
"VS"+"/VisualSim/actor/lib/power/ Battery_Database.txt"
|
CustomCharge
|
If checked battery will be charged only when in the state of charge of battery reaches SOC
|
Check box
|
true
|
SOC
|
State Of Charge. If custom charging is selected battery will get charged only when the current battery capacity goes below this level.
|
Double
|
60.0
|
TurboCharge
|
If checked then the battery will be charged in Turbo Charging mode. When turob charging is used the battery charging hour is obtained from Turbo_Charger_Table. This mode enables the battery to get charged more quickly.
|
Check box
|
true
|
Turbo_Charge_Table
|
If TurboCharge is enabled then charging time needed at different steps are obtained from this table. Note that this model supports only three stages.
|
String
|
percentage ChargeHour ; 25 15 ; 50 30 ; 100 120 ;
|
Plot
|
No plots will be displayed if unchecked
|
Check box
|
true
|
SimTime
|
Simulation time must match with the global simulation time
|
Double
|
100.0
|
Battery Unit
|
Battery unit selected in the POwerTable.
|
String
|
"Watt", "Milli_Watt", "Micro_Watt"
|
ambient_temperature
|
Ambient Temperature
|
Double
|
22.0
|
Ports:
Ports
|
Description
|
Battery_Charge_Input
|
Battery charging is done using this port. The output of energy harvester is connected to this port to charge the battery
|
Battery_External_Aging
|
If there are any external factor affecting the life of the battery; providing a double value as the percentage of battery life to be dropped to this port, it will reduce the life of the battery by that much, if no factors affecting the battery then it can be left unconnected
|
From_PowerTable
|
the instantaneous power output port of the powerTable gives the power consumption of the devices. This is fed to the battery block through this port to analyze the load charecteristics.
|
Current_Battery_Charge
|
This port outputs the current battery charge remaining in double. This port outputs everytime when there is a change in the state of the load is noticed.
|
Example:
|