Доступ к параметрам в других моделях - OpenModelica - PullRequest
2 голосов
/ 05 ноября 2019

У меня есть параметр в защищенном разделе, который необходим для дальнейших вычислений:

parameter Integer Ns = integer(ceil(L / dx))

Его нельзя изменять, поэтому я поместил его туда. Однако я хочу получить доступ к этому параметру при построении моей общей модели. В частности, чтобы получить доступ к нему в другом компоненте, что я мог сделать что-то вроде:

Ns = componentName.Ns

Но так как он находится в защищенном разделе, это невозможно. Я обошел стороной, просто добавив еще один параметр в общий раздел:

parameter Integer N=Ns

Однако этот параметр появляется в графическом интерфейсе и может быть изменен, чего я хотел бы избежать всеми средствами.

Есть ли решение для этого? Надеюсь, понятно, о чем я.

1 Ответ

3 голосов
/ 05 ноября 2019

Преобразование моих комментариев в ответ:
Если вы хотите, чтобы параметр был видимым и доступным извне класса модели, но больше не подлежал изменению, то вы должны пометить его как окончательный, например:

final parameter Integer Ns = integer(ceil(L / dx))

Как видно из примера, параметр может быть рассчитан и впоследствии становится окончательным.

...