4

我想为结合了 Modelica 标准库中的两个组件的模型创建一个图标。这两个组件是 Modelica.Blocks.Sources.Sine 和 Modelica.Electrical.Analog.Sources.SignalVoltage。我已经连接了这两个组件,因此代码如下所示:

model test
 Modelica.Blocks.Sources.Sine sine1(freqHz = 5, amplitude = 1, offset = 10) annotation(Placement(visible = true, transformation(origin = {-51.0325,-0.884933}, extent = {{-12,-12},{12,12}}, rotation = 0)));
 Modelica.Electrical.Analog.Sources.SignalVoltage signalvoltage1 annotation(Placement(visible = true, transformation(origin = {-4.12979,-1.17994}, extent = {{12,-12},{-12,12}}, rotation = 90)));
equation
 connect(sine1.y,signalvoltage1.v) annotation(Line(points = {{-37.8325,-0.884933},{-12.9794,-0.884933},{-12.9794,-1.17994},{-12.5298,-1.17994}}));
end test;

注释由 OMEdit 自动完成。

现在我想实现以下目标:我想创建一个图标

  • 包含 signalvoltage1 的引脚
  • 通过双击可以访问 sine1 的属性。

我知道 annotation(Icon(...)) 和 annotation(Placement(...)) 命令,但我不知道如何将 signalvoltage1.p 和 signalvoltage1.n 带到图标层。而且我不知道如何通过双击访问 sine1 的属性,例如,我可以使用 OMEdit 轻松绘制的矩形。

提前致谢。

4

1 回答 1

5

现在我想实现以下目标:我想创建一个图标

包含 signalvoltage1 的引脚,通过双击可以访问 sine1 的属性。

引脚可以:通常图形编辑器应该让您选择在您从现有连接器根到图表上的空白点时自动创建拟合连接器。然而 OMEdit 并非如此(还没有?)。因此,您需要将相应的连接器从 MSL 拖放到模型的图表视图中。在您的情况下Modelica.Electrical.Analog.Interfaces.NegativePinModelica.Electrical.Analog.Interfaces.PositivePin然后适当地连接它们。连接器类型的组件将(应该)自动出现在图表和图标层上,以便可以“从外部”连接。

至于访问。您在模型级别上创建一个新参数,并让新模型中的组件使用这些参数。最好从上面举个例子来解释:

model Test
  parameter Real myfreqHz = 5 "Frequency of the sinewave";
  parameter Real myamplitude = 1 "Amplitude of the sinewave";    
  parameter Real myoffset = 1 "Offset of the sinewave";
  Modelica.Blocks.Sources.Sine sine1(freqHz = myfreqHz, 
                               amplitude = myamplitude, offset = myoffset);
  Modelica.Electrical.Analog.Sources.SignalVoltage signalvoltage1;
equation
...
end Test;
于 2013-02-19T07:27:27.373 回答