Отсутствующие соединения в представлении Dymola Diagram - PullRequest
1 голос
/ 20 мая 2019

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

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

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

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

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);

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

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

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

Ответы [ 3 ]

2 голосов
/ 20 мая 2019

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

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

Т.е. убедитесь, что для local установлено значение «C», чтобы Dymolaне смущается.

0 голосов
/ 20 мая 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 из вашей модели и заново нарисовать их.В качестве альтернативы вы можете добавить аннотацию вручную или отредактировав ее в графическом слое, но оба варианта довольно сложны, поэтому я бы предложил удалить и заново нарисовать.

0 голосов
/ 20 мая 2019

Вы можете либо

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

или

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...