我在 Modelica 上收到一条错误消息:
带有非参数测试的 if 方程中的所有分支必须具有相同数量的方程
错误的来源是代码的以下部分:
equation
if der(Posit2.s)<=0 then
pressure=4e5+((500e5-4e5)/0.0111)*(0.0111-Posit2.s);
end if;
Run Code Online (Sandbox Code Playgroud)
你知道如何处理这个错误吗?
我尝试使用 Modelica 在 Twinbuilder 中对液压系统进行建模。但是我总是遇到错误,我认为这与收敛问题有关。为了理解问题是什么,我将我的系统简化为动态管道、固定边界和扫描体积,其运动将由正弦函数给出。但是在这种简化的情况下,我仍然遇到错误。即使收到警告,我也能够编译模型。当我尝试求解模型时,. 它没有解决。我想问你是否给我一个关于这个问题的建议?
这是模型的框图
我在尝试求解模型时遇到的错误如下:
在 Hochdruckreiniger3_1 上进入初始化模式时发生错误。
在用户模型的初始化函数中遇到错误。
初始化模拟器时遇到错误
残差函数评估在“1”的初始点失败来自 Hochdruckreiniger3_1:雅可比评估在“1”的初始点失败来自Hochdruckreiniger3_1:无法在“1”中的事件迭代中找到一致的解决方案,0 处 0.00000000000000000E+000 来自 Hochdruckreiniger3_1:来自 Hochdruckreiniger3_1: “3”“#r171#”的初始点残差函数评估失败来自 Hochdruckreiniger3_1:初始化失败。
代码如下:
model Hochdruckreiniger3
//Declaration(s)
Real V_max = 0.000003;
Real V_tod = 0.000002;
Real pi = 3.14;
Real N = 2800;
//Component(s)
Modelica.Fluid.Machines.SweptVolume Swept1 (
pistonCrossArea = 0.0001131,
clearance = 0.00000250621,
redeclare package Medium = Modelica.Media.Water.StandardWater,
nPorts = 1,
use_portsData = true,
use_T_start = true,
T_start = 293.15);
inner Modelica.Fluid.System system;
Modelica.Mechanics.Translational.Sources.Position Posit1 (exact = true, useSupport = false); …Run Code Online (Sandbox Code Playgroud) 我定义了一个有两个元素的变量y[i,j]。如何在 Modelica 中对这个变量的所有分量求和?
谢谢