- 您定义VOC第一tablelookup当前函数的函数。你能解释为什么一个开路电压将取决于电流?
- 电压是一个在每个节点定义变量。这也符合定义它作为查找表后吗?
初始方程Simscape定制模型
4视图(30天)
显示旧的评论
你好,
我使用一个自定义组件模型Simscape电池。模型允许我为电压输入一个查找表的能力,当前和电池的电荷状态和模拟电池的电压、电流和热响应。我的方程部分Simscape组件如下所示:
方程
断言(SOC > = 0,的电荷状态不能小于0);
断言(SOC < = 1,的电荷状态不能大于1);
让
%开路电压
voc = tablelookup (IData SOCData VData, {0,“一个”},SOC,插值=光滑,外推=光滑);
在
%电荷状态
SOC.der = = i / C;
%节点电压的定义
v = = p。v - n.v.;
%节点电压查找
v = = tablelookup (IData、SOCData VData, abs (i)、SOC,插值=光滑,外推=光滑);
%当前相关的能力
C = = tablelookup (IData CData, abs (i)、插值=光滑,外推=光滑);
%的温度
T = = H.T;
%的热量产生
路上= = abs(我)* (voc - v);
%热流
0 = = Q +路上;
结束
结束
这个模型的测试工作很好,能够与我的测试数据的初始化模型总是一个问题,我试图规避。
模型无法初始化适当当我对模型施加一个恒定电流。例如如果我尝试画一个常数2的模型,解算器会抱怨无法初始化,初始条件无法收敛。我相信这是因为背后的问题如果我开始完全充电电池电荷状态是100%,这将是技术当前画当电池有一个0。然而当我当前的应用于电池,这加上状态的初始条件部队无法收敛的解算器解决方案,因为它不存在。
我想我猜测这是有效的,因为如果我代替恒流画与阶跃响应的最终值2,模型适当初始化,可以前进。这是真的,即使我设置的时间步一步阻止每股收益= 2.2204 e-16力量解决者接受0作为初始条件,然后2应用适当的电流。
问题是我不想必须不断利用一步阻止恒流驱动模型。我认为我可以把模型代码通过使用内部的这种行为
方程(初始= true)
我= = 0;
结束
但这总是会导致失败无论驾驶输入模型。
还有另一种方法来完成这个beahvior和得到我需要的或者我坚持做我所有的驾驶输入阶跃响应吗?
0评论
答案(2)
哈维尔Gazzarri
2020年3月14日
你好Christpher,
谢谢你的询价。
我不确定我是否理解你的方法,所以我有几个澄清的问题:
可以让你分享块本身所以我可以试着运行它,看看能不能发现这个问题?
Simscape电气有一块电池,你也可能想要考虑这个模型,其中包括SOC和T依赖,以及老化的影响。
最好的问候,
哈维尔
jgazzarr@mathworks.com
哈维尔Gazzarri
2020年3月16日
谢谢你克里斯多夫。我明白你的意思。
初始化的问题可能是这样定义VOC的结果。这是一个非常简单的选择,这是定义只是作为SOC和T的函数,不是颇。没有问题的查找表具有不同的维度。请让我知道如果你需要援助。
如果你确实可以分享块请这么做,我会调查问题站在我这一边。
最好的问候,
哈维尔