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

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

Содержание

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

Имитационное моделирование в равной степени пригодно как для решения детерминированных задач, так и для исследования ситуаций, зависящих от случайных факторов. При создании моделей с помощью универсальных языков программирования аппаратный или программный датчик случайных чисел – единственный инструмент разработчика для моделирования всех видов случайных факторов: случайных событий, случайных величин и случайных процессов. У того, кто использует Xcos, арсенал значительно шире. В этой статье рассматривается процесс моделирования случайных событий с использованием таких блоков Xcos как RAND_m, RELATIONALOP, HYSTHERESIS, DLR, CSCOPE, CONST, CLOCK_c, AFFICH_m.

Моделирование случайных событий

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

Рис. 1. Моделирование случайных событий при помощи блоков RAND_m и RELATIONALOP

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

— генерируют случайное число;

— определяют попадание полученного числа в заданный диапазон значений;

— идентифицируют состояние события (наступило/не наступило).

В Xcos-модели эти действия можно реализовать при помощи следующих блоков:

— RAND_m (раздел библиотеки «Источники сигналов и воздействий»);

— CONST (раздел библиотеки «Источники сигналов и воздействий»);

— RELATIONALOP (раздел библиотеки «Общеупотребительные блоки»);

— CLOCK_c (раздел библиотеки «Обработка событий»);

— AFFICH_m (раздел библиотеки «Регистрирующие устройства»).

Приступим к созданию модели, для чего запустим программную среду Scilab, а затем в основном меню «Инструменты» выберем пункт «Визуальное моделирование Xcos». В результате чего будет открыто окно обозревателя разделов библиотеки Xcos и новый файл модели. Выберем из указанных разделов библиотеки Xcos нужные блоки и разместим их в рабочей области программы, а затем соединим блоки между собой так, как показано на рисунке 1. Логика работы разрабатываемой модели следующая. Блок RELATIONALOP выполняет сравнение полученных от двух источников чисел. При этом первое число генерируется при помощи блока RAND_m, а второе задается разработчиком самостоятельно при помощи блока CONST и является константой. Если сгенерированное случайное число меньше константы, то событие считается таким, что наступило (блок AFFICH_m отображает значение 1), в противном случае событие будет считаться не наступившим (блок AFFICH_m отображает значение 0).

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

— Datatype (1=real double 2=complex) – тип выходных данных: 1 – действительные числа, 2 – комплексные числа;

— flag – флаг, определяющий вид закона распределения: 0 – равномерное, 1 – нормальное (гауссовское);

— A – нижняя граница диапазона генерации случайных чисел;

— B – верхняя граница диапазона;

— SEED – числа, используемые для инициализации машинного генератора псевдослучайных чисел. Первое значение относится к действительной, а второе к мнимой части выходного сигнала.

Рис. 2. Окно настроек параметров блока: (а) RAND_m, (б) CONST, (в) RELATIONALOP, (г) AFFICH_m

Источником сигнала активации для блока RAND_m является блок CLOCK_c. Блок CONST формирует постоянную величину. Значение константы вводится в окне настроек параметров данного блока в поле Constant (рис. 2б). Оператор отношения указывается в поле Operator окна настроек параметров блока RELATIONALOP (рис. 2в). В операции отношения первым операндом является сигнал, подаваемый на первый (верхний) вход блока, а вторым операндом – сигнал, подаваемый на второй (нижний) вход. Выходным сигналом блока является 1, если результат вычисления операции отношения есть «истина» и 0, если результат – «ложь».

Блок AFFICH_m при моделировании играет роль обзорного окна и предназначен для отображения на экране численных значений входных величин, фигурирующих в блок-диаграмме. В нашей модели данный блок показывает состояние события (событие наступило/не наступило). Для блока можно настроить следующие параметры (рис. 2г):

— Input Size – размерность матрицы входных значений;

— Font number – номер шрифта;

— Font size – размер шрифта;

— Color – цвет шрифта;

— Number of rational part digits – количество знаков после запятой;

— Block inherits (1) or not (0) – обрыв управляющей связи с блоком.

Блок AFFICH_m может использоваться для вывода как скалярных, так и векторных величин. Если отображаемая величина является вектором, то размер блока необходимо будет увеличить – растянуть при помощи мыши. Для этого следует выделить блок, подвести курсор мыши к одному из его углов, нажать левую клавишу мыши и, не отпуская ее, растянуть изображение блока до нужных размеров.

После того как блок-диаграмма собрана, а параметры всех ее блоков настроены, можно запускать моделирование. Однако, не забудьте предварительно сохранить модель на диск компьютера при помощи команды основного меню «Файл/Сохранить как». Теперь посредством нажатия кнопки «Запустить» на панели инструментов окна модели Xcos можно провести пробное моделирование, результат которого представлен на рисунке 3.

Рис. 3. Результат работы модели случайных событий

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

Рис. 4. Моделирование случайных событий при помощи блоков HYSTHERESIS и DLR

Рис. 5. Окно настроек параметров блока HYSTHERESIS

Рис. 6. Работа спроектированной модели регистрации моментов попадания случайного числа в заданный интервал в динамике

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

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

Среда, 27.05.2020, 04:08

— один из самых интересных свободных математических програ мм. 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 файла.

Читать еще:  Как удалить kmsauto net из системы?

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

Часть 1.Основы программирования в Scilab

Серия контента:

Этот контент является частью # из серии # статей: SCILAB

Этот контент является частью серии: SCILAB

Следите за выходом новых статей этой серии.

Обозначения

Во всем цикле при описании общего вида конструкций используются следующие обозначения:

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

Что такое Scilab

Scilab – это кроссплатформенная система компьютерной алгебры (СКА), обладающая сходным с Matlab синтаксисом встроенного языка. Разработка системы Scilab ведется сотрудниками французского Национального института информатики и автоматизации (INRIA – Institut National de Recherche en Informatique et Automatique) с 80-х годов прошлого века.

Изначально это был коммерческий проект под названием Blaise, а затем Basile. С 2003 года продукт получил новое имя Scilab и стал бесплатным. В настоящее время он распространяется по свободной лицензии CeCILL.

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

Для системы имеется достаточно большое число пакетов расширений, которые можно найти на официальном сайте в разделе Toolbox center. Однако чем больше будет хороших пакетов, тем более полезной станет система. Поэтому мы предлагаем вам ознакомиться с программированием в Scilab и способами создания для данной СКА пакетов расширений.

Редактор SciPad

В данном цикле статей мы не будем останавливаться на выполнении вычислений в Scilab, не будем также рассматривать встроенные функции и их параметры. Эту информацию можно найти в Интернете (см. раздел «Ресурсы»), а также в справочных материалах самой системы. Мы займемся изучением непосредственно программирования в Scilab.

Для удобства написания скриптов (функций) в Scilab имеется встроенный редактор – Scipad. Он позволяет редактировать тексты функций, выполнять их в режиме отладки, содержит функцию автодополнения кода, а также средства непосредственной передачи текста программы в среду Scilab на выполнение.

Открыть редактор можно двумя способами:

  • подать в консоли Scilab команду scipad
  • выбрать в главном окне последовательно пункты меню Инструменты → Редактор.
Рисунок 1. Внешний вид редактора SciPad

В моей системе установлена Scilab 5.1, в которой присутствует редактор Scipad 7.18. Внешний вид редактора показан на рисунке 1. Как видно, интерфейс достаточно прост. Кратко рассмотрим пункты меню:

File – здесь находятся стандартные команды для работы с файлами: открыть (Open), закрыть (Close file), сохранить (Save) и т. д., а также команды импорта файлов функций из формата Matlab и формирования справочных материалов.

Edit – содержит стандартные для пункта меню Правка операции: копировать (Copy), вставить (Paste), вырезать (Cut), выделить все (Select All) и т. д.

Search – здесь находятся функции поиска по тексту.

Execute – содержит пункты, позволяющие передать содержимое редактора в среду Scilab на выполнение или выполнить только выделенную часть.

Debug – содержит команды для организации и выполнения отладки, такие как включение точек останова (breakpoint), добавление переменных в список наблюдения (watch), настройка запуска функции и т. д. К сожалению, в Scilab 5.1 данный режим недоступен вследствие наличия неустраненной ошибки.

Scheme – команды управления подсветкой синтаксиса.

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

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

Мы будем использовать этот редактор во всех уроках серии для создания новых функций и их тестирования.

Сохранение, загрузка и выполнение скриптов пользователя

Сохранить созданный скрипт можно при помощи пунктов меню File:

  • File > Save – сохранить скрипт;
  • File > Save as – сохранить скрипт под другим именем;
  • File > Save all – сохранить все открытые скрипты.

Для открытия файла скрипта необходимо выполнить File > Open, а затем перейти в каталог с необходимым файлом, выбрать его и нажать кнопку Open. Кроме того, в самом меню File имеется список последних открывавшихся файлов.

Чтобы протестировать функцию, ее необходимо передать в основное окно Scilab (консоль). Для этого необходимо воспользоваться меню Execute, в котором присутствуют три пункта:

  • Load into Scilab – загрузить в Scilab текущий скрипт;
  • Load all into Scilab – загрузить в Scilab все открытые скрипты;
  • Evaluate selection – выполнить в консоли Scilab только выделенные строки.

Стандартные конструкции встроенного языка

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

Переменные не описываются, а создаются путем присвоения им начального значения, например так:

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

Вследствие Unix-корней системы, важен регистр букв в имени переменных, например:

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

Из приведенного примера видно, что в общем случае описание функции выглядит следующим образом:

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

Линейный процесс вычислений

Создадим стандартную, для начинающих программировать, функцию, которая будет приветствовать всех по имени:

Вот пример выполнения этой функции:

Теперь укажем в качестве входного параметра не одно значение, а массив значений:

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

В пользовательских скриптах можно использовать любые сторонние функции, входящие в состав самой системы Scilab или ее пакетов-расширений. При этом используются следующие знаки действий: + (сложение), – (вычитание), * (умножение), / (деление), ^ (возведение в степень), ‘ (транспонирование). Изначально эти операции служат для выполнения матричных действий по правилам матричной алгебры. Например:

Здесь сделана попытка перемножить две строки, но по правилам матричной алгебры это нельзя сделать. Одну из из строк необходимо транспонировать, чтобы получился столбец. Кроме того, согласно правилам матричной алгебры, важен порядок множителей:

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

То же самое относится и ко всем остальным действиям кроме операции транспонирования.

Операторы ветвления

Создадим теперь функцию для расчета логарифма числа по произвольному основанию:

Однако, как известно, логарифм числа a по основанию b имеет смысл только при выполнении условий: a,b > 0, a ≠ 1. Наложим дополнительное условие: входные параметры должны быть скалярными величинами, т. е. не векторами или матрицами. Для того чтобы функция не приводила к выводу сообщения об ошибке или краху системы, входные данные следует проверять на корректность. Сделать это можно при помощи условного оператора, общий вид которого показан ниже:

Запишем новый вид функции с проверкой входных данных на корректность:

В приведенном фрагменте кода используется функция or([массив условий]), возвращающая результат применения логической операции ИЛИ ко всем, перечисленным в квадратных скобках, условиям. Сходна с ней и функция and([список условий]), возвращающая результат применения логической функции И ко всем элементам списка условий. Однако можно использовать и стандартные операции C++, т. е. & – И, | – ИЛИ.

Также нуждается в пояснении функция error( ). Эта функция останавливает вычисления и сообщает пользователю о том, что произошла ошибка и указывает имя и строку функции, в которой эта ошибка возникла. Более мягким решением может быть использование предупреждений (warning), которые позволяют вывести сообщение о возникших проблемах, но вычисления при этом не останавливаются. Способ использования прост:

Иногда возникает необходимость выполнить те или иные действия в зависимости от значения некоторой переменной. Если тип этой переменной является перечислимым, т. е. переменная может принимать конечное количество значений, то можно воспользоваться оператором множественного выбора. Общий вид этого оператора показан ниже:

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

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

Циклы

Для организации повторяющихся вычислений в Scilab присутствует два стандартных типа циклов: счетный (for) и условный (while). Первый используется в тех случаях, когда заранее известно количество повторений тела цикла, второй – в обратном случае.

Общий вид оператора счетного цикла следующий:

В качестве выражения может выступать все что угодно. Если в качестве выражения указывается вектор (матрица), то переменная-счетчик последовательно принимает все значения этого вектора (матрицы). Если вспомнить, как в Scilab создаются массивы значений, то можно привести эту конструкцию к стандартному виду для цикла for во всех языках программирования:

Рассмотрим описанную нами функцию edIzm. Если на вход ей будет подано не одно значение, а несколько, то, вне зависимости от количества элементов, будет выведен единственный и абсолютно неверный результат:

Читать еще:  Как с помощью maven работать с библиотеками, которых в maven нет

Дело в том, что Scilab пытается перевести в строку весь массив сразу. Поэтому длина строки получается очень большой. Следовательно, необходимо рассмотреть каждый из элементов. В этом может помочь счетный оператор цикла:

Кроме использования оператора цикла for, в коде функции появилась переменная i для нумерации элементов результата и переменная-результат заключена в квадратные скобки, чтобы показать, что в результате получится массив. Возможен и такой вариант начала функции:

Однако и на данном этапе функция еще не совершенна, поскольку в строку число переводится в том же виде, что и отображается, а это максимум девять позиций, и результат ‘Много’ мы никогда не получим. Поэтому лучше будет просто посчитать количество разрядов в числе. В этом нам поможет цикл while. Общий вид этого оператора:

Пока результат вычисления выражения равен True, цикл выполняется. Чтобы отделить выражение-условие от тела цикла, можно использовать ключевые слова then или do, но они должны находиться на той же строке, что и while. Кроме того, перед end можно вставить блок else, инструкции которого будут выполнены после того, как выражение-условие станет ложью (False).

Итак, вместо строк

можно вставить следующее:

Окончательную версию функции вы можете загрузить по ссылке в разделе «Загрузка».

Заключение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рассматриваемая программа имеет внутренний алгоритмический язык 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 с.

Решение задач «Scilab, построить модель системы в среде визуального моделирования xcos»,
Моделирование систем

Scilab, построить модель системы в среде визуального моделирования xcos

ID (номер) заказа

Закажите подобную или любую другую работу недорого

Цены ниже –
качество выше!

Вы работаете с экспертами напрямую,
не переплачивая посредникам, поэтому
наши цены в 2-3 раза ниже

Последние размещенные задания

Выполнить 2 задания (в виде таблицы)

Подбор литературы, Основы научных исследований

Срок сдачи к 28 мая

Совершенствование системы качества лекарственных препаратов.

Диплом, Управление экономики фармации

Срок сдачи к 2 июня

Решение задач, Математический анализ

Срок сдачи к 28 мая

Дистанционный экзамен по физике. Начало в 4:00 по мск

Срок сдачи к 28 мая

Презентация по экономике

Срок сдачи к 1 июня

Помощь на тесте

Онлайн-помощь, Теория вероятностей и математическая статистика

Срок сдачи к 4 июня

Определение страны происхождения товаров

Эссе, таможенное дело

Срок сдачи к 27 мая

Контрольная по предмету «материаловедение»

Срок сдачи к 5 июня

Ответить на вопросы 15-20 предложениями

Другое, русский язык и культура речи

Срок сдачи к 29 мая

20-25 страниц, все требования и методика выполнения в прикреплённом.

Реферат, Физическая культура и спорт

Срок сдачи к 31 мая

Нужно решить пару задач в течение часа, задачи появятся только в 9

Решение задач, Метрология, стандартизация и сертификация

Срок сдачи к 27 мая

Отчёт по лабораторной работе

Срок сдачи к 27 мая

Выполнить 7 заданий.

Контрольная, Методика преподавания математики. начальное образование

Срок сдачи к 3 июня

Тактика и методика расследования преступлений

Срок сдачи к 2 июня

Медицинская химия задания скину к 2 часам

Решение задач, Химия

Срок сдачи к 27 мая

Контрольная, Высшая математика

Срок сдачи к 28 мая

Тема: понятие и значение уголовного закона. антиплагиат: 70-75 %

Курсовая, уголовное право

Срок сдачи к 7 июня

сгруппировать по одинаковости, по функции назначения

Отчет по практике, Схемотехника

Срок сдачи к 28 мая

Решение задач по предметам

Отзывы студентов о нашей работе

обратились к нам
за последний год

работают с нашим сервисом

заданий и консультаций

заданий и консультаций

выполнено и сдано
за прошедший год

Разместите задание, а
мы подберём эксперта

Сайт бесплатно разошлёт задание экспертам.
А эксперты предложат цены. Это удобнее, чем
искать кого-то в Интернете

Цены ниже в 2-3 раза

Вы работаете с экспертами напрямую, поэтому цены
ниже, чем в агентствах

Доработки и консультации
– бесплатны

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

Гарантия возврата денег

Если эксперт не справится — мы вернем 100% стоимости

Мы проводим строгий отбор экспертов. На сайте
работают только специалисты с высшим образованием,
имеющие в дипломе оценки «хорошо» и «отлично»

На связи 7 дней в неделю

Вы всегда можете к нам обратиться — и в выходные,
и в праздники

Гарантия возврата денег

Эксперт получил деньги за заказ, а работу не выполнил?
Только не у нас!

Деньги хранятся на вашем балансе во время работы
над заданием и гарантийного срока

Гарантия возврата денег

В случае, если что-то пойдет не так, мы гарантируем
возврат полной уплаченой суммы

Переживаете
за доработки?
Они бесплатны

С вами будут работать лучшие эксперты.
Они знают и понимают, что работу доводят
до конца

С нами с 2014
года

Помог студентам: 1974 Сдано работ: 1974

С нами с 2015
года

Помог студентам: 3523 Сдано работ: 3523

С нами с 2016
года

Помог студентам: 819 Сдано работ: 819

С нами с 2013
года

Помог студентам: 1384 Сдано работ: 1384

Сколько стоит помощь?

1. Сколько стоит помощь?

Цена, как известно, зависит от объёма, сложности и срочности. Особенностью «Всё сдал!» является то, что все заказчики работают со экспертами напрямую (без посредников). Поэтому цены в 2-3 раза ниже.

Специалистам под силу выполнить как срочный заказ, так и сложный, требующий существенных временных затрат. Для каждой работы определяются оптимальные сроки. Например, помощь с курсовой работой – 5-7 дней. Сообщите нам ваши сроки, и мы выполним работу не позднее указанной даты. P.S.: наши эксперты всегда стараются выполнить работу раньше срока.

3. Выполняете ли вы срочные заказы?

Да, у нас большой опыт выполнения срочных заказов.

4. Если потребуется доработка или дополнительная консультация, это бесплатно?

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

5. Я разместил заказ. Могу ли я не платить, если меня не устроит стоимость?

Да, конечно — оценка стоимости бесплатна и ни к чему вас не обязывает.

6. Каким способом можно произвести оплату?

Работу можно оплатить множеством способом: картой Visa / MasterCard, с баланса мобильного, в терминале, в салонах Евросеть / Связной, через Сбербанк и т.д.

7. Предоставляете ли вы гарантии на услуги?

На все виды услуг мы даем гарантию. Если эксперт не справится — мы вернём 100% суммы.

8. Какой у вас режим работы?

Мы принимаем заявки 7 дней в неделю, 24 часа в сутки.

Scilab 5.2.2

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

Scilab содержит сотни математических функций, и есть возможность добавления новых, написанных на различных языках (C, C++, Fortran …). Так же имеются разнообразные структуры данных (списки, полиномы, рациональные функции, линейные системы), интерпретатор и язык высокого уровня.
Scilab имеет схожий с MATLAB язык программирования. В состав пакета входит утилита, позволяющая конвертировать документы Matlab в Scilab.

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

Для численных расчётов используются библиотеки Lapack, LINPACK, ODEPACK , Atlas и другие.

В состав пакета также входит Scicos — инструмент для редактирования блочных диаграмм и симуляции (аналог simulink в пакете MATLAB). Имеется возможность совместной работы Scilab с программой LabVIEW.

Распространение
Программа доступна для различных операционных систем, включая GNU/Linux и Microsoft Windows. Возможности Scilab могут быть расширены внешними программами и модулями, написанными на разных языках программирования. Программа имеет открытый исходный код, что позволяет как свободное коммерческое использование и распространение неизменённых версий, так и некоммерческое распространение измененных версий, которые должны включать в себя исходный код. Для коммерческого распространения измёненных версий необходимо согласование с INRIA.

Отличия от некоторых коммерческих программ:
* Бесплатность
* Свободность (с версии 5.0)
* Маленький размер ( против более чем двухгигабайтного пакета MATLAB) — дистрибутив 4 версии занимала менее 20Мб, 5 версия потолстела в 4 раза — инсталятор весил около 75 Мб, а предлагаемая версия 5.2.2 весит уже около 95 Мб — но и возможности программы все время увеличиваются.
* Возможность запуска в консоли без использования графического интерфейса в том числе в версии под Windows (в UNIX-версии MatLab-а эта возможность присутствует). Это позволяет производить автоматизированные вычисления, есть пакетный режим.

Особенности
* Сотни математических функций
* Язык программирования высокого уровня
* 2-D и 3-D графики
* Расширенные структуры данных и пользовательских типов данных
* Xcos: гибридные моделированию динамических систем и симулятор

2-D и 3-D визуализации
* Строки
* Круговая диаграмма
* Гистограммы
* Поверхности
* Анимация
* Экспорт графики во многих форматах: GIF, BMP, JPEG, SVG, PDF .

Численный расчет
* Линейная алгебра
* Разреженные матрицы
* Полиномиальные и рациональные функции
* Моделирование: дифференциальные и не дифференциальные оптимизации
* Классический и надежный контроль
* Дифференцируемых и недифференцируемой оптимизации
* Симуляция: решение ОДУ и ДУ
* Scicos: гибрид системы моделирования динамических систем и симуляции
* Параллельная работа

Анализ данных
* Интерполяция, аппроксимация
* Обработка сигналов
* Статистика

Расширенные возможности
* Графы и сети
* Интерфейс к Fortran, Tcl/Tk, C, C++, Java, LabVIEW
* Вызов функций Scilab на C, C++, Fortran и Java
* LabVIEW Gateway
* Доступность через ATOMS большого количества модулей,
* Возможность запуска в консоли без использования графического интерфейса. Это позволяет производить автоматизированные вычисления, есть пакетный режим.

Scilab 5.2.2 (04/21/2010)
* множество улучшений и исправлений мелких ошибок.

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