2017-08-29 143 views
3

我嘗試使用全局參數在這樣的代碼:爲什麼我不能在for循環中使用全局參數?

model testModel 
    outer parameter Integer par; 
    outer Integer var; 
equation 
    for i in 1:par loop 
    var[i] = 5 * i; 
    end for; 
end testModel; 

model test 
    inner parameter Integer par = 3; 
    inner Integer var[par]; 
    testModel mod; 
end test; 

simulate(test) 

而且我得到了以下錯誤:

model test 
    inner parameter Integer par = 3; 
    inner Integer var[par]; 
    testModel mod(par = par); 
end test; 

如何:

Error: The iteration range 1:par is not a constant or parameter expression

所有,如果不使用全局參數正常工作我可以在「for」中使用全局參數,或者爲什麼我不能? 預先感謝您

回答

-1

這應該工作:

model testModel 
    outer parameter Integer par; 
    Integer var[par]; 
equation 
    for i in 1:par loop 
    var[i] = 5 * i; 
    end for; 
end testModel; 

model test 
    inner parameter Integer par = 3; 
    testModel mod; 
end test; 
+1

這並不在OM工作: '[:3:3-3:19:寫]錯誤:無法評價結構參數(或常量):給出數組維數的參數:var [par]。在編譯時必須知道數組尺寸.' '錯誤:平坦模型測試發生錯誤' – Tyomich

+0

看起來像OpenModelica問題。您可以在OpenModelica Trac系統中爲此創建一張票:https://trac.openmodelica.org/OpenModelica/newticket – lochel

+0

這只是OM問題?在Dymola所有的工作正常? – Tyomich

相關問題