初始方程Simscape定制模型

4视图(30天)
克里斯托弗·麦克纳马拉
回答: 哈维尔Gazzarri 2020年3月16日
你好,
我使用一个自定义组件模型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和得到我需要的或者我坚持做我所有的驾驶输入阶跃响应吗?

答案(2)

哈维尔Gazzarri
哈维尔Gazzarri 2020年3月14日
你好Christpher,
谢谢你的询价。
我不确定我是否理解你的方法,所以我有几个澄清的问题:
  1. 您定义VOC第一tablelookup当前函数的函数。你能解释为什么一个开路电压将取决于电流?
  2. 电压是一个在每个节点定义变量。这也符合定义它作为查找表后吗?
可以让你分享块本身所以我可以试着运行它,看看能不能发现这个问题?
Simscape电气有一块电池,你也可能想要考虑这个模型,其中包括SOC和T依赖,以及老化的影响。
最好的问候,
哈维尔
jgazzarr@mathworks.com
1评论
克里斯托弗·麦克纳马拉
嘿,哈维尔,
谢谢你的回复。
  1. VOC,我不把它定义为电流的函数。我的查找表电压电流和电荷状态的函数和VOC我使用相同的表但使用零电流作为当前值通过使用{0,' '}的电流。
  2. 我认为,在变量和定义一个查找表是正确的。通常这个方程的定义在变量定义从“foundation.electrical行为是遗传的。分支“b ut我只有使用域中的节点定义“foundation.electrical.electrical”。第一行定义了在行为和第二行定义其电流和电荷状态的关系。
我可以看到如果我可以分享块本身获得更多反馈但我认为可能是最好通过电子邮件完成。我知道Simscape电的电池块但我们不利用这个包和一般不需要的大部分功能。

登录置评。


哈维尔Gazzarri
哈维尔Gazzarri 2020年3月16日
谢谢你克里斯多夫。我明白你的意思。
初始化的问题可能是这样定义VOC的结果。这是一个非常简单的选择,这是定义只是作为SOC和T的函数,不是颇。没有问题的查找表具有不同的维度。请让我知道如果你需要援助。
如果你确实可以分享块请这么做,我会调查问题站在我这一边。
最好的问候,
哈维尔

类别

找到更多的在能量储存帮助中心文件交换

下载188bet金宝搏


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!