Почему параметры не могут быть распознаны между моделями, подключенными компонентом Controlbus в Dymola / Modelica?

Я делаю интерфейсный пакет, который может вводить параметры моделей в цикле симуляции. Для связи между пакетом интерфейса и имитационной моделью я использовал Controlbus из стандартной библиотеки Modelica Ver. 3.2.2.

Проверка модели прошла нормально, но если я моделирую модель, выскакивает ошибка, как на картинке ниже.

Сообщение об ошибке

А вот уравнение, относящееся к этой модели

Omega_e = Omega_d * N_t[N]; Alpha_d = der(Omega_d);

Чтобы решить дифференциальное уравнение, я думаю, что решателю нужен конкретный параметр N_t. Поэтому я поместил параметры из модели интерфейса и отправил параметры с помощью компонента Controlbus в стандартной библиотеке Modelica.

введите описание изображения здесь

введите описание изображения здесь

Как на картинке выше, я обязательно выставил параметры. (Конкретные значения параметров удаляются, потому что это конфиденциально)

Я не могу понять, в чем проблема этой ошибки. Пожалуйста, помогите мне, ребята.

Большое тебе спасибо.


person JAGUN KOO    schedule 29.01.2021    source источник


Ответы (1)


На основе неполной модели сложно сказать, что произошло, но:

Отправка параметров через шину управления (или через коннектор в целом) немного сложна и не особо приветствуется.

Это должно быть возможно, объявив вычисляемый параметр как parameter Integer N(fixed=false); initial equation N=myBus.N;, и не иметь его как parameter в соединителе.

Если вы не укажете его как параметр, Dymola попытается (и потерпит неудачу) его дифференцировать. Если вы объявите его как параметр в коннекторе, он не будет распространяться (поскольку соединение двух параметров приводит к утверждению).

person Hans Olsson    schedule 29.01.2021