1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/junruoyu-zheng-ligral

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 5.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 02:01 6be31cf

Ligral

Ligral — это основанный на тексте язык моделирования, предназначенный для замены Simulink. Он позволяет описывать объекты моделирования с помощью текстового языка, эквивалентного блок-схемам, и затем интерпретировать и компилировать их для решения.

star

Установка

В настоящее время выпущена предварительная версия 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';

plots!!

Дополнительные примеры см. в разделе Примеры.

Синтаксис

Синтаксис описан в Руководстве пользователя, которое включает следующие разделы:

Разработка

Документация по разработке находится в процессе написания.

Ошибки и предложения по улучшению можно отправлять через issue.

План разработки:

  • Добавить модульные тесты
  • Реализовать синтаксис научных вычислений для предварительной обработки и постобработки перед моделированием
  • Унифицировать формат данных в виде матриц
  • Исправить ошибки
  • ...

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/junruoyu-zheng-ligral.git
git@api.gitlife.ru:oschina-mirror/junruoyu-zheng-ligral.git
oschina-mirror
junruoyu-zheng-ligral
junruoyu-zheng-ligral
dev