2014-10-02 46 views
0

好了,我有這樣的事情:如何將變量定義爲等於不同類型的變量?

model MolarAmount 
    import SI = Modelica.SIunits; 
    SI.AmountOfSubstance nu "moles of stuff"; 
    parameter Real lambda = 42 "some variable on which nu depends"; 

equation 
    nu = 1 - lambda; 
end MolarAmount; 

這運行得很好,但它抱怨不兼容的單位,符合市場預期。我如何讓它忽略這個?

回答

1

這很奇怪。我一直認爲Dymola將單位檢查中的文字(1)和無單位變量(lambda)作爲通配符。您可以嘗試將lambda上的units屬性設置爲「1」(我認爲這是默認設置)。你也可以看看標準庫中的二極管模型。它使用一個參數公式來解決這種單元檢查問題。

對不起,沒有驗證任何這些建議。我真的沒有Dymola方便測試的副本。

HTH

+0

我認爲我在代碼中使用的實際表達式沒有任何文字,所以這可能是爲什麼它的工作原理與您預期的不同。不幸的是,我不再使用導致此問題的代碼段,因此我無法輕鬆檢查這一點。這可能是我git歷史上的某個地方,但我不能輕易找到它。 – Chad 2014-10-06 14:00:13

1

什麼版本的Dymola正在運行? Dymola 2015(2014-04)接受此模型。

我猜想設置lambda(unit="mol")會解決你的問題。這也會導致單元檢查的魔術減少。

+0

我的例子並不是我遇到問題的確切代碼。在實際的代碼中,表達式是一個多項式,所以像這樣的簡單修復將不起作用。 – Chad 2014-10-03 18:45:49

相關問題