Ligral — это основанный на тексте язык моделирования, предназначенный для замены Simulink. Он позволяет описывать объекты моделирования с помощью текстового языка, эквивалентного блок-схемам, и затем интерпретировать и компилировать их для решения.
В настоящее время выпущена предварительная версия v0.2.2, которую можно клонировать в локальный проект для компиляции.
git clone https://gitee.com/junruoyu-zheng/ligral.git
cd ligral
dotnet build
./bin/Debug/netcoreapp3.1/ligral
Подробные инструкции по установке см. в разделе Быстрый старт.
Для запуска процесса моделирования необходимо указать файл проекта в качестве первого параметра. Команда поддерживает следующие параметры:
Параметр | Назначение |
---|---|
[ProjectFileName] | Файл проекта, обычно .lig или .lig.json |
-s, --step-size [StepSize] | Устанавливает шаг моделирования, действует только в решателях с фиксированным шагом |
-t, --stop-time [StopTime] | Задаёт продолжительность моделирования |
-j, --json [bool]? | Указывает на использование файла .lig.json, по умолчанию используется файл .lig |
-o, --output [Folder] | Перенаправляет вывод моделирования в указанную папку |
Ligral поддерживает команды doc, trim, lin и exm. Для получения справки по использованию введите ligral [command] --help.
Если вы используете внутренний инструмент построения графиков (InnerPlotter), то модули построения графиков Scope и PhaseDiagram требуют поддержки Python 3 и пакетов numpy, matplotlib и pandas.
Пример моделирования системы блока массы пружины демпфера (см. код):
# Определение маршрута MassSpringDamper
route MassSpringDamper(m, k, d, x0, v0; F; x, v)
F-k*x-d*v -> Gain{value:1/m} -> Integrator{initial:v0} -> v;
v -> Integrator{initial:x0} -> x;
end
# Создание сигнала Step
Step[F]{start:3, level:5};
# Инстанцирование объекта MassSpringDamper
MassSpringDamper[sys]{m:0.1, k:10, d:0.3, x0:1, v0: 0};
# Соединение модулей
F -> sys;
sys:x[position] -> Scope;
(sys:x, sys:v[velocity]) -> PhaseDiagram;
# Настройка параметров моделирования с фиксированным шагом
conf step_size = 0.001;
conf stop_time = 10;
# Установка папки вывода
conf output_folder = 'out';
Дополнительные примеры см. в разделе Примеры.
Синтаксис описан в Руководстве пользователя, которое включает следующие разделы:
Документация по разработке находится в процессе написания.
Ошибки и предложения по улучшению можно отправлять через issue.
План разработки:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )