专栏
标签
这个仿真结果是对的吗?
一般问题
发布于 2025-04-27 01:45:16
查看 35过去428天

屏幕截图 2025-04-27 014415.png

所属专栏:Modelica语言
产品信息:Sysplorer系统建模仿真环境
其他
附件 1 个附件(58kb)
采纳的回答
发布于 2025-04-27 14:41:06

您好,下图为求解器翻译后的代码,其中 Ax=b,已知 A 和 b 求 x,但是矩阵 A 中为 0,导致线性方程组奇异,此时未知数 x 可以为任何值,求解器最终按 der(b) = 0 处理,所以 b 的值在前 3s 一直为 0。
2f761d8648fc1beb36e8829cab4b1b64_.png
如您想要实现预期目标,可按照如下方式修改代码

  Real a(start = 1);
  Real b(start = 1);
equation 
  der(a) = 1;
  if time < 3 then
    der(b) = der(a);
  else
    der(b) = -1;
  end if;

全部回答 2

发布于 2025-04-27 10:10:03

您好,暂时有以下两种修改方式,

  • 把 equation 换成 algorithm
  • 令 b=-time
    具体原因内核正在分析,后续会再次给您回复。
发布于 2025-04-27 14:41:06

您好,下图为求解器翻译后的代码,其中 Ax=b,已知 A 和 b 求 x,但是矩阵 A 中为 0,导致线性方程组奇异,此时未知数 x 可以为任何值,求解器最终按 der(b) = 0 处理,所以 b 的值在前 3s 一直为 0。
2f761d8648fc1beb36e8829cab4b1b64_.png
如您想要实现预期目标,可按照如下方式修改代码

  Real a(start = 1);
  Real b(start = 1);
equation 
  der(a) = 1;
  if time < 3 then
    der(b) = der(a);
  else
    der(b) = -1;
  end if;
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天