0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Моделирование систем в программной среде Scilab & Xcos 5.5.1

Моделирование систем в программной среде Scilab & Xcos 5.5.1

Xcos – это приложение, которое входит в состав системы математического моделирования Scilab, и предоставляет разработчикам возможности проектирования систем в области механики, гидравлики и электроники, а также систем массового обслуживания. Xcos представляет из себя графическую интерактивную среду, в основе которой лежит блочное моделирование. Приложение предназначено для решения задач динамического и ситуационного моделирования систем, процессов, устройств, а также тестирования и анализа этих систем. При этом моделируемый объект (система, устройство, процесс) представляется графически своей функциональной параметрической блок-схемой, включающей блоки элементов системы и связи между ними.

Мы расскажем об общих аспектах имитационного моделирования, а также познакомим с пакетом Xcos.

Концепция имитационного моделирования.

Основная задача моделирования состоит в том, чтобы дать разработчику технологию создания таких моделей которые достаточно полно и точно фиксируют свойства объектов оригиналов, поддаются исследованию и допускают возможность переноса результатов исследований на оригиналы. Моделирование представляет собой метод исследования, который является формой отображения действительности и заключается в воспроизведении свойств реальных объектов при помощи виртуальных объектов.

Все расчеты в компьютерной модели выполняются в так называемом системном времени, которое соответствует реальному времени функционирования объекта исследования или системы. Воспроизведение на компьютере развернутого во времени процесса функционирования системы с учетом ее взаимодействия с внешней средой называется имитационным моделированием. Имитационное моделирование наиболее мощный и универсальный метод исследования и оценки эффективности систем, поведение которых зависит от случайных факторов. Модели являются хорошим средством для обучения и подготовки специалистов, а также средством прогнозирования поведения объектов и систем. Моделирование позволяет проводить контролируемые эксперименты в ситуациях, когда проведение экспериментов на реальных объектах является нецелесообразным, опасным, невозможным или достаточно дорогостоящим.

Физическое моделирование связано с большими материальными затратами, поскольку требуется изготовление макетов и их трудоемкое исследование. Часто физическое моделирование просто невозможно из-за чрезвычайной сложности устройства. В этом случае прибегают к математическому моделированию с использованием компьютерных программ.

Общие сведения о пакете Xcos

В связи с повсеместным развитием современных компьютерных технологий существенно изменились подходы к решению проблем проектирования сложных технических систем. Как один из самых перспективных прикладных пакетов, в первую очередь, следует отметить систему математического моделирования Scilab, интеграция которой, с пакетом Xcos открывает новые возможности использования самых современных математических методов для решения задач динамического и ситуационного моделирования сложных систем, процессов, устройств начиная от структурного (математического) представления системы и заканчивая макетированием системы в реальном времени.

Пакет Xcos считается одним из лучших пакетов с открытым кодом для моделирования блочно заданных динамических систем и представляет из себя графическую интерактивную среду, с помощью которой можно производить моделирование имитацию и тестирование, анализ динамических систем при помощи блоков.

программная среда Xcos: пример Xcos-модели:

результаты ее работы:

При помощи Xcos можно создавать системы управления, системы обработки сигналов, системы связи, модели любых динамических систем. Xcos создан разработчиками Scilab (хорошо известной и популярной программной среды) и является, как отдельным пакетом, так и платформой для модельно ориентированного проектирования.

Xcos отличается от Scilab тем, что Scilab это высокоуровневый язык программирования, а Xcos – это система графического моделирования на основе блок-схем, которая состоит из предварительно скомпилированных библиотек. Для визуального представления сигналов в Xcos можно использовать различные блоки визуализации. Модели Xcos хранятся в файлах с расширением .zcos или .xcos. Модель можно открыть двойным щелчком мыши на файле модели в текущем каталоге или при помощи команды «Файл/Открыть» в Xcos.

В Xcos моделируемый объект (система, устройство, процесс) представляется графически своей функциональной параметрической блок-схемой, включающей блоки элементов системы и связи между ними. Функциональные блоки элементов моделируемой системы могут, в свою очередь, представлять вложенные подсистемы со своей организацией, образуя иерархические структуры. Ценность Xcos заключается и в обширной, открытой для изучения и модификации библиотеке компонентов (блоков).

Она включает источники сигналов с практически любыми временными зависимостями, масштабирующие, линейные и нелинейные преобразователи с разнообразными формами передаточных характеристик, квантующее устройство, интегрирующие и дифференцирующие блоки и т. д. Как программное средство Xcos — типичный представитель визуально-ориентированного языка программирования.

На всех этапах работы, особенно при подготовке моделей систем, пользователь практически не имеет дела с обычным программированием. Программа автоматически генерируется в процессе ввода выбранных блоков, их соединений и задания параметров. Для описания процессов, протекающих в технологических системах, могут использоваться различные типы объектов по характеру изменения во времени:

– дискретные (например, размер поверхности, качество в ходе технологического процесса);

– непрерывные, среди которых: апериодические (например, размерный износ инструмента), циклические (например, тепловые изменения оборудования за смену).

Практически для всех блоков существует возможность индивидуальной настройки: можно изменять как внутренние параметры блоков (количество входов) так и их внешний вид (размер).

Блоки, включаемые в создаваемую модель, могут быть связаны друг с другом, как по информации, так и по управлению. По информационным соединениям передаются данные, а по управляющим – сигналы активации. Блоки также могут иметь информационные и управляющие входы и выходы. Как правило, информационные входы и выходы блоков располагаются слева и справа от изображения блока, а управляющие сверху и снизу. Тип связи зависит от блока и логики работы модели. Данные, которыми обмениваются блоки, могут быть скалярными величинами, векторами или матрицами произвольной размерности.

Модельно-ориентированное проектирование обеспечивает раннее выявление ошибок. Xcos является основой для модельно-ориентированного проектирования, автоматической генерации кода, тестирования и верификации моделей, имеет открытую архитектуру для интеграции моделей из других инструментов. Необходимость разрабатывать модели устройств возникает по причине дороговизны и большого времени на изготовление прототипов. Е

сли вы разрабатываете систему управления либо какой-либо узел, у вас не всегда есть возможность опробовать связь с реальными объектами или возможность подключиться к испытательным стендам для того, что бы проверить свою модель либо систему управления. Вторая основная проблема заключается в том, что состыковать модели систем из разных сфер применения механики, гидравлики и электроники зачастую бывает очень сложно, потому что не существует универсальных сред разработки, которые могли бы объединять в себе все возможные сферы применения.

При создании моделей при помощи универсальных языков программирования аппаратный или программный датчик случайных чисел – единый инструмент разработчика для моделирования всех видов случайных факторов: случайных событий, случайных величин и процессов. У того, кто использует Xcos, арсенал значительно шире. Если же и этих средств Xcos окажется недостаточно, в модель могут быть включены инструменты, которые входят в состав ядра Scilab или других компонентов пакета.

Первая версия системы Scilab была разработана более 25 лет назад. Развитие и совершенствование этой системы происходило достаточно быстро одновременно с развитием средств вычислительной техники. В результате к настоящему времени Scilab представляет собой богатейшую библиотеку функций, единственная проблема работы с которыми заключается в умении быстро отыскать те из них, которые нужны для решения поставленной задачи. В 2014 году была выпущена обновленная версия пакета.

10 февраля 2014 года вышел новый релиз среды Scilab & Xcos (версия 5.5.1). Для установки Scilab & Xcos 5.5.1 рекомендуется следующая конфигурация компьютера:

— операционная система: Windows XP/Vista/7/8, Linux CentOS/Debian/Redhat/Fedora/Suse/Ubuntu – 32 и 64 bits;

— процессор c поддержкой SSE2;

— рекомендуемый объем оперативной памяти: 1 – 2 Gb;

— для полной инсталляции программы необходимый размер дискового пространства – 550 Mb.

Имитационное моделирование в среде Xcos системе Scilab

Xcos – это приложение, которое входит в состав системы математического моделирования Scilab , и предоставляет разработчикам возможности проектирования систем в области механики, гидравлики и электроники, а также систем массового обслуживания. Xcos представляет из себя графическую интерактивную среду, в основе которой лежит блочное моделирование. Приложение предназначено для решения задач динамического и ситуационного моделирования систем, процессов, устройств, а также тестирования и анализа этих систем. При этом моделируемый объект (система, устройство, процесс) представляется графически своей функциональной параметрической блок-схемой, включающей блоки элементов системы и связи между ними.

Мы расскажем об общих аспектах имитационного моделирования, а также познакомим с пакетом Xcos.

Концепция имитационного моделирования.

Основная задача моделирования состоит в том, чтобы дать разработчику технологию создания таких моделей которые достаточно полно и точно фиксируют свойства объектов оригиналов, поддаются исследованию и допускают возможность переноса результатов исследований на оригиналы. Моделирование представляет собой метод исследования, который является формой отображения действительности и заключается в воспроизведении свойств реальных объектов при помощи виртуальных объектов.

Все расчеты в компьютерной модели выполняются в так называемом системном времени, которое соответствует реальному времени функционирования объекта исследования или системы. Воспроизведение на компьютере развернутого во времени процесса функционирования системы с учетом ее взаимодействия с внешней средой называется имитационным моделированием. Имитационное моделирование наиболее мощный и универсальный метод исследования и оценки эффективности систем, поведение которых зависит от случайных факторов. Модели являются хорошим средством для обучения и подготовки специалистов, а также средством прогнозирования поведения объектов и систем. Моделирование позволяет проводить контролируемые эксперименты в ситуациях, когда проведение экспериментов на реальных объектах является нецелесообразным, опасным, невозможным или достаточно дорогостоящим.

Содержимое разработки

Имитационное моделирование в среде Xcos системе Scilab

Для построения блочной диаграммы используется графический редактор Xcos: Главное меню → Инструменты → Визуальное моделирование Xcos.

После запуска Xcos обычно отображаются два окна: окно Палитры блоков и окно графического редактора. Если окно Палитры блоков отсутствует, его необходимо отобразить, выбрав Вид → Палитры блоков в главном меню окна графического редактора Xcos.

окне Палитры блоков представлены группы блоков, из которых строится диаграмма Xcos. Выделив нужную группу левым кликом мыши (ЛКМ), вы увиди-те графические изображения входящих в неё блоков. Правый клик мыши (ПКМ) на изображении блока вызывает контекстное меню, через которое можно добавить выбранный блок к диаграмме или вызвать справку по данному блоку. Добавить выбранный блок к диаграмме можно также просто перетащив его мышью.

Читать еще:  Программа для тестирования материнской платы на ошибки

Выберите палитру Источники сигналов и воздействий и перетащите в окно диаграммы блоки GENSIN_f (генератор синусоиды) и SampleCLK (счётчик времени). Затем перейдите к палитре Регистрирующие устройства и добавьте к диаграмме блок CSCOPE (осциллограф). Соедините выход генератора с чёрным входом осциллографа, а выход счётчика с красным входом осциллографа. Счётчик используется для периодической активации осциллографа с заданным временным интервалом.

Соединительные линии проводятся от выхода к входу (или наоборот) при за-жатой ЛКМ. Разрешённые соединения подсвечиваются зелёным. Для удаления соединительной линии выделите её и нажмите Delete.

Диаграмма Рез-т модел-я

Для запуска моделирования выберите Моделирование → Выполнить в главном меню редактора или просто нажмите на соответствующую кнопку в панели инструментов. Для остановки моделирования выберите Моделирование → Завершить или же воспользуйтесь соответствующей кнопкой в панели инструментов.

1.2Сохранение и загрузка

Сохраните текущую диаграмму, выбрав Файл → Сохранить в главном меню окна графического редактора. Сохраняйтесь чаще! Используйте ¾горячие¿ клавиши Ctrl + S для экономии времени. Всегда сохраняйте диаграммы толь-ко в своей папке!

Загрузить сохранённую диаграмму можно через Файл → Открыть или Файл

Любая диаграмма Xcos содержит два типа соединений: регулярные (чёрные) и управляющие (красные). По регулярным соединениям передаются сигналы данных, а по управляющим сигналы активации. Блоки также могут иметь регулярные и управляющие входы и выходы. Как правило регулярные входы и выходы блоков располагаются слева и справа от изображения блока, а управляющие сверху и снизу.

качестве основного источника сигналов активации мы будем использовать счётчик времени SampleCLK. Его особенность заключается в том, что все такие счётчики внутри одной диаграммы синхронизированы.

Если блок имеет управляющий вход, то он ¾срабатывает¿ каждый раз, когда на него поступает сигнал активации. Поведение блока, не имеющего управляющего входа, определяется его внутренними параметрами.

Блок может наследовать сигнал активации от предыдущего блока, т.е. срабатывать при поступлении на его регулярный вход сигнала данных. Также, блок может быть активным всегда (например, генератор гармонического сигнала).

Блок без входов, не получающий сигналов активации и не объявленный активным всегда, является константным блоком. Выход такого блока не зависит от времени, а сам блок ¾срабатывает¿ лишь единожды, на этапе инициализации.

После ¾срабатывания¿ блока значения на его выходе остаются неизменными до следующего момента активации.

Таким образом, выходные значения константных блоков не изменяются никогда, как бы часто вы к ним ни обращались. Выходные значения блоков, активных всегда, будут меняться так часто, как часто вы будете их запрашивать. В остальных случаях выходные значения будут меняться так часто, как часто блок будет получать сигнал активации: от входа активации или наследовать от предыдущего блока.

1.4Изменение параметров блока

Двойной ЛКМ (или ПКМ и выбор в контекстном меню пункта Параметры блока) на блоке в окне графического редактора вызывает окно Ввод значений.

Это окно позволяет менять параметры блока (если блок допускает изменение параметров).

Вызовите окно Ввод значений для осциллографа на вашей диаграмме. Поме-няйте значения переменных Ymin и Ymax, установив их равными -2 и 2 соответ-ственно. Запустите моделирование.

Рис. 4. Окно изменения параметров блока

Остановите моделирование и обратите внимание на график сигнала. Синусо-ида на нём выглядит ¾рваной¿. Чтобы сделать её более гладкой, надо уменьшить интевал взятия отсчётов. Для этого обратитесь к счётчику времени и измените параметр Sample time (интервал дискретизации), сделав его равным 0.1. Запу-стите моделирование.

Значение параметра может быть любой инструкцией, понятной Scilab. Вызо-вите окно изменения параметров генератора синусоиды и установите значение параметра Frequency (rad/s) (частота, рад/с) равным 2*%pi/5.

Выберите палитру Обработка событий и добавьте к диаграмме блок ENDBLK . Установите параметр блока Final simulation time(конечное время моделирования) равным 30. Запустите моделирование.

Другой способ задания конечного времени моделирования выбрать пункт Моделирование → Параметры в главном меню графического редактора и устано-вить параметр Конечное время интегрирования равным нужному значению.

При наличии блока ENDBLK система выберет в качестве конечного наименьшее значение из Final simulation time и Конечное время интегрирования.

Выберите пункт Моделирование → Задать переменные окружения в главном меню редактора. Задайте следующие переменные:

1.7Подключение дополнительных модулей

Если окно графического редактора Xcos открыто, закройте его. В главном меню командного окна Scilab выберите Модули → bufferblock.

Запустите Xcos. В окне Палитры блоков появится новая палитра модуля bufferblock

Для графического отображения сигнала как функции времени в Xcos используются блоки CSCOPE и CMSCOPE из палитры Регистрирующие устройства.

Блок CSCOPE имеет один вход и отображает один или множество сигналов в единой системе координат. Скаляр (число) на входе осциллографа CSCOPE отображается как единственный сигнал (см. рис. 3), вектор как множество сигналов. Сохраните вашу диаграмму под другим именем: Файл → Сохранить как. Добавьте к диаграмме, состоящей из генератора, осциллографа и счётчика времени, блок INTEGRAL_f (интегратор) из палитры Системы с непрерывным временем и блок MUX (мультиплексор) из палитры Маршрутизация сигналов. Подключите выход генератора к первому входу мультиплексора и ко входу интегратора, выход интегратора ко второму входу мультиплексора и, наконец, выход мультиплексора ко входу осциллографа.

Входы блоков можно подключать к уже существующим соединительным линиям. Разрешённые соединения подсвечиваются зелёным.

Соединительные линии могут иметь любую конфигурацию. В процессе создания соединения нажатие ЛКМ добавляет новый узел. Создать новый узел для изменения вида уже существующего соединения можно двойным ЛКМ по соединительной линии.

Мультиплексор в данном примере объединяет два скаляра на своих входах в один вектор из двух элементов. Осциллограф рассматривает элементы вектора как точки отдельных сигналов и изображает их соответственно. 8

Блок CMSCOPE имеет два и более входов и отображает сигналы в отдельных системах координат в едином графическом окне.

Добавьте к диаграмме блок CMSCOPE и блок ABS_VALUE (модуль) из палитры Математические операции. Подключите к первому входу осциллографа выход генератора, а ко второму выход блока ABS_VALUE. На вход блока ABS_VALUE подайте сигнал с генератора. Управляющий вход осциллографа соедините с выходом счётчика времени.

Пределы по оси y задаются в параметрах блока переменными Ymin vector и Ymax vector. Первый элемент вектора относится к первому графику, второй ко второму. Задайте пределы ( 2; 2) для первого графика и (0; 2) для второго.

Интервал обновления осциллографа (размер отображаемого промежутка оси времени t) задаётся в параметрах блока переменной Refresh period (интервал обновления). Для блока CSCOPE это скаляр, для CMSCOPE вектор, первый элемент которого относится к первому графику, второй ко второму.

Блок CMSCOPE, аналогично CSCOPE, отображает векторный вход в виде множества сигналов в одной системе координат. Однако, в отличие от CSCOPE, для него требуется явно указать размерности каждого из входов. Размерности входов за-даются в параметрах блока переменной Input port sizes (размерности входных портов) вектор, первый элемент которого относится к первому графику, второй

Задайте размерность первого входа равной 2. Подключите к первому входу осциллографа сигнал с выхода мультиплексора. Запустите моделирование.

Переменная Input port sizes имеет ещё одно важное значение: её размерность определяет количество входов осциллографа. Изменение размерности Input port sizes влечёт за собой соответствующее изменение размерности переменных

Ymin vector, Ymax vector и Refresh period.

Добавьте третий элемент к Input port sizes, равный 1. Установите для но-вого графика пределы по оси y и интервал обновления. Подключите к третьему входу осциллографа сигнал с выхода генератора.

2.2 Источники сигналов

Источники сигналов находятся в палитре Источники сигналов и воздействий. Нам понадобятся

GENSIN_f генератор синусоиды;

GENSQR_f генератор прямоугольных импульсов;

RAND_m генератор случайных чисел;

STEP_FUNCTION функция включения.

Блок CONST_m используется для формирования постоянной величины.

Он имеет один параметр: Constant Value значение константы. Блок является констатным блоком (см. раздел 1.3 на стр. 5).

2.2.2 Генератор синусоиды

Блок GENSIN_f используется для получения сигналов синусоидальной формы. Он является активным всегда (см. раздел 1.3 на стр. 5). Параметры блока:

Frequency (rad/s) частота (рад/с);

Phase (rad) фаза (рад).

Создайте новую диаграмму (Файл → Новая диаграмма). Добавьте к ней два генератора синусоиды. Установите фазу первого генератора равной %pi/2 (косинус), а второго оставьте равной нулю (синус). Отобразите сигналы с обоих генераторов в одном окне осциллографа.

Генератор прямоугольных импульсов

Блок GENSQR_f используется для получения последовательности прямоугольных импульсов (видеоимпульсов) со скважностью 2 т.е. для формирования меандра. Блок имеет один управляющий вход и один регулярный выход. Параметр Amplitude задаёт амплитуду импульсов. Длительность импульсов определяется интервалом поступления на управляющий вход сигналов активации.

Создайте новую диаграмму. Добавьте к диаграмме генератор прямоугольных импульсов и счётчик времени. Установите интервал дискретизации равным 5. Со-едините управляющий выход счётчика с управляющим входом генератора. Отобразите сигнал генератора на экране осциллографа

  • Scilab/Xcos help pages. Stephen L. Campbell, Jean-Philippe Chancelier and Ramine Nikoukhah. Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4, Second Edition.: Springer, 2010.
  • Scilab/Xcos help pages.
  • Stephen L. Campbell, Jean-Philippe Chancelier and Ramine Nikoukhah. Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4, Second Edition.: Springer, 2010.

Аналоги Xcos

Xcos — это графический редактор для проектирования моделей гибридных динамических систем. Модели могут быть спроектированы, загружены, сохранены, скомпилированы и смоделированы.

1) Браузер палитр;

2) Все стандартные блоки Xcos сгруппированы по категориям (обработка сигналов, электрические, гидравлические, производные, интегральные и т. Д.);

4) Возможность разработать блок-схемы, представляющие динамическую систему из блоков, определенных в палитрах;

5) Компилятор (симулятор);

6) Моделирование сложных систем — дискретных, непрерывных, определяемых символическими уравнениями (Modelica) и т. д. и гибридных систем.

Альтернативы для Xcos

MATLAB — это вычислительная среда и язык программирования.

MATLAB — это вычислительная среда и язык программирования. MATLAB, поддерживаемый The MathWorks, позволяет легко манипулировать матрицами, составлять графики функций и данных, реализовывать алгоритмы, создавать пользовательские интерфейсы и взаимодействовать с программами на других языках.

Octave — это компьютерная программа для выполнения численных расчетов.

Octave — это компьютерная программа для выполнения численных расчетов, которая в основном совместима с MATLAB. Часть проекта GNU. Это свободное программное обеспечение в соответствии с условиями GNU General Public License.

Mathematica — это компьютерная программа, которая широко используется в научной, инженерной и математической областях.

Mathematica — это вычислительная программа, широко используемая в научной, инженерной и математической областях.

Sage — это бесплатная математическая система с открытым исходным кодом.

Читать еще:  Лучшие сканеры для проверки ПК

Sage — это лицензированная бесплатная математическая система с открытым исходным кодом. Она объединяет мощь многих существующих пакетов с открытым исходным кодом в общий интерфейс на основе Python.

Scilab — это научный программный пакет для численных расчетов.

Scilab — это научный программный пакет для численных расчетов, обеспечивающий мощную открытую вычислительную среду для инженерных и научных приложений.

SciPy (произносится «Sigh Pie») — это программное обеспечение с открытым исходным кодом для математики, естественных наук и техники.

SciPy (произносится «Sigh Pie») — это программное обеспечение с открытым исходным кодом для математики, естественных наук и техники. Это также название очень популярной конференции по научному программированию на Python. Библиотека SciPy зависит от NumPy, так обеспечивается удобная и быстрая манипуляция с N-мерным массивом.

Maxima — это система манипулирования символьными и числовыми выражениями.

Maxima — это система для манипулирования символьными и числовыми выражениями, включая дифференцирование, интегрирование, ряды Тейлора, преобразования Лапласа, обыкновенные дифференциальные уравнения, системы линейных уравнений, полиномы и множества, списки, векторы, матрицы и тензоры. Maxima дает числовые результаты с высокой точностью, используя точные дроби, произвольные целые числа точности и числа с плавающей запятой переменной точности. Maxima может отображать функции и данные в двух и трех измерениях.

Maple — коммерческая система компьютерной алгебры общего назначения.

Maple — коммерческая система компьютерной алгебры общего назначения. Пользователи могут вводить математику в традиционных математических обозначениях. Существует поддержка числовых вычислений с произвольной точностью, а также символьных вычислений и визуализации. Примеры символьных вычислений приведены ниже.

Python (x, y) — это бесплатное программное обеспечение для научных и инженерных разработок для численных расчетов.

Python (x, y) — это бесплатное программное обеспечение для научных и инженерных разработок для численных расчетов, анализа данных и визуализации данных, основанное на языке программирования Python, графических пользовательских интерфейсах Qt и интерактивной среде научных разработок Spyder.

Mathcad — это программное обеспечение для инженерных расчетов.

Mathcad — это программное обеспечение для инженерных расчетов, которое стимулирует инновации и предлагает значительные преимущества в производительности процессов для проектов разработки и проектирования.

SMath Studio — математическая программа с «бумажным» интерфейсом и множеством вычислений.

SMath Studio — математическая программа с «бумажным» интерфейсом и множеством вычислительных функций. Он способен работать с системами, матрицами, векторами, комплексными числами, бесконечностями и дробями. SMath Studio поддерживает 18 языков интерфейса, имеет версии для Windows, Windows Mobile (PPC, коммуникаторы и смартфоны) и Linux. Он также включает в себя интегрированный математический справочник.

Оriginlab — программное обеспечение для анализа данных и построения графиков для ученых и инженеров.

Предоставляет десятки функциональных возможностей и опций. Механизм построения графиков очень эффективен, графики имеют высокое качество. Многие статистические функции делают анализ данных очень легким даже для тех, кто не имеет учёной степени.

OpenModelica — свободная среда Modelica!.

OpenModelica — свободная среда Modelica! OpenModelica — это среда моделирования и симуляции на основе Modelica с открытым исходным кодом, предназначенная для промышленного и академического использования. Его долгосрочное развитие поддерживается некоммерческой организацией — Open Source Modelica Consortium (OSMC).

COMSOL Multiphysics — программная среда для проектирования, дизайна и анализа.

COMSOL Multiphysics — это программная среда для проектирования, дизайна и анализа методом конечных элементов, предназначенная для моделирования и симуляции любой физической системы.

Что в этом списке?

С помощью пользователей мы собираем каталог похожих друг на друга программ, чтобы вы могли подобрать альтернативу и скачать их. На сайте можно скачать популярные программы для Windows, Mac Os, Android и iPhone

Свободное программное обеспечение

Среда, 27.05.2020, 03:49

— один из самых интересных свободных математических програ мм. Scilab — система компьютерной математики, которая предназначена для выполнения инженерных и научных вычислений. По возможностям пакет Scilab практически не уступает Mathcad, а по интерфейсу близок к Matlab. В Scilab реализованы численные методы решения следующих задач вычислительной математики, среди которых можно выделить следующие:

  • задачи линейной алгебры,
  • нелинейные уравнения и систем,
  • задачи оптимизации, при решении которых следует обратить внимание на несколько нестандартный синтаксис,
  • дифференцирование и интегрирование,
  • обработка экспериментальных данных (интерполяция и метод наименьших квадратов),
  • обыкновенные дифференциальные уравнения и системы.

В Scilab есть встроенные функции для численного решения большинства стандартных математических задач. Для решения нестандартных задач в Scilab есть довольно мощный объектно-ориентированный язык программирования (sci-язык), с помощью которого пользователь может создавать свои визуальные приложения (с использованием встроенных функций), которые могут выполняться, как отдельные программы в среде Scilab.

Графические возможности Scilab не уступают проприетарным математическим пакетам. Следует обратить внимание на то, что в состав Scilab входит Xcos — система компьютерного моделирования, аналогичная Simulink. Cвободно распространяемый пакет Scilab должен занять достойное место на компьютере специалиста, чья деятельность связана с решением задач вычислительной математики.

Скачать Scilab для различных операционных систем можно на странице загрузки официального сайта.

Мое знакомство с пакетом началось 5 лет назад c ресурса http://scilab.psati.ru/rukovodstvo/index.html, за эти годы был разработан курс лекций (совместно с Чесноковой О.В.) по пакету Scilab 4.

Е. Р. Алекс еев, Е. А. Чесн окова, Е. А. Рудченко.
Scilab: Решение инженерных и математических задач.

Полный текст книги по Scilab находится на этой странице сайта Alt Linux, прямая ссылка для скачивания книги.

На сегодняшний вышел Scilab 5.2, в нем появилось много изменений, в частности значительно изменилась система моделирования, которая теперь называется Xcos.
Список изменений в версии 5.0 по сравнению с 4.1 можно увидеть здесь (на английском языке) . Изменения в версии 5.2 представлены на официальном сайте программы в виде pdf файла.

Очень надеюсь, что в ближайшее время я напишу обзор нововведений Scilab 5.0-5.2. Есть мечта и о втором издании книги, дополнив его новыми возможностями и системой моделирования Xcos. Но, наверное, только мечта. Хотя, если Alt Linux или кто другой возьмётся за издание, то почему нет. Написать не проблема.

Scilab- генератор сигналов

Как отмечалось в первой части (part1), в пакет Scilab входит Хcos — графический редактор для визуального моделирования гибридных динамических систем, аналогичный Simulink (Matlab). При использовании Хcos, разработчик создает на экране дисплея модель устройства из стандартных библиотечных блоков и проводит необходимые расчеты. Преимущество такого типа моделирования заключается в том, что разработчику достаточно начальных знаний языка программирования и численных методов, а также знаний предметной области, в которой он работает. Важно также отметить, что при использовании Xcos, создание моделей основывается на использовании технологии Drag-and-Drop. «Кирпичиками» при построении модели служат визуальные блоки, которые хранятся в библиотеке Xcos.
Воспользуемся возможностями Xcos для создания источников звуковых сигналов и шума. Рассмотрим, вначале, как получить синусоидальный звуковой сигнал. Прежде всего, создадим модель нашего генератора. В инструментах, в командном окне Scilab выберем пункт: Визуальное моделирование Xcos. В результате появится 2 дополнительных окна: палитра блоков и Xcos (рис.1)

Используя блоки из палитры, перетащим мышью нужные блоки в окно Xcos (рис.2).

Мы использовали блоки GENSIN_f (генератор синусоиды), CLOCK_c (счётчик времени), CSCOPE (осциллограф). Если кликнуть мышью на каждый блок в нашей схеме, то можно менять параметры, например для блока GENSIN_f можно менять амплитуду, частоту и фазу (рис.3).

В пункте «Моделировать» выберем пункт «Запустить», в результате появится ещё одно окно с графиком нашего сигнала (рис.4).

Настроим параметры таким образом, чтобы получить нужные нам звуковые сигналы.
В пункте «Моделирование» выберем пункт «Установить контекст» и в появившемся окне введём наши данные, согласно синтаксису Scilab (рис.5,6).

В нашу модель мы добавили блок усиления с коэффициентом усиления 1. Этот коэффициент можно менять как в большую, так и в меньшую сторону. Полученные данные запишем в рабочую среду Scilab, а затем через него можно записать в файл формата .wav или воспроизвести. К сожалению, напрямую в Xcos можно записывать звуковые файлы только в формате .au (http://www.online-convert.com/ru/file-format/au).
Изменим нашу модель следующим образом (рис.7):

добавив вывод данных в рабочее пространство Scilab в виде переменной А.
Стоит заметить, что тип этой переменной struct (структура) и имеет 2 поля : A = values: [88200×1 constant], time: [88200×1 constant]. Воспроизвести нашу синусоиду можно командой sound(A.values).

Записать в файл:

f=440;bits=16;Fs=44100;
xx=pwd();//текущая директория
sinfile = xx+’sin’+string(f)+’.wav’;
wavwrite(A.values, Fs, bits, sinfile);

Аналогично, через рабочее пространство Scilab можно передать данные из внешних файлов в Xcos.
Для сигналов других видов уже есть стандартные блоки, которые находятся в палитре в пункте: Источники сигналов и воздействий. Это пилообразный- SAWTOOTH_f , прямоугольный -GENSQR_f , импульсный- PULSE_SC , ступенька- STEP_FUNCTION и генератор случайных сигналов- RAND_m , который может выдавать как равномерно распределённые, так и нормально распределённые сигналы. Последний генератор можно использовать для создания «белого» и «белого гауссова» шума.
Остаётся вопрос, каким образом можно создать модель генератора «розового» шума? «Розовый» шум со спадом -10 dB/декаду и постоянной мощностью на октаву может быть получен фильтрацией «белого» шума. Фильтр с отклонением 0,3 дБ в диапазоне от 0.00045 Fs до 0.45 Fs (частота семплирования) был предложен Robert Bristow-Johnson (http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt). Этот фильтр преобразует «белый» шум, равномерно распределённый от -1 до 1, в неоднородно распределённый «розовый» шум с RMS амплитуды 1.

Рис.8 Передаточная функция фильтра

Создадим модель (рис.9), используя блоки RAND_m (генератор случайных сигналов), GAINBLK_f (усиление), SUMMATION (суммирование), CONST_m (генератор постоянной величины), DLR (дискретная передаточная функция), CLOCK_c (блок, задающий частоту дискретизации), CMSCOPE (многооконный осциллограф). Параметры А и В для блока RAND_m зададим равными -1 и 2 соответственно, для того, чтобы амплитуда сигнала менялась в диапазоне [-1,1].

Вывод данных в рабочее пространство Scilab в виде переменной осуществляется аналогично рис.7.

Имитационное моделирование в среде Xcos системы Scilab1 Новой версии

Будет полезен. Будет полезен данный материал дл

Просмотр содержимого документа
«Имитационное моделирование в среде Xcos системы Scilab1 Новой версии»

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

педагогический институт имени М.Е. евсевьева»

Кафедра информатики и вычислительной техники

ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ В СРЕДЕ XCOS СИСТЕМЫ SCILAB

Автор работы А. ?. . студент ?? курса группы . очной формы обучения_________________________________

Направление подготовки 44.03.05 Педагогическое образование.

канд. физ.-мат. наук, доцент___________________________ Т. В. Кормилицына

История создания и особенности программы

Программное обеспечение (ПО) Scilab относится к свободно распространяемым кросс-платформенным прикладным пакетам для численных вычислений. С 1994 года распространяется вместе с исходным кодом через Интернет. В 2003 году для поддержки Scilab был создан консорциум Scilab Consortium. Scilab распространяется под GPL лицензией. До версии Scilab-5, это ПО было полусвободным, согласно номенклатуре Фонда свободного программного обеспечения. Причина этого заключается в том, что более ранние версии лицензии были запрещены для коммерческого распространения совместно с модифицированными версиями Scilab.

Читать еще:  TDD приложений на Spring Boot: работа с базой данных

Рассматриваемая программа имеет внутренний алгоритмический язык Scilab, относящимся к языкам программирования высокого уровня. Сферы применения Scilab:

2D и 3D графики, анимация;

линейная алгебра, разреженные матрицы (sparse matrices);

полиномиальные и рациональные функции;

симуляция: решение ОДУ и ДУ

scicos: гибрид системы моделирования динамических систем и симуляции;

дифференциальные и не дифференциальные оптимизации;

работа с компьютерной алгеброй.

С помощью матричных вычислений и автоматического управления памятью многие числовые данные могут быть выражены в сокращенном количестве строк программного кода, по сравнению с аналогичными решениями с использованием традиционных языков программирования, таких как Fortran, C или C++. Это дает пользователям возможность быстро построить модели для ряда математических проблем. Scilab-пакет содержит библиотеки операций высокого уровня, таких как корреляция и методы сложной многомерной арифметики и другие. Scilab также включает в себя бесплатный пакет визуального структурно-схематического программирования Xcos (на основе Scicos) для моделирования и имитации динамических систем, включая как непрерывные, так и дискретные системы. Xcos является свободно распространяемым эквивалентом Simulink (подсистема Matlab для моделирования динамических систем) компании MathWorks. Синтаксис Scilab подобен синтаксису MATLAB: Scilab содержит исходный код конвертора для оказания помощи при преобразовании кода из MATLAB в Scilab и наоборот. Scilab, как это было отмечено выше, предоставляется с бесплатной лицензией. Благодаря открытому исходному коду программного обеспечения, многие профессиональные пользователи имеют возможность для внесения своих разработок для интеграции их в основную программу.

маленький размер – дистрибутив 4 версии занимал менее 20 МБ против более чем двухгигабайтного пакета MATLAB, инсталлятор 5 версии (5.4.1) увеличился в объёме до 117 МБ;

возможность запуска в консоли без использования графического интерфейса, в том числе в версии под Windows (в UNIX и Windows версиях MatLab-а эта возможность присутствует тоже).

наличие только численных методов вычислений;

интерпретация, а не компиляция команд.

Моделирование процессов средствами пакета Xcos

Xcos (название первых версий Scicos, от «Scilab Connected Object Simulator») позволяет осуществлять визуальное математическое моделирование динамических систем различных объектов. Моделируемые объекты могут описываться как непрерывные и как дискретные. Система Scilab воспринимает модель Xcos как функцию, что позволяет осуществлять интеграцию моделей Xcos в программы Scilab. Сравнение с подходами к моделированию, основанными на традиционных языках программирования, показало, что использование Scilab/Xcos при незначительном увеличении длительности расчетов позволяет существенно сократить время на разработку модели. Это дает возможность рекомендовать Scilab/Xcos как средство для прототипирования.

Для вызова Xcos необходимо набрать «xcos» в командной строке главного окна Scilab или выбрать «Визуальное моделирование Xcos» в меню главного окна «Инструменты». При этом откроются два окна: окно палитр блоков Xcos и окна моделей (блочных диаграмм), которые были открыты при закрытии главного окна Scilab, либо новое пустое окно модели в случае, если при закрытии главного окна Scilab окна моделей уже были закрыты. Каждый блок Xcos находится в своей палитре в окне палитр блоков Xcos. Любая блочная диаграмма Xcos строится из блоков, находящихся в окне Палитры блоков. Блоки в окне Палитры блоков объединены в группы или отдельные палитры. При помощи щелчка правой кнопкой мыши на изображении любого блока вызывается контекстное меню, которое позволяет добавить текущий блок к диаграмме, а также вызвать справку по блоку (на английском языке). Также возможно добавление блока на диаграмму простым перетаскиванием при нажатой левой кнопке мыши. Диаграммы Xcos содержат два типа соединений: регулярные (черные) и управляющие (красные). По регулярным соединениям передаются сигналы данных, а по управляющим – сигналы активации. Блоки могут иметь регулярные и управляющие входы и выходы. Регулярные входы и выходы блоков располагаются слева и справа, а управляющие – сверху и снизу относительно блока. Блоки соединяются друг с другом при помощи линий, создаваемых щелчком левой кнопкой мыши на выходе одного блока и перемещением указателя мыши при нажатой левой кнопке на вход другого блока. Обратите внимание на то, что соединяться линиями могут только блоки с выходами и входами одного цвета (черного с черным и красного с красным). Разрешенные к соединению входы и выходы при наведении курсора мыши подсвечиваются зеленым цветом. Назначение некоторых наиболее широко употребляемых блоков описано ниже.

CLOCK_c – часы активации. Устанавливается шаг работы и время начала работы.

CONST_m, CONST_f, CONST – константа (постоянное значение сигнала).

GENSIN_f – генератор синусоидального сигнала.

RAND_m – генератор равномерно распределенных случайных чисел в диапазоне 0…1.

RAMP – блок генерации равномерно нарастающего сигнала.

STEP_FUNCTION – генератор ступенчатого сигнала.

TIME_f – время. Установок блока нет. Линейно нарастающий сигнал. Крутизна равна единице.

DERIV – непрерывный блок производной. Она вычисляется по входному сигналу Δu/Δt.

DLR – дискретная передаточная функция. Блок реализует линейную дискретную систему, представленную рациональной функцией типа (1+z)/(1+z)*(1+z) и т.п.

GAIN_f – усилитель (коэффициент).

INTEGRAL_f – непрерывный интегратор.

SUM_f, BIGSOM_f, SUMMATION – сложение.

TIME_DELAY – постоянная задержка по времени.

VARIABLE_DELAY – переменная задержка. Первый сигнал – задерживаемый, второй – величина задержки.

ABS_VALUE – абсолютная величина сигнала.

EXPRESSION – произвольное математическое выражение.

INTRP2BLK_f – 2D интерполяция.

POWBLK_f – степень. Блок реализует операцию y(i) = u(i)^a. Размерность входного и выходного портов определяется при компиляции в соответствии с подсоединенными портами.

PROD_f – умножение двух сигналов.

PRODUCT – умножение нескольких сигналов.

SATURATION – ограничитель значения сигнала.

TrigFun – тригонометрическая функция.

MUX – мультиплексор (объединитель нескольких сигналов в один

DEMUX – демультиплексор (разделитель векторного сигнала).

BACKLASH – имитация люфта сигнала.

TEXT_f – текстовый блок.

SUPER_f – создание суперблока (подсистемы из блоков).

CSCOPE – простой осциллограф.

CSCOPXY – отображает зависимость y = f(x). Переменные х и у подаются на два входа.

CSCOPXY3D – отображает зависимость z = f(x,y). Переменные z, х и

у подаются на три входа.

TOWORK_c – передача данных в рабочую область Scilab.

WFILE_f – запись данных в файл.

Для ознакомления с назначением остальных блоков Xcos рекомендуется использовать встроенную справку Scilab (в меню главного окна «Справка» − «Содержание» − «Xcos»).

ENDBLK – блок установки конечного времени работы модели.

При двойном щелчке по каждому блоку, который имеет настраиваемые параметры (некоторые блоки настраиваемых параметров не имеют), открывается окно, где должны быть заданы указанные параметры.

При первом открытии окна настраиваемых параметров блока соответствующие поля заполнены значениями по умолчанию.

Необходимо учитывать, что виртуальные решающие блоки и элементы инструмента Xcos системы Scilab обладают и другими возможностями, узнать про которые можно с помощью справки Scilab или из учебной литературы по системе Scilab/Xcos.

Создание новой модели Xcos предусматривает выполнение следующих действий:

запуск Xcos с пустым окном;

открытие одной или нескольких палитр;

копирование нужных блоков из палитр в окно модели;

соединение входов и выходов блоков;

установка параметров блоков нужного значения;

переименование и сохранение модели;

компиляция и запуск модели.

Сравнение сигналов. Разместим на рабочем поле 2 генератора синусоидальных сигналов, осциллограф и таймер. После соединения элементов и запуска собранной схемы на экране можем наблюдать фигуру Лиссажу – результат сложения сигналов. По этому рисунку можно определить, во сколько раз частота одного сигнала превышает частоту другого.

Реализация изменения сигнала по закону y=1+2sin(2t). После объединения соответствующих блоков необходимо задать их параметры, в частности, блока CLOCK_c для корректного отображения результативных данных. Для стабилизации графика необходимо наличие блока END, параметры которого определяют изменение аргумента t.

Моделирование стохастического процесса. Генератор вырабатывает случайные числа в диапазоне [0;9]. На выход схемы попадают только те числа, которые принадлежат диапазону [0;3]. При этом подсчет числа попаданий выполняется при помощи блока DLR (раздел библиотеки «Системы с дискретным временем»), блок AFFICH_m выводит результат подсчета, а блок CSCOPE (раздел библиотеки «Регистрирующие устройства») отображает в графическом виде сгенерированные при помощи блока RAND_m случайным образом числа и попадание сгенерированных чисел в заданный интервал – при этом попадание числа соответствует в числовом виде 1, а промах – 0. Проверка на попадание сгенерированного числа в заданный интервал выполняется при помощи блока HYSTHERESIS. Этот интервал задается в окне настроек данного блока в полях output when on (нижняя граница) и switch on at (верхняя граница). Логика работы нашей модели следующая. После запуска модели на выполнение производится генерация случайных чисел распределенных на интервале [0;9]. После чего выполняется проверка на попадание сгенерированных чисел в диапазон [0;3] и подсчет числа попаданий. Верхний график отображает попадания/промахи сгенерированных случайным образом чисел в заданный интервал. Последовательность сгенерированных чисел отображается на нижнем графике.

Смешивание сигналов с предварительным умножением одной из составляющих. Cинусоидальный сигнал поступает на вход умножителя с коэффициентом 2, после чего с помощью сумматора смешивается со с линейно изменяющимся сигналом. Данная схема имеет важное практическое значение: выходной сигнал (данная форма) применяется, например, в аппаратах ЭКГ.

Список использованных источников

Алексеев, Е. Р. Решение инженерных и математических задач в Scilab / Е. Р. Алексеев [и др.]. – М. : БИНОМ. Лаборатория знаний, 2008. – 269 с.

Чингаева, А. М. Визуальное моделирование в Scilab Xcos / А. М. Чингаева. – Самара : ПГУТИ, 2012. – 24 с.

Данилов, С. Н. SCICOS для моделирования динамических систем / С. Н. Данилов. – Тамбов : ТГТУ, 2011. – 74 с.

Корытов, М. С. Основы автоматизированного проектирования : учеб. пособие / М. С. Корытов. – Омск : СибАДИ, 2016. – 69 с.

Глибич, Е. С. Моделирование электротехнологических установок в Xcos Scilab / Е. С. Глибич. – Тольятти : ТГУ, 2016. – 48 с.

Андриевский, А. Б. Решение инженерных задач в Scilab : учеб. пособие / А. Б. Андриевский [и др.]. – СПб. : ИТМО, 2013. – 99 с.

Алексеев, А. Р. Scilab: решение инженерных и математических задач / Е. Р. Алексеев [и др.]. – М. : БИНОМ. Лаборатория знаний, 2008. – 260 с.

Усачев, А. Е. Сборник заданий по работе и программированию в системе SCILAB / А. Е. Усачев. – Ульяновск : УлГТУ, 2015. – 84 с.

Конев, Ф. И. Вычисления в программе Scilab / Ф. И. Конев [и др.]. – М. : Орион, 2013. – 55 с.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector