TIL库EffCompressor添加转动惯量后结构奇异问题求助
问题分析与解决方法
结构奇异的核心原因
你遇到的结构奇异,本质是新增方程与原模型的已有约束形成了冗余冲突:
原EffCompressor模型在两种运行模式下,都已经对tau(扭矩)和w(角速度)有明确的闭合约束:
- 无机械端口模式:
w由固定参数n计算得出(w=2*PI*n),tau由轴功率和角速度推导(tau=shaftPower/max(w,1e-6)),变量关系完全闭环。你添加的tau=J*der(w)中,der(w)=0(因w固定),直接要求tau=0,和原模型的tau=shaftPower/w形成矛盾约束。 - 有机械端口模式:
w是法兰角度的导数(w=der(getInputsRotary.rotaryFlange.phi)),tau直接等于外部法兰输入的扭矩(tau=getInputsRotary.rotaryFlange.tau)。你添加的tau=J*der(w)又给tau增加了一个独立约束,同一个变量出现两个不相关的方程,导致结构奇异。
你误以为“添加一个未知量和一个方程”就能平衡,但实际上原模型的变量已经全部被约束,新增的方程属于冗余约束。
针对性解决方法
需要根据两种运行模式,分别调整转动惯量的集成逻辑,避免冗余约束:
1. 有机械端口模式的修改
把转动惯量的扭矩平衡逻辑,整合到外部法兰与压缩机负载的扭矩传递中,而非直接覆盖tau的定义:
// 保留转动惯量参数 parameter Modelica.Units.SI.Inertia J = 1; // 修改方程部分 equation // 保留原有的角速度定义 w = der(getInputsRotary.rotaryFlange.phi); // 计算压缩机的负载扭矩 tau_compressor = shaftPower / max(w, 1e-6); // 外部法兰输入扭矩 = 压缩机负载扭矩 + 转动惯量加速扭矩 getInputsRotary.rotaryFlange.tau = tau_compressor + J*der(w);
逻辑通顺后:外部输入的扭矩既要克服压缩机负载,又要提供转动惯量的加速力,变量间无冗余约束,结构奇异问题解决。
2. 无机械端口模式的修改
原模式是稳态假设(固定转速),要体现惯性必须改成动态模式,不能再用固定参数n,需引入内部转动角度变量:
// 新增内部转动角度变量 Modelica.Units.SI.Angle theta; // 保留转动惯量参数 parameter Modelica.Units.SI.Inertia J = 1; // 修改方程部分 equation // 角速度由内部角度的导数定义 w = der(theta); // 压缩机负载扭矩 tau_compressor = shaftPower / max(w, 1e-6); // 扭矩平衡:负载扭矩等于转动惯量加速扭矩(无外部扭矩输入) tau_compressor = J*der(w);
如果需要模拟原模型的“固定转速”效果,可额外添加转速控制器(比如PI控制器),将设定转速n与实际w的偏差转化为虚拟扭矩,加入到扭矩平衡方程中。
两种模式的统一适配
可通过条件语句(基于是否使用机械端口的布尔参数)整合两种逻辑,比如利用原模型可能存在的useRotaryPort参数做分支处理:
parameter Boolean useRotaryPort = false; parameter Modelica.Units.SI.Inertia J = 1; Modelica.Units.SI.Angle theta; // 仅无端口模式使用 equation if useRotaryPort then w = der(getInputsRotary.rotaryFlange.phi); tau_compressor = shaftPower / max(w, 1e-6); getInputsRotary.rotaryFlange.tau = tau_compressor + J*der(w); else w = der(theta); tau_compressor = shaftPower / max(w, 1e-6); tau_compressor = J*der(w); // 若需固定转速,添加控制器逻辑示例: // tau_controller = kp*(n_setpoint - w/(2*PI)) + ki*integral(n_setpoint - w/(2*PI)); // tau_compressor + tau_controller = J*der(w); end if;
内容的提问来源于stack exchange,提问作者Robin Tassenoy
相关产品推荐
相关产品推荐

