2017-08-29 11 views
3

私はこのようなコードにglobalパラメータを使用してみました: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) 

そして、私は、次のエラーを得た:グローバルパラメータを使用していない場合は

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

すべてが正常に動作します:

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

"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:19:3-3書き込み可能]エラー:構造パラメータを評価することができませんでした(または定数):par配列の次元を与える:var [par]。コンパイル時に配列の次元を知っている必要があります。 'エラー:モデルテストを平坦化する際にエラーが発生しました.' – Tyomich

+0

OpenModelicaの問題のようです。 OpenModelica Tracシステムでチケットを作成することができます:https://trac.openmodelica.org/OpenModelica/newticket – lochel

+0

これは単なるOMの問題ですか? Dymolaではすべて正常に動作しますか? – Tyomich

関連する問題