问题标签 [systemmodeler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
modelica - 作为除数的导数在 Dymola 的初始化期间除以零
我构建了一个包含 的导数的模型dy/dx=5
,如以下部分所示,但该模型在 Dymola 初始化期间失败,在另一个问题中,它已得到解答。原因是在time=0时,der(x)
和的值der(y)
都是0,所以会出现除以0的错误。
但是当我在 Wolfram System Modeler 和 OpenModelica 中尝试相同的模型时,模型运行良好。
在 Wolfram System Modeler 中,它der(y)/der(x)=5
直接使用方程.
我的问题是:
modelica - Dymola中求解DAE的过程
我试图了解在 Dymola 中解决 DAE 的过程。根据 Dymola 的帮助文档第 13.8 章,Dymola 会首先使用索引缩减算法将原始 DAE 转换为 ODE,然后经过分区和撕裂后得到 BLT 形式,因此 Dymola 可以像 DASSL 一样使用 BDF 方法解决 ODE。
我还从Wolfram mathematica中找到了一些关于如何解决 DAE 的资料,如下图所示,不同阶段可能有不同的策略,我标记了我认为在 Dymola 中采用的方法。我的问题是:
modeling - 在“modellica方法”中建模电流控制电机的数学块模型
对于我的一个项目,我用它自己的电流控制器控制一个 BLDC 电机。
为了设计电机控制器,我为流动函数安装了一些时间跟踪:
捕捉整个系统的动态,即电机、电流控制器/驱动器和负载。
J是转子惯量,[kg*m^2]
r阻尼常数(线性摩擦)
tau是扭矩常数 [Nm/A]
u[t]当前输入
der(der(phi))是角加速度
der(phi)角速度
拟合值表示整个系统对于电机、负载和电机的电流控制器/驱动器的“连续”近似来说已经足够好了。在控制方案中,我给出了一个以安培为单位的信号 u(t),我期望一个扭矩和一个角速度作为输出。当时我只需要角速度,但我离题了,这种方法效果非常好,但在数学中进行了拟合和设计。
我想在 modelica 中构建一个更大、更复杂的机器人系统(特别是 Systemmodeler,但是,modelica library 3.2.x),但是我遇到了一些问题。
我的第一次尝试是:
但是,当使用另一个外部负载(外部模型)进行模拟时,我遇到了很多问题,一些比我更有经验的人告诉我,这种建模形式是“单向”而不是“modelica 方法”,而是更多的simulink形式。
也就是说,它应该是双向的,而不仅仅是数字输出,以便正确地与多体外部模型做出反应,这将连接到。
我的第二次尝试是:
当连接到我更大的多体模型时,它确实更像预期的那样工作,当施加外部扭矩/负载时,这个模型会产生反应。然而,当模拟这个模型以查看它与纯块模型相比的公平性时,它们无论如何都不相同。我不得不花费大量时间尝试拟合惯性和摩擦数据以获得相似的结果。
所以我的问题是,什么是最好的方法,将纯块模型(数学模型)或至少,我的纯块模型,变成一个更现实的模型,或者至少,将连接输出变成更现实,或者我猜是“非正式”的.
我不想使用我的第二次尝试,因为与我的第一个模型相比,我不能相信与块相比我必须调整的值实际上是正确的,因为它们不适合真实世界数据的值。
modelica - Modelica v4.0.0 展示台坏了
我最近迁移到 modelica 版本 4.0.0,我遇到了一些问题,结果是SignalArrow
和传感器的一些可视化设置,例如删除absoluteSensor
了它们的设置,diameter
即:
还有很多其他的事情。这有点令人沮丧,但是我设法发现这些缺失的设置已被移入world
课堂,
然而,这些变化不会影响来自传感器和可视化器的这些箭头的直径大小。
例如,在这张图片中,黄色和粉色箭头应该是 5mm(与黑色坐标箭头的直径相同),而不是 modelica 计算出来的。
我尝试删除所有可视化工具并重新插入它们,禁用然后重新启用它们以及我能想到的所有其他东西。它们的直径是从某个地方计算出来的。然而,我似乎找不到它。
如何解决这个问题,或者这只是在 4.0.0 中被破坏了?
添加代码 v 3.2.3
迁移到 v4.0.0