python - 在 python 中建模充电和供电电池
问题描述
我正在兜圈子,试图在给定负载和电源阵列的情况下对电池充电和电池使用系统进行建模。
目前,我有一系列负载和供应,这就是我想要实现的目标:
当我的电源大于我的负载时,我想给我的电池充电,但效率只有 97%。例如,如果我在那一刻的电力盈余是 1kW,那么以 kWh 为单位的能量盈余 = 1kW*(1.00 / 60.00)。让我的充电=能量盈余*0.97。鉴于我正在建模 1440 分钟(一天)。
当我的负载大于我的电源时,我想从电池中汲取能量来补偿偏移。我可以汲取多少功率是有限制的,但这是我稍后会考虑的因素。
我想在每个时间步保持电池电量的运行计数。这意味着当电池电量为零时,我可以采取对策,当电池电量达到最大时,我可以节流发电。后两点我想稍后再处理,但最初的计数是我需要帮助的。
我的尝试:在将每个时间步长值转换为能量之前,我已经尝试过很多次合并一个阵列,该阵列会考虑我的负载和电源阵列之间的功率差异。给我 +--+++-+ 值等...为了获得电池的总电量,我只是使用了 np.sum() 并且效果很好。但是,我正在努力合并一个不使用 if: 语句将其锁定在该值的高端上限。
所以我觉得我正在获得一些东西的路上,但我在最后一点磕磕绊绊,因为我正在混淆试图实施然后进入其他领域的最大上限。
一如既往,非常感谢您的帮助!我希望这足够清楚!我认为一个非常基本的示例足以让我对此进行排序。基本面。
我已经上传了一个我正在处理的例子。一个负载和电源阵列,带有一个标量电池电量,我想根据每个时间步长的负载和电源之间的差异来改变它。充电和绘制。
import numpy as np
import random
import matplotlib.pyplot as pyplot
timebase = 1440 #Hours
t0 = 0
ts = ts = np.arange(t0, timebase, 1)
Battery_Charge = 38.40
load = np.array( range(timebase), dtype = float) # Just as an example of the type of array I am using
supply = np.array( range(timebase), dtype = float) #
def battery(Total_Supp, Battery_Charge, Load):
values = (Total_Supp - Load) * (1.00/60.00) # Energy draw / charge per unit time
charge = np.array( range(timebase), dtype = float ) # Charge of batteries at given unit time
charge_eff = 0.97
for t in range(timebase):
if values[t] > 0:
charge[t] = Battery_Charge + np.sum( values[0:t-1] ) + values[t]*charge_eff
if values [t] < 0:
charge[t] = Battery_Charge + np.sum(values[0:t])
if charge[t] > 38.4:
charge[t] = charge[t-1]
return charge
battery = (supply,Battery_Charge, load)
解决方案
推荐阅读
- html - 如何让最后一个孩子不褪色?
- typescript - 有没有一种方法可以直接从 Typescript 中的联合类型中排除类型?
- vb.net - 为什么 VB.Net 在运行 Access 更新查询时抛出错误,而它在 Access 中正常运行
- linux - Docker停止睡眠bash脚本
- mysql - MySQL:替代使用“NOT”
- flutter - Flutter:当我传递到另一个屏幕时,实例数据与 Provider 一起丢失
- javascript - 如何选择最后一个 * 之后的句子
- mysql - 从版本 5.7.31 升级到版本 8.0.27 后 MySQL 服务不工作
- mysql - Mysql如何通过'[id,anotherId]'格式加入相关表
- xamarin - Xamarin Community Toolkit LongpressCommand 停止 CollectionView iOS 中的项目选择