2013-11-20 3 views
0

Если я иметь функцию не-Modelica, которая не имеет вход и нет выхода, какModelica - отображение без функции Modelica для моделирования

void foo(void) 
{ 
    variable1; 
    variable2; 
    for loop 
    { 
    if conditions 
    } 
    variable2=foobar(); // another function call, foobar() is not modelica function 

} 

затем может я моделировать его, как показано ниже в Modelica?

model foo 
variable1; 
variable2; 

algorithm 
for loop 
    { 
    if conditions 
    } 
variable2 :=foobar(); //foobar here is modelica function 
end foo; 

ответ

1

Вы могли бы хотеть иметь быстрый взгляд на хороший шпаргалку http://modref.xogeny.com/, чтобы узнать, как сделать для петель. Также, когда внутри секций алгоритма вы должны использовать назначения вместо уравнений:

algorithm 
... 
variable2 := foobar(); //foobar here is modelica function 
+0

Спасибо, я отредактировал мое сообщение @Dietmar Winkler – shilu

3

На самом деле, ваше описание немного тревожно. Если ваша функция не имеет входов и выходов, какой смысл ее называть?

Я предполагаю, что у вашей функции есть side effects. Но если вы вызываете функции с побочными эффектами от Modelica, вам нужно быть предельно осторожными, потому что, вообще говоря, вы не контролируете их при вызове. Например, они будут вызваны для так называемых «решений-кандидатов», а также для реальных шагов моделирования.

Так что было бы лучше, если бы вы объяснили немного больше о том, что делает эта функция. Мало того, что это поможет решить, как вы могли бы выразить это в Modelica, он также может продемонстрировать, что ваша функция лучше всего оставлена ​​как код C и вызывается через интерфейс внешних функций в Modelica.

+0

Да. функция имеет побочные эффекты, так как она изменяет значение глобальной переменной. Мне было интересно, как лучше всего моделировать такую ​​функцию. Передача его в качестве параметра функции? – shilu

+0

Если функция имеет побочные эффекты, вы должны квалифицировать ее с помощью ключевого слова «нечисто», чтобы решатели Modelica знали, что у нее есть побочные эффекты. –

Смежные вопросы