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

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

Содержание

Моделирование систем в программной среде 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.

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

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

Xcos интегрирован в среду Scilab, что позволяет использовать встроенные математические алгоритмы и мощные средства обработки данных. Инженеры и ученые со всего мира используют среду Scilab & Xcos для модельно-ориентированного проектирования (имитационного моделирования), разработки систем управления, систем связи, анализа и сбора данных, а также для иных вычислительных задач. В этой статье рассмотрена настройка параметров, просмотр результатов и работа со следующими блоками Xcos: LOGIC, MUX, CONST_m, CLOCK_c, CONVERT, AFFICH_m. Приведен пример построения модели с использованием блоков Xcos.

Создание модели работы дешифратора.

В качестве примера создания модели в среде Xcos рассмотрим построение блок-диаграммы для решения задачи моделирования работы дешифратора на четыре выхода. Дешифратор преобразует входной двоичный код в такой выходной код, в котором только на одном из всех выходов имеется единица. Сигнал на входы дешифратора поступает от двух источников: Источник 1, Источник 2. Результат, полученный с выхода дешифратора необходимо зарегистрировать (визуально отобразить). В таблице 1 представлена таблица истинности работы дешифратора. Где: C – управляющий сигнал, X0 и X1 – входные сигналы, Y0 – Y3 – выходные сигналы.

Таблица 1. Таблица истинности работы дешифратора.

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

Для решения задачи моделирования работы дешифратора выберем следующие блоки библиотеки Xcos:

— LOGIC (раздел библиотеки «Целое число») – блок обеспечивает преобразование входных булевых величин в выходную в соответствии с заданной таблицей истинности, которая задается пользователем явно или при помощи функций (в нашем случае мы использовали функции zeros( ) и eye( )) в поле «Таблица истинности (матрица значений на выходе)» окна настроек параметров блока;

Читать еще:  Как удалить постоянно открывающуюся вкладку?

— MUX (раздел библиотеки «Общеупотребительные блоки») – данный блок выполняет объединение входных величин в единый выходной вектор. Порядок элементов в векторе выхода определяется порядком входов (сверху вниз). Количество входов данного блока (оно же размер выходного вектора) задается в поле number of input ports or vector of size окна настроек параметров блока;

— CONST_m (раздел библиотеки «Общеупотребительные блоки») – формирует постоянную величину. Значение константы вводится в окне настроек параметров данного блока в поле «Постоянное значение». Так же в этом поле может устанавливаться тип данных выходных значений данного блока;

— CLOCK_c (раздел библиотеки «Обработка событий») – является источником сигналов активации для блоков, имеющих управляющий вход. Если блок имеет управляющий вход, то он срабатывает каждый раз, когда на него поступает сигнал активации. Поведение блока, не имеющего управляющего входа, определяется его внутренними параметрами;

— CONVERT (раздел библиотеки «Общеупотребительные блоки») – используется для преобразования типа данных;

— AFFICH_m (раздел библиотеки «Регистрирующие устройства») – данный блок при моделировании играет роль обзорного окна. Он имеет один вход данных и один управляющий вход и предназначен для отображения на экране численных значений входных величин, фигурирующих в блок-диаграмме. Для блока можно настроить следующие параметры (рис. 1а):

Рис. 1. Окно настроек параметров блока: (а) AFFICH_m

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

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

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

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

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

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

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

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

Логика поведения дешифратора для разных значений входных сигналов описывается в поле «Таблица истинности (матрица значений на выходе)» окна настройки параметров блока LOGIC (рис. 1б).

Рис. 1. Окно настроек параметров блока: (б) LOGIC

В соответствии с представленной в таблице 1 таблицей истинности параметр «Таблица истинности (матрица значений на выходе)» должен быть представлен в виде матрицы, которая имеет следующий вид [1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1]. Однако правила синтаксиса данного поля не позволяют задать матрицу значений именно в таком виде. Для решения этой задачи можно воспользоваться функциями zeros( ) и eye( ). Функция zeros(m1,m2) создает матрицу составленную из нулей, где m1, m2 – размер матрицы. Функция eye(m,n) в соответствии со своими аргументами определяет матрицу mxn с единицами по главной диагонали. Таким образом, результатом выражения [zeros(4,4); eye(4,4)] будет матрица размерностью 4х4 заполненная нулями с единицами по диагонали. После запуска моделирования в зависимости от комбинации входных сигналов, на выход блока LOGIC будет подана одна из строк матрицы. Значения входных сигналов в явном виде в окне настроек данного блока не указываются.

Отобразить результаты моделирования на экране можно при помощи блока AFFICH_m. Однако, этот блок имеет такую особенность – на его вход может поступать только один сигнал, а из поставленной задачи известно что дешифратор имеет четыре информационных выхода. Поэтому необходимо объединить четыре отдельных значения поступающих с блока LOGIC в один вектор. Решить эту задачу можно при помощи блока MUX. Входные значения блока LOGIC задаются в окне настроек блоков CONST_m в поле «Постоянное значение» (рис. 1в).

Рис. 1. Окно настроек параметров блока: (в) CONST_m

Для упрощения чтения блок-диаграммы присвоим блокам осмысленные имена: для блоков CONST_m – Источник 1 и Источник 2, Сигнал управления, блоку LOGIC – Дешифратор, блоку AFFICH_m – Результат. Для того, что бы добавить имена, можно воспользоваться блоком TEXT_f (раздел библиотеки «Примечания»). Для этого выберите блок TEXT_f в окне «Палитры блоков» и переместите его при помощи мыши в рабочее поле программы. Для ввода текстовых надписей в данном блоке необходимо дважды щелкнуть по нему левой кнопкой, в результате чего указатель примет вид мигающей черточки. Далее необходимо при помощи клавиатуры стереть стандартное название блока и ввести свое, после чего щелкнуть левой кнопкой мыши в свободной области блок-диаграммы.

После того как все блоки размещены в поле блок-диаграммы, соединим их в соответствии с логикой их взаимодействия: сигналы с выходов блоков Источник 1, Источник 2, Сигнал управления должны поступать на входы блока Дешифратор. Далее соединим выходы блока Дешифратор с входом блока Результат через блоки CONVERT и MUX. В Xcos может случиться так, что при построении модели типы данных порта источника и приемника информационного сигнала могут отличаться. Для их согласования используют блок CONVERT. При этом тип входного сигнала указывается в поле «Тип на входе», а тип выходного сигнала – в поле «Тип на выходе» окна настроек параметров блока (рис. 1г).

Рис. 1. Окно настроек параметров блока: (г) CONVERT

Блок MUX преобразует полученные с блока CONVERT сигналы в вектор значений и передает далее полученный вектор на вход блока Результат. Далее соединим выход блока CLOCK_c с входом блока Результат. На рисунке 2 показана собранная нами блок-диаграмма.

Рис. 2. Модель дешифратора в рабочей области Xcos

Сохраним нашу модель на диск компьютера при помощи команды основного меню «Файл/Сохранить как» и проведем пробное моделирование, посредством нажатия кнопки «Запустить» на панели инструментов окна модели Xcos. В процессе моделирования системой могут быть обнаружены ошибки, описание которых будет представлено во всплывающем окне (рис. 3).

Рис. 3. Окно описания ошибок симуляции модели и цветные подсказки, указывающие на область блок-диаграммы в которой возникла ошибка

В то же время на блок-диаграмме модели будут отображены цветные маркеры, которые указывают на область диаграммы, в которой возникла ошибка. В нашем случае (как видно из рисунка) ошибка заключается в том, что входные и выходные сигналы имеют разный тип. Для того, что бы исправить эту ошибку зайдем в окно настроек блока CONVERT и изменим параметр «Тип на выходе» – установим значение «1», которое соответствует типу double.

Рис. 4. Результаты работы модели дешифратора

Теперь можно снова запустить процесс моделирования. Как видно из рисунка 4 (а, б) — полученный результат соответствует таблице истинности дешифратора. Необходимо отметить, что параметры модели дешифратора в целом были установлены по умолчанию.

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

Аналоги 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.

Читать еще:  Как сделать снимок экрана на iphone 6?

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, 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 файла.

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

Решение задач «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 часа в сутки.

Часть 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, предназначена прежде всего для численных расчетов и работы с матрицами. Кроме того, она обладает развитыми средствами программирования (включая отладчик скриптов), так что ее в какой-то мере можно рассматривать как систему разработки высокотехнологичных приложений.

Читать еще:  Восстановление несохраненной книги Excel

Для системы имеется достаточно большое число пакетов расширений, которые можно найти на официальном сайте в разделе 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. Если на вход ей будет подано не одно значение, а несколько, то, вне зависимости от количества элементов, будет выведен единственный и абсолютно неверный результат:

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

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

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

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

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

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

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

Заключение

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

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