Я определяю
type Enum = enumeration(A, B, C);
и
partial model PM
parameter Real[Enum] a;
...
end PM;
и
model M
extends PM(a = {1, 2, 3});
...
end M;
, что дает ошибку. Мое лучшее предположение, что a = {1, 2, 3}
является виновником. Это действительно незаконно, и если да, то как я могу установить a
в M
?
UPDATE
После дальнейшего изучения я обнаружил, что все вышеизложенное действительно является законным. Позволь мне пройти всю свинью:
type Enum = enumeration(A, B, C);
connector Conn
Real[Enum] a;
flow Real[Enum] f;
end Conn;
model M1
Conn conn;
equation
conn.f = -conn.a;
end M1;
model M2
Conn conn;
initial equation
conn.a = {1, 2, 3};
equation
der(conn.a) = conn.f;
end M2;
model M3
M1 m1;
M2 m2;
equation
connect(m1.conn, m2.conn);
end M3;
Это не удается построить. Но если я просто изменю каждый Enum
в классе соединителя на 3
, то он будет работать.