Ligral — это язык текстового моделирования, альтернативный Simulink. Цель ligral — описывать имитационные модели с помощью набора утверждений вместо графического представления. Синтаксис ligral обеспечивает одинаково мощные возможности описания моделей. Кроме того, ligral предоставляет различные решатели для решения задач ОДУ, заданных интерпретатором.
Мы выпустили версию 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';
Дополнительные примеры см. в примерах.
Подробный синтаксис см. в руководстве пользователя (doc/user-guide/README.md), которое в настоящее время написано на китайском языке. Если вы интересуетесь ligral, но не можете читать по-китайски, свяжитесь со мной по адресу zhengjry@outlook.com. Завершено следующее:
Мы прилагаем все усилия, чтобы написать... Руководство по разработке (doc/dev-guide/README.md). Теперь доступны версии на китайском языке:
Если вы обнаружили ошибку, пожалуйста, создайте проблему.
План разработки:
if-else
, for
, while
и функций для процесса до и после моделирования;Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )