根据布尔值禁用连接器中的变量
Disabling variables in connector depending on boolean
我正在构建使用复数或仅使用连接器中变量的实部的电气模型。根据布尔值,我在两个方程组之间切换。
我的问题是:当我不想使用它时,处理虚数的最佳方法是什么。当我连接其他执行相同操作的组件时,将其设置为零会导致出现问题,因为该变量是超定的。
有没有办法禁用虚部或更改连接器,以便在我使用实值方程组时它只有一个实变量?
下面我贴了方程组。
equation
if transient then
v = Complex(Vnom*cos(theta + phiV),0); // how can I avoid setting im to zero here?
else
v = Complex(Vnom*cos(phiV), Vnom*sin(phiV));
end if;
提前感谢您的帮助!
流体问题和多体问题实际上都存在类似的问题。在流体情况下,"equation of state" 的变化会影响自由度的多少。在多体系统的情况下,您会遇到需要某种机械地面元素的问题,但如果您的组件中有 "loop",它将受到过度约束。
在我看来,您的问题更接近流体问题(但我现在对 AC 域一点也不了解,所以我只是猜测)。在这种情况下,您可以做的是通过有关确切使用哪种公式的层次结构信息向下级联。如果要使用不同的连接器,则可以使用 replaceable
package
通过层次结构级联新的连接器类型。这有点涉及。但是,如果您只想知道是使用一个方程式还是另一个方程式(跨一堆组件),那么您可以将一个(Boolean
?)参数值级联到所有东西(例如, 你的 transient
标志)。
您可能会考虑的另一件事是使用 inner
和 outer
通过层次结构隐式级联参数。一些库使用所谓的 world
对象来提供有关模型的全局信息。这样,您可以将一个 inner
world
对象放在根部,同一层次结构中的所有组件都可以使用 outer
关键字访问它。我尽量避免 inner
/outer
并使用更明确的参数级联。但这取决于你。
我正在构建使用复数或仅使用连接器中变量的实部的电气模型。根据布尔值,我在两个方程组之间切换。 我的问题是:当我不想使用它时,处理虚数的最佳方法是什么。当我连接其他执行相同操作的组件时,将其设置为零会导致出现问题,因为该变量是超定的。 有没有办法禁用虚部或更改连接器,以便在我使用实值方程组时它只有一个实变量? 下面我贴了方程组。
equation
if transient then
v = Complex(Vnom*cos(theta + phiV),0); // how can I avoid setting im to zero here?
else
v = Complex(Vnom*cos(phiV), Vnom*sin(phiV));
end if;
提前感谢您的帮助!
流体问题和多体问题实际上都存在类似的问题。在流体情况下,"equation of state" 的变化会影响自由度的多少。在多体系统的情况下,您会遇到需要某种机械地面元素的问题,但如果您的组件中有 "loop",它将受到过度约束。
在我看来,您的问题更接近流体问题(但我现在对 AC 域一点也不了解,所以我只是猜测)。在这种情况下,您可以做的是通过有关确切使用哪种公式的层次结构信息向下级联。如果要使用不同的连接器,则可以使用 replaceable
package
通过层次结构级联新的连接器类型。这有点涉及。但是,如果您只想知道是使用一个方程式还是另一个方程式(跨一堆组件),那么您可以将一个(Boolean
?)参数值级联到所有东西(例如, 你的 transient
标志)。
您可能会考虑的另一件事是使用 inner
和 outer
通过层次结构隐式级联参数。一些库使用所谓的 world
对象来提供有关模型的全局信息。这样,您可以将一个 inner
world
对象放在根部,同一层次结构中的所有组件都可以使用 outer
关键字访问它。我尽量避免 inner
/outer
并使用更明确的参数级联。但这取决于你。