Battery and Energy Harvester

Early battery analysis including lifecycle, shock impacts, degradation and availability

SystemResource_3_Load

Browsable image of the model.

  • To download OpenWebStart click on the links -
    Windows- Compatibility:Windows 10 or higher (*)
    macOS - Compatibility:macOS 10.15 (Catalina) or higher (*)
    Linux - Compatibility:Ubuntu 18.04 LTS or higher (*)
  • For an executable version,
  • Mouse over the icons to view parameters. Click on hierarchy and plotters to reveal content (if provided).
  • To simulate, click on Launch button, open downloaded file and click Run on the Java Security Page.
SystemResource_3_Loadmodel <h2>Battery2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Battery Library</td><td>Battery Library</td></tr><tr><td>Battery_Name</td><td>&quot;Battery_1&quot;</td><td>&quot;Battery_1&quot;</td></tr><tr><td>BatteryProfileFile</td><td>Battery_Database.txt</td><td>&quot;Battery_Database.txt&quot;</td></tr><tr><td>Battery_Selection</td><td>Li-ion</td><td>&quot;Li-ion&quot;</td></tr><tr><td>customCharging</td><td>false</td><td>false</td></tr><tr><td>SOC</td><td>80.0/*in percentage*/</td><td>80.0</td></tr><tr><td>TurboCharge</td><td>false</td><td>false</td></tr><tr><td>Turbo_Charger_Table</td><td>ID    percentage   ChargeHour  ;\\n&quot;1&quot;   25              15  ;\\n&quot;2&quot;   50              30  ;\\n&quot;3&quot;   100             120 ;</td><td>&quot;ID    percentage   ChargeHour  ;\\n&quot;1&quot;   25              15  ;\\n&quot;2&quot;   50              30  ;\\n&quot;3&quot;   100             120 ;&quot;</td></tr><tr><td>plot</td><td>true</td><td>true</td></tr><tr><td>SimTime</td><td>100.0</td><td>100.0</td></tr></table> <h2>Time_Energy_Harvester</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Power generation type Availabel\\n1.Constant Power Source\\n2.File Based\\n3.Time Based</td><td>Power generation type Availabel\\n1.Constant Power Source\\n2.File Based\\n3.Time Based</td></tr><tr><td>_explanation</td><td>Power-&gt;Time Based Power Gen</td><td>Power-&gt;Time Based Power Gen</td></tr><tr><td>UseTraceFile</td><td>false /* boolean enables mode */</td><td>false</td></tr><tr><td>Trace_File_Name</td><td>/* file name */</td><td>&quot;/* file name */&quot;</td></tr><tr><td>UseTimeBased</td><td>false /* boolean enables mode */</td><td>false</td></tr><tr><td>Time_Based_Duration</td><td>10.0E-03 /* time seconds */</td><td>0.01</td></tr><tr><td>Time_Based_Charge_Setup</td><td>/* Time-Based Charge Profile */\\nID  StartWHR  EndWHR  Efficiency  PercentTime  ;     \\n 1     0.0     20.0    100.0       15.0        ;\\n 2    20.0     20.0    100.0       50.0        ;\\n 3    20.0      0.0    100.0       15.0        ;\\n 4     0.0      0.0    100.0       20.0        ;</td><td>&quot;/* Time-Based Charge Profile */\\nID  StartWHR  EndWHR  Efficiency  PercentTime  ;     \\n 1     0.0     20.0    100.0       15.0        ;\\n 2    20.0     20.0    100.0       50.0        ;\\n 3    20.0      0.0    100.0       15.0        ;\\n 4     0.0      0.0    100.0       20.0        ;&quot;</td></tr><tr><td>UseConstant</td><td>true /* boolean enables mode */</td><td>true</td></tr><tr><td>ConstantChargeCapacity</td><td>1.0e-3 /* charge rate in Watt-Hr */</td><td>1.0E-3</td></tr><tr><td>SimTime</td><td>100.0</td><td>100.0</td></tr></table> <h2>SystemResource3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>This_Scheduler_Name</td><td>&quot;Sw3&quot;</td><td>&quot;Sw3&quot;</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;Fld_Name_or_String_or_None&quot;</td><td>&quot;Fld_Name_or_String_or_None&quot;</td></tr><tr><td>Task_Context_Switch_Time</td><td>0.0</td><td>0.0</td></tr><tr><td>Round_Robin_Time_Slice</td><td>1.0E-3</td><td>1.0E-3</td></tr><tr><td>Clock_Rate_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Max_Scheduler_Length</td><td>30</td><td>30</td></tr><tr><td>Time_Type</td><td>Relative Time</td><td>Relative Time</td></tr><tr><td>Scheduler_Type</td><td>Scheduler_FCFS</td><td>Scheduler_FCFS</td></tr><tr><td>Add_Scheduler_Times_to_DS</td><td>false</td><td>false</td></tr></table> <h2>Mapper3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;Sw3&quot;</td><td>&quot;&quot;Sw3&quot;&quot;</td></tr><tr><td>Task_Number</td><td>1</td><td>&quot;1&quot;</td></tr><tr><td>Task_Priority</td><td>Fld_Name_or_Int_or_Dbl_or_Expr</td><td>&quot;Fld_Name_or_Int_or_Dbl_or_Expr&quot;</td></tr><tr><td>Task_Time</td><td>rand(1.0,10.0)</td><td>&quot;rand(1.0,10.0)&quot;</td></tr><tr><td>Task_Plot_ID</td><td>1</td><td>1</td></tr></table> <h2>Traffic3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Data_Structure_Name</td><td>&quot;Header&quot;</td><td>&quot;Header&quot;</td></tr><tr><td>Start_Time</td><td>20.0</td><td>20.0</td></tr><tr><td>Value_1</td><td>20.5</td><td>20.5</td></tr><tr><td>Value_2</td><td>15.0</td><td>15.0</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr><tr><td>Time_Distribution</td><td>Exponential (Value_1)</td><td>Exponential (Value_1)</td></tr></table> <h2>SystemResource</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>This_Scheduler_Name</td><td>&quot;Sw2&quot;</td><td>&quot;Sw2&quot;</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;Fld_Name_or_String_or_None&quot;</td><td>&quot;Fld_Name_or_String_or_None&quot;</td></tr><tr><td>Task_Context_Switch_Time</td><td>0.0</td><td>0.0</td></tr><tr><td>Round_Robin_Time_Slice</td><td>1.0E-3</td><td>1.0E-3</td></tr><tr><td>Clock_Rate_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Max_Scheduler_Length</td><td>50</td><td>50</td></tr><tr><td>Time_Type</td><td>Relative Time</td><td>Relative Time</td></tr><tr><td>Scheduler_Type</td><td>Scheduler_FCFS</td><td>Scheduler_FCFS</td></tr><tr><td>Add_Scheduler_Times_to_DS</td><td>false</td><td>false</td></tr></table> <h2>Mapper2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;Sw2&quot;</td><td>&quot;&quot;Sw2&quot;&quot;</td></tr><tr><td>Task_Number</td><td>1</td><td>&quot;1&quot;</td></tr><tr><td>Task_Priority</td><td>Fld_Name_or_Int_or_Dbl_or_Expr</td><td>&quot;Fld_Name_or_Int_or_Dbl_or_Expr&quot;</td></tr><tr><td>Task_Time</td><td>rand(1.0,5.0)</td><td>&quot;rand(1.0,5.0)&quot;</td></tr><tr><td>Task_Plot_ID</td><td>1</td><td>1</td></tr></table> <h2>Traffic2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Data_Structure_Name</td><td>&quot;Header&quot;</td><td>&quot;Header&quot;</td></tr><tr><td>Start_Time</td><td>10.0</td><td>10.0</td></tr><tr><td>Value_1</td><td>1.5</td><td>1.5</td></tr><tr><td>Value_2</td><td>2.0</td><td>2.0</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr><tr><td>Time_Distribution</td><td>Exponential (Value_1)</td><td>Exponential (Value_1)</td></tr></table> <h2>TextDisplay</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>rowsDisplayed</td><td>10</td><td>10</td></tr><tr><td>columnsDisplayed</td><td>40</td><td>40</td></tr><tr><td>suppressBlankLines</td><td>false</td><td>false</td></tr><tr><td>title</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>ViewText</td><td>true</td><td>true</td></tr><tr><td>saveText</td><td>false</td><td>false</td></tr><tr><td>fileName</td><td>Enter Filename to save text</td><td>&quot;Enter Filename to save text&quot;</td></tr><tr><td>Append_Time</td><td>true</td><td>true</td></tr></table> <h2>PowerTable2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>This is the Excel spreadsheet import.  The power \\ninformation is maintained here.</td><td>This is the Excel spreadsheet import.  The power \\ninformation is maintained here.</td></tr><tr><td>Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>fileOrURL</td><td>&nbsp;</td><td>&quot;&quot;</td></tr><tr><td>Manager_Setup</td><td>/* Power_Table.  First row contains Column Names, expressions valid for entries except Device Name.                                                 \\n                                                                                                                                                    \\n--------Device Name-------  ---------Power States------  -----Operating States------  -----------State Transitions---------  --Speed--  --Exist-- */\\n    Architecture_Block      Standby  Active  Wait  Idle   Existing  OffState  OnState  t_OnOff      Mhz       Volts   ; \\nScheduler_Sw1                 0.05  0.50    0.0   10.0   Idle      Standby   Active   0.0        100.0     1.0     ; \\nScheduler_Sw2                 0.03  0.07     0.0    0.0   Standby   Standby   Active   0.0       1000.0     1.0     ;  \\nScheduler_Sw3                 0.01  0.35     0.0    0.0   Standby   Standby   Active   0.0       1000.0     1.0     ;  </td><td>/* Power_Table.  First row contains Column Names, expressions valid for entries except Device Name.                                                 \\n                                                                                                                                                    \\n--------Device Name-------  ---------Power States------  -----Operating States------  -----------State Transitions---------  --Speed--  --Exist-- */\\n    Architecture_Block      Standby  Active  Wait  Idle   Existing  OffState  OnState  t_OnOff      Mhz       Volts   ; \\nScheduler_Sw1                 0.05  0.50    0.0   10.0   Idle      Standby   Active   0.0        100.0     1.0     ; \\nScheduler_Sw2                 0.03  0.07     0.0    0.0   Standby   Standby   Active   0.0       1000.0     1.0     ;  \\nScheduler_Sw3                 0.01  0.35     0.0    0.0   Standby   Standby   Active   0.0       1000.0     1.0     ;  </td></tr><tr><td>Async_State_Change</td><td>/* Async_State_Change.  First row contains Column Names, expressions valid for entries except Device Name. \\n                                                                                                           \\n--------Device Name-------  --------------Time State------------ */\\nArchitecture_Block          State      Time_or_Express      Next ; \\n/* Scheduler_Sw+Inst\t    Idle\t2.0\t\t\tStandby ; */\\nScheduler_Sw+Inst\t    Standby\t2.0\t\t\tIdle    ; \\n/* Scheduler_Sw+Inst           Idle\t1.0\t\t\tWait    ; */</td><td>/* Async_State_Change.  First row contains Column Names, expressions valid for entries except Device Name. \\n                                                                                                           \\n--------Device Name-------  --------------Time State------------ */\\nArchitecture_Block          State      Time_or_Express      Next ; \\n/* Scheduler_Sw+Inst\t    Idle\t2.0\t\t\tStandby ; */\\nScheduler_Sw+Inst\t    Standby\t2.0\t\t\tIdle    ; \\n/* Scheduler_Sw+Inst           Idle\t1.0\t\t\tWait    ; */</td></tr><tr><td>Expression_List</td><td>/* First row contains Column Names.                                                                                                                 \\n                                                                                                                                                    \\n---------Reference--------  ------------------------------------Expression----------------------------------------------------------------------- */\\n           Name                                                   Value                                                                           ; \\nCycle_t                     1.0E-6 / Mhz   // spaces ok here                                                                                      ; \\nActive_1                    Mhz/10.0\t\t;</td><td>/* First row contains Column Names.                                                                                                                 \\n                                                                                                                                                    \\n---------Reference--------  ------------------------------------Expression----------------------------------------------------------------------- */\\n           Name                                                   Value                                                                           ; \\nCycle_t                     1.0E-6 / Mhz   // spaces ok here                                                                                      ; \\nActive_1                    Mhz/10.0\t\t;</td></tr><tr><td>Battery_Units</td><td>Watts</td><td>Watts</td></tr><tr><td>State_Plot_Enable</td><td>false</td><td>false</td></tr></table> <h2>SystemResource2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>This_Scheduler_Name</td><td>&quot;Sw1&quot;</td><td>&quot;Sw1&quot;</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;Fld_Name_or_String_or_None&quot;</td><td>&quot;Fld_Name_or_String_or_None&quot;</td></tr><tr><td>Task_Context_Switch_Time</td><td>0.0</td><td>0.0</td></tr><tr><td>Round_Robin_Time_Slice</td><td>1.0E-3</td><td>1.0E-3</td></tr><tr><td>Clock_Rate_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Max_Scheduler_Length</td><td>30</td><td>30</td></tr><tr><td>Time_Type</td><td>Relative Time</td><td>Relative Time</td></tr><tr><td>Scheduler_Type</td><td>Scheduler_FCFS</td><td>Scheduler_FCFS</td></tr><tr><td>Add_Scheduler_Times_to_DS</td><td>false</td><td>false</td></tr></table> <h2>Mapper</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;Sw1&quot;</td><td>&quot;&quot;Sw1&quot;&quot;</td></tr><tr><td>Task_Number</td><td>1</td><td>&quot;1&quot;</td></tr><tr><td>Task_Priority</td><td>Fld_Name_or_Int_or_Dbl_or_Expr</td><td>&quot;Fld_Name_or_Int_or_Dbl_or_Expr&quot;</td></tr><tr><td>Task_Time</td><td>rand(1.0,3.0)</td><td>&quot;rand(1.0,3.0)&quot;</td></tr><tr><td>Task_Plot_ID</td><td>1</td><td>1</td></tr></table> <h2>Traffic</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Data_Structure_Name</td><td>&quot;Header&quot;</td><td>&quot;Header&quot;</td></tr><tr><td>Start_Time</td><td>5.0</td><td>5.0</td></tr><tr><td>Value_1</td><td>5.0</td><td>5.0</td></tr><tr><td>Value_2</td><td>2.0</td><td>2.0</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr><tr><td>Time_Distribution</td><td>Fixed (Value_1)</td><td>Fixed (Value_1)</td></tr></table>

This model demonstrates the VisualSim Battery and Energy Harvester blocks. This models shows how the block can be added to the Power Table to enhance rhe power infrastructure and capability of the model. The battery block brings the life cycle management of a long list of battery type along with impact of spikes and shocks. Energy harvester simulates about 10 different types of harvesting mechnicams.