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

OSCHINA-MIRROR/junruoyu-zheng-ligral

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README_en.md

Ligral

Ligral — это язык текстового моделирования, альтернативный Simulink. Цель ligral — описывать имитационные модели с помощью набора утверждений вместо графического представления. Синтаксис ligral обеспечивает одинаково мощные возможности описания моделей. Кроме того, ligral предоставляет различные решатели для решения задач ОДУ, заданных интерпретатором.

star

Как установить

Мы выпустили версию v0.2.2, которая доступна на GitHub. Также можно клонировать исходный код в рабочую область и собрать ligral вручную.

git clone https://github.com/jruoyu-zheng/ligral.git
cd ligral
dotnet build
./bin/Debug/netcoreapp3.1/ligral

Подробное руководство по установке см. в разделе Быстрый старт.

Использование

Основная функция ligral — запуск имитационного проекта. Имя проекта, обычно имя файла .lig, должно быть первым позиционным параметром, например: ligral путь/файл.lig. Кроме того, поддерживаются многие параметры:

Параметры Функции
[ProjectFileName] Имя проекта моделирования, обычно файл .lig или файл .lig.json.
-s, --step-size [StepSize] Размер шага моделирования, работает только с решателями с фиксированным шагом.
-t, --stop-time [StopTime] Общее время, когда решатель должен остановиться.
-j, --json [bool]? Переключает ввод на файл .lig.json. Ligral анализирует проект как файл .lig, если этот параметр не переключён
-o, --output [Folder] Перенаправляет папку вывода.

Другие команды, которые поддерживает ligral, включают doc, trim, lin и exm. Чтобы узнать больше об использовании, запустите ligral [command] --help.

Зависимости

Если включён InnerPlotter и в вашем проекте используются Scope или PhaseDiagram, вам потребуется Python 3, чтобы они работали. Также необходимы пакеты numpy, matplotlib, pandas.

Примеры

Ниже представлена система «масса-пружина-демпфер» (examples/mass-spring-damper/main.lig), реализованная с помощью ligral.

# Определить маршрут с именем 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[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!!

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

Синтаксис

Подробный синтаксис см. в руководстве пользователя (doc/user-guide/README.md), которое в настоящее время написано на китайском языке. Если вы интересуетесь ligral, но не можете читать по-китайски, свяжитесь со мной по адресу zhengjry@outlook.com. Завершено следующее:

Разработка

Мы прилагаем все усилия, чтобы написать... Руководство по разработке (doc/dev-guide/README.md). Теперь доступны версии на китайском языке:

  • Дизайн синтаксиса (doc/dev-guide/syntax.md);
  • Реализация интерпретатора (doc/dev-guide/interpreter.md);
  • ...

Если вы обнаружили ошибку, пожалуйста, создайте проблему.

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

  1. Добавить модульный тест;
  2. Добавить синтаксис для операторов if-else, for, while и функций для процесса до и после моделирования;
  3. Унифицировать сигнал данных в матрицу, то есть скаляр будет рассматриваться как матрица размером 1x1;
  4. Исправить ошибки;
  5. ...

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
C# и 6 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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