Добавление дополнительной вертикальной линии к существующему димолинскому сюжету - PullRequest
1 голос
/ 27 января 2020

У меня есть график, который выглядит следующим образом:

Dymola Plot

Обратите внимание, что ось x - это НЕ время, а произвольная независимая переменная.

Мне нужно нарисовать вертикальные линии, показанные на рисунке выше, и обозначить их. Как это можно сделать в Dymola, используя скрипт mos?

Спасибо!

1 Ответ

3 голосов
/ 27 января 2020

Я не мог найти ничего, кроме добавления строки вручную через plotArray() сопровождающего текста plotText(). См. Dymola-speci c .mos-скрипт ниже, который должен сгенерировать сюжет в конце.

// Simulate the model
simulateModel("Modelica.Mechanics.Rotational.Examples.CoupledClutches", stopTime=1.5, numberOfIntervals=0, outputInterval=0.001, resultFile="CoupledClutches");

// Create the actual plot
createPlot(id=1, position={191, 39, 672, 423}, x="clutch1.tau", y={"clutch1.phi_rel", "clutch1.w_rel"}, range={-10.0, 4.0, -200.0, 20.0}, grid=true, colors={{28,108,200}, {238,46,47}}, displayUnits={"deg", ""});

// Add the vertical line
plotArray(x={-8,-8},y={-200,0},color={0,128,0},thickness=0.5, erase=false);
plotArray(x={-2,-2},y={-200,0},color={128,0,128},thickness=0.5, erase=false);

// Add text
plotText(id=1, extent={{-9,-210}, {-7,-220}}, textString="Description 01", lineColor={0,128,0});
plotText(id=1, extent={{-3,-210}, {-1,-220}}, textString="Description 02", lineColor={128,0,128});

Plot created by the code above

Если вы хотите использовать легенду для описания, как вы делали в своем макете, используйте параметр строки 'legend' функции plotArray() вместо добавления текста вручную.

Сценарий наверняка можно улучшить некоторые более сложные измерения для массивов и текстов, но это должно стать хорошей отправной точкой. Также с помощью plotArrays() объедините линии для вертикальных линий.

...