2014-02-22 53 views
1

我在模擬中使用了Modelica標準庫(MSL)中的一些組件。這些組件都有一些參數。例如,Modelica.Fluid.Sources.MassFlowSource_T有一個parameter m_flow。通常,參數可以在仿真運行之間進行更改,無需重新編譯。 m_flow不是這種情況,因爲它有一個annotation(Evaluate=true),所以它用於符號處理。
是否有可能在實例化時更改參數的註釋?我嘗試了以下,但它沒有奏效。Modelica標準庫模型中參數的更改註釋(Evaluate = true/false)

Modelica.Fluid.Sources.MassFlowSource_T source2(
    redeclare package Medium = Medium2, 
    nPorts=1, 
    m_flow=22.17 annotation(Evaluate=false)); 

當然有解決方法,首先像製作副本並改變註釋有或使用use_m_flow_in=true和恆定的源塊。

回答

5

據我所知目前的Modelica規範是不可能的。如果你擴展MassFlowSource_T 有些工具可能支持它:

model MassFlowSource_T_2 
    extends Modelica.Fluid.Sources.MassFlowSource_T; 
    // declare m_flow here again with annotation(Evaluate=false); 
end MassFlowSource_T_2; 

use MassFlowSource_T_2 when you declare source2. 

有正在進行的一些工作,從註釋中規定的方式/處理 但直到它使進入的Modelica規範這將是一段時間: https://trac.modelica.org/Modelica/ticket/1293(尚未向公衆開放)。