Отсутствующие соединения в представлении Dymola Diagram

Я использую Dymola для разработки небольшой модели некоторых двигателей постоянного тока и источника питания. Закончив работу, я все сохранил и закрыл Дымолу. Когда я открыл его в следующий раз, некоторые (не все) соединения больше не отображались. Я попытался нарисовать их еще раз, но Димола сказал мне, что связи уже существуют. Когда я смотрю на связи в разделе «Текст», они все еще там.

Я использую Ubuntu 18.04 и Dymola Version 2019 FD01 (64-бит), 2018-10-10. Я также пробовал открыть модель в Openmodelica. Но отсутствовали и те же связи.

Снимок экрана:  Снимок экрана

и текстовое представление:

connect(controlSoftware.s1, switches.s1);
connect(controlSoftware.s12, switches.s12);
connect(controlSoftware.s2, switches.s2);
connect(controlSoftware.r1, switches.r1);
connect(controlSoftware.r2, switches.r2);
connect(switches.p, constantVoltage.p);
connect(switches.pin_n, motorWithCurrentSensor.n);
connect(switches.pin_n1, motorWithCurrentSensor1.n);
connect(controlSoftware.cur1, motorWithCurrentSensor.Currenctsensor);
connect(motorWithCurrentSensor.pin, constantVoltage.n);
connect(motorWithCurrentSensor1.pin, constantVoltage.n);
connect(motorWithCurrentSensor.Speedsensor, controlSoftware.speed1);
connect(controlSoftware.speed2, motorWithCurrentSensor1.Speedsensor);
connect(controlSoftware.cur2, motorWithCurrentSensor1.Currenctsensor);
connect(ground.p, constantVoltage.n);

Что я могу сделать, чтобы восстановить связь? Мне действительно сложно что-то исправить без графического представления.

Спасибо за помощь

С уважением, Джеральд


person Gerald Birngruber    schedule 20.05.2019    source источник


Ответы (3)


Я вижу, что вы используете Ubuntu, и на самом деле есть ошибка (по крайней мере) в Dymola2019FD01, где она смешивает комму и десятичную точку при записи координат аннотации. Поэтому, если вы проверите, вы можете увидеть некоторые графические аннотации с {10,5,10} вместо {10.5,10}, что делает их недействительными. Я не проверял, была ли эта проблема решена в Dymola2020, но до тех пор вы можете использовать обходной путь для запуска Dymola следующим образом:

#!/bin/sh
export LC_ALL=C
exec /usr/local/bin/dymola-2019FD01-x86_64 $*

То есть, убедитесь, что локальный адрес установлен на "C", чтобы Димола не запутался.

person Dietmar Winkler    schedule 20.05.2019
comment
Спасибо, что решили мою проблему. Поменял вручную и теперь все работает как положено! - person Gerald Birngruber; 20.05.2019

Вы также можете

  1. удалите операторы подключения из кода и перерисуйте их в виде диаграммы

or

  1. добавьте аннотацию отсутствующей строки к операторам подключения, используя некоторые произвольные значения, например annotation (Line(points={{0, 0}, {0, 0}}))

При втором варианте ваши операторы подключения сначала будут выглядеть в коде следующим образом:

connect(controlSoftware.s1, switches.s1) annotation (Line(points={{0, 0}, {0, 0}}));

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

person marco    schedule 20.05.2019

Некоторая справочная информация: Графическое представление всех компонентов в Modelica помещается в аннотацию после определения класса. Это также верно и для соединений.

Один из небольших электрических примеров - Modelica.Electrical.Analog.Examples.ShowSaturatingInductor, в котором вы найдете эти операторы подключения:

  connect(SineVoltage1.n, Ground1.p) annotation (Line(points={{-60,-16},{-60,
          -16}}, color={0,0,255}));
  connect(SineVoltage1.n, SaturatingInductance1.n) annotation (Line(points={{-60,-16},
          {-20,-16},{-20,-10}}, color={0,0,255}));
  connect(SaturatingInductance1.p, SineVoltage1.p) annotation (Line(points={{-20,10},
          {-20,20},{-60,20},{-60,4}}, color={0,0,255}));
  connect(Inductance1.p, SineVoltage1.p) annotation (Line(
      points={{20,10},{20,20},{-60,20},{-60,4}}, color={0,0,255}));
  connect(Inductance1.n, SineVoltage1.n) annotation (Line(
      points={{20,-10},{20,-16},{-60,-16}}, color={0,0,255}));

В первой части указано, какие разъемы фактически подключены. Из этой части составляются соответствующие уравнения. Следующая аннотация содержит графическое представление. Графическая часть не нужна для работы модели. Кажется, что эта деталь как-то потерялась в вашей модели.

Что касается вашего вопроса: самый простой способ восстановить графическое представление - это удалить все connect операторы из вашей модели и перерисовать их. В качестве альтернативы вы можете добавить аннотацию вручную или отредактировать ее в графическом слое, но оба варианта довольно неудобны, поэтому я бы предложил удалить и перерисовать.

person Markus A.    schedule 20.05.2019
comment
Хорошо, поэтому на этот вопрос немного сложно ответить, но Дитмар, очевидно, понял его лучше, чем я (и Марко). Самое главное, что ваша проблема решена ... - person Markus A.; 21.05.2019