- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试建立一个模型,该模型将根据是否存在某些组件(在我的情况下为流体端口)具有略微不同的方程。
如下代码将不起作用:
parameter Boolean use_component=false;
Component component if use_component;
equation
if use_component then
component.x = 0;
end if;
最佳答案
如果要使用条件组件,则需要注意一些限制。 Modelica 3.3 规范的第 4.4.5 节很好地总结了它。它说“如果条件为假,则组件、其修饰符和任何连接方程
涉及组件,被删除”。我将在几秒钟内向您展示如何使用它来解决您的问题,但首先我想解释一下为什么您的解决方案不起作用。
这个问题与检查模型有关。在您的情况下,很明显等式 component.x
和组件 component
要么都存在,要么都不存在。那是因为您已将它们绑定(bind)到同一个 bool 变量。但是如果你没有这个怎么办:
parameter Real some_number;
Component component if some_number*some_number>4.0;
equation
if some_number>=-2 and some_number<=2 then
component.x = 0;
end if;
component.x
没有机会
component
时存在缺席。但是我们能证明这样的事情吗
一般 ?不。
component
的修改。 , IE。
parameter Boolean use_component=false;
Component component(x=0) if use_component;
component
如果
component
不存在,修改(方程式)也不存在。所以变量
x
及其相关的方程式是“同步的”。但这并不适用于所有情况(IIRC,
x
必须有一个
input
限定符才能工作......也许在你的情况下是可能的?)。
component.x
里面
component
.二是在
component
上介绍一个连接器如果已连接,它将生成您想要的方程式。与修改案例(这不是巧合)一样,您可以将
x
关联起来。使用某种输入连接器,然后执行以下操作:
parameter Boolean use_component;
Component component if use_component;
Constant zero(k=0);
equation
connect(k.y, component.x);
connect
)之后,您得出的结论是它们都不起作用。如果是这种情况,那么我会谦虚地建议您对如何设计组件有疑问。出现这些限制的原因与必须自行检查组件的正确性有关。这要求组件是完整的(规范术语中的“平衡”)。
关于条件组件声明和以下 if 等式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14668468/
我正在尝试建立一个模型,该模型将根据是否存在某些组件(在我的情况下为流体端口)具有略微不同的方程。 如下代码将不起作用: parameter Boolean use_component=false;
首先采用,kludge 解决方案,sentinel 方法(您的程序必须不允许输入 sentinel 值): select coalesce(a, -2147483648) = coalesce(b,
我有一个类型族,它确定某物是否位于类型级列表的开头。 type family AtHead x xs where AtHead x (x ': xs) = True AtHead y
我试图找出为什么在下面的方法中,数组“8”中的最后一个值会满足“(8 & 7) == 0”的 where 子句。 public class Test { public static voi
我是 C 语言的初学者。我正在使用在线示例代码并尝试分析以下内容, int x = 0, y = 16; *x_ptr = &x 这是我要确保我在语法上理解的第二行。我刚刚遇到指针的概念,并试图从概念
我想知道geom_density()到底在做什么,所以我证明了图的合理性,以及是否有任何方法可以提取为绘制的每条曲线生成的函数或点。 谢谢 最佳答案 键入get("compute_group", gg
我试图用 Haskell 实现一个 Braun 树,定义如下: {-# LANGUAGE GADTs #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyK
==有什么区别和 === ? 松散到底是怎么做的==对比工作? 严格怎么做===对比工作? 什么是一些有用的例子? 最佳答案 ==之间的区别和 === 松散的区别==相等运算符和严格 ===相同的运算
==有什么区别和 === ? 松散到底是怎么做的==对比工作? 严格怎么做===对比工作? 什么是一些有用的例子? 最佳答案 ==之间的区别和 === 松散的区别==相等运算符和严格 ===相同的运算
在理解下面的代码中发生了什么时遇到问题。数组 c 和 d 的行为是我所期望的。但是 a 和 b 是怎么回事? (我也用普通的标量变量尝试过这个,在任何一种情况下都没有发生令人惊讶的事情。) 输出被复制
我正在尝试使用 Java Swing 为数学方程式创建一个 GUI 5((θ/β) - cos(2πθ/β)) . 最初我开始使用一个简单的余弦函数并创建了 GUI,它工作正常。这是我的余弦函数程序:
我正在尝试将这条曲线作为我目前正在开发的一款小游戏的升级系统的一部分。方程如下 f(x) = -e^-((-log(7)/100)*(100-x))+7 在python中可以定义为 f=lambda
我是一名优秀的程序员,十分优秀!