2013-02-18 100 views
3

我想爲一個模型創建一個圖標,它將Modelica標準庫中的兩個組件組合在一起。這兩個組件是Modelica.Blocks.Sources.Sine 和Modelica.Electrical.Analog.Sources.SignalVoltage。Modelica - 創建圖標

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的性質引腳的圖標。

我知道註釋(Icon(...))和註釋(Placement(...))命令,但我不知道如何將signalvoltage1.p和signalvoltage1.n添加到圖標層。而且我不知道如何通過雙擊來訪問sine1的屬性,例如,我可以使用OMEdit輕鬆繪製的矩形。

在此先感謝。

回答

4

現在我要實現以下目標:我想創建

包含signalvoltage1 ,讓通過雙擊訪問sine1的性質引腳的圖標。

OK了引腳:正常情況下,圖形編輯器應該給你一個選擇自動創建裝配連接器,只要你從現有的接口連接到圖上的空白處根源。不過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; 
+0

@Diemtar溫克勒 尼斯的答案!這就是我一直在尋找的,謝謝!事實上,如果OMEdit支持你提到的功能,那麼它就會更優雅,因此不需要插入這些虛擬引腳。 – user2083291 2013-02-19 08:13:25

+0

術語「傳播」通常用於描述這個過程。這個想法是,當你構建組件的子系統時,你需要在子系統(主要是連接器和參數)中傳播*一些信息,直到層次結構中的下一個更高級別。正如Dietmar指出的那樣,這是一個很普遍的過程,大多數工具都有某種幫助你進行這種傳播的「捷徑」。 – 2013-02-19 13:47:25