Основные представления о системе визуального моделирования (vissim, matlab)

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

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

Одной из первых таких сред была специализированная надстройка SIMULINK, работающая на базе математического пакета MATLAB.

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

В настоящее время существуют несколько десятков пакетов визуального моделирования, в том числе пакет Model Vision 2.1, в группу разработчиков которого входили и авторы этой книги. Эти пакеты базируются на идеях, господствовавших в то время, когда о мощных компьютерах и графических средах еще только мечтали. Графика в них используется весьма прямолинейно, она сродни иллюстрации в книге, а сама технология моделирования требует постоянного контроля со стороны разработчика за правильностью получаемых результатов, и поэтому можно отнести эти средства визуального моделирования к средствам первого поколения. Опыт их эксплуатации только умножил число нерешенных проблем.

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

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

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

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

VisSim — это визуальный язык программирования предназначенный для моделирования динамических систем, а также проектирования, базируюшегося на моделях, для встроенных микропроцессоров. VisSim сочетает в себе характерный для Windows интуитивный интерфейс для создания блочных диаграмм и мощное моделирующее ядро. Язык разработан американской компанией Visual Solutions, которая находится в Westford, штат Массачусеттс.

Язык и программная среда VisSim широко используется в разработке систем управления и цифровой обработки сигналов для моделирования и дизайна. Она включает в себя блоки для арифметики, булевых и трансцендентных функций, а также цифровые фильтры, передаточные функции, численного интегрирования и интерактивного вывода. Основными областями моделирования являются аэрокосмическая, биологическая/медицинская, Digital Power, электродвигатели, электрические, гидравлические, механические, тепловые процессы, эконометрика.

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

VisSim позволяет создавать иерархические диаграммы. Как правило, строится модель некоторого процесса, состоящая из нескольких уровней. При необходимости, часть блоков может быть разработана на языке Си или Фортран самим пользователем. Затем система дополняется виртуальным контроллером и настраивается до получения желаемого отклика системы. Добавление ползунков и кнопок упрощает выполнение различных сценариев «А что, если?» для настройки контроллера. Техника моделирования производительности систем в автономном режиме, с последующей автоматической генерацией кода из диаграммы называется проектированием, базирующимся на моделях (Model-Based Development).

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

MATLAB (сокращение от англ. «Matrix Laboratory») — термин, относящийся к пакету прикладных программ для решения задач технических вычислений, а также к используемому в этом пакете языку программирования. MATLAB используют более 1 000 000 инженерных и научных работников, он работает на большинстве современных операционных систем, включая GNU/Linux, Mac OS, Solaris и Microsoft Window.

MATLAB как язык программирования был разработан Кливом Моулером (англ. Cleve Moler) в конце 1970-х годов, когда он был деканом факультета компьютерных наук в Университете Нью-Мексико. Целью разработки служила задача дать студентам факультета возможность использования программных библиотек Linpack и EISPACK без необходимости изучения Фортрана. Вскоре новый язык распространился среди других университетов и был с большим интересом встречен учёными, работающими в области прикладной математики. До сих пор в Интернете можно найти версию 1982 года, написанную на Фортране, распространяемую с открытым исходным кодом. Инженер Джон Литтл (англ. John N. (Jack) Little) познакомился с этим языком во время визита Клива Моулера в Стэнфордский университет в 1983 году. Поняв, что новый язык обладает большим коммерческим потенциалом, он объединился с Кливом Моулером и Стивом Бангертом (англ. Steve Bangert). Совместными усилиями они переписали MATLAB на C и основали в 1984 компанию The MathWorks для дальнейшего развития. Эти переписанные на С библиотеки долгое время были известны под именем JACKPAC. Первоначально MATLAB предназначался для проектирования систем управления (основная специальность Джона Литтла), но быстро завоевал популярность во многих других научных и инженерных областях. Он также широко использовался и в образовании, в частности, для преподавания линейной алгебры и численных методов.

Кратко описание языка (см. также [1]).Язык MATLAB является высокоуровневым интерпретируемым языком программирования, включающим основанные на матрицах структуры данных, широкий спектр функций, интегрированную среду разработки, объектно-ориентированные возможности и интерфейсы к программам, написанным на других языках программирования. Программы, написанные на MATLAB, бывают двух типов — функции и скрипты. Функции имеют входные и выходные аргументы, а также собственное рабочее пространство для хранения промежуточных результатов вычислений и переменных. Скрипты же используют общее рабочее пространство. Как скрипты, так и функции не компилируются в машинный код и сохраняются в виде текстовых файлов. Существует также возможность сохранять так называемые pre-parsed программы — функции и скрипты, обработанные в вид, удобный для машинного исполнения. В общем случае такие программы выполняются быстрее обычных, особенно если функция содержит команды построения графиков.

Основной особенностью языка MATLAB является его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге «думай векторно» (англ. Think vectorized).

Примеры. Пример кода, являющегося частью функции magic.m, генерирующего магический квадрат M для нечётных значений размера стороны n: [J,I] = meshgrid(1:n);

A = mod(I+J-(n+3)/2,n);

B = mod(I+2*J-2,n);

M = n*A + B + 1;

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

A(1:end) = B(end:-1:1);

Пример кода, рисующего график sinc-функции (см. рисунок 10.3) :

[X,Y] = meshgrid(-8:.5:8);

R = sqrt(X.^2 + Y.^2);

Z = sin(R)./R;

Z(R==0) = 1;

mesh(X,Y,Z);

Рисунок 11.3 - График sinc-функции, нарисованный с помощью MATLAB

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

• Матрицы и линейная алгебра — алгебра матриц, линейные уравнения, собственные значения и вектора, сингулярности, факторизация матриц и другие.

• Многочлены и интерполяция — корни многочленов, операции над многочленами и их дифференцирование, интерполяция и экстраполяция кривых и другие.

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

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

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

• Разреженные матрицы — специальный класс данных пакета MATLAB, использующийся в специализированных приложениях.

• Целочисленная арифметика — выполнение операций целочисленной арифметики в среде MATLAB.

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

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

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

Внешние интерфейсы. Пакет MATLAB включает различные интерфейсы для получения доступа к внешним подпрограммам, написанным на других языках программирования, данным, клиентам и серверам, общающимся через технологии Component Object Model или Dynamic Data Exchange, а также периферийным устройствам, которые взаимодействуют напрямую с MATLAB. Многие из этих возможностей известны под названием MATLAB API.

Веб-сервисы. В MATLAB существует возможность вызывать методы веб-сервисов. Специальная функция создаёт класс, основываясь на методах API веб-сервиса.

MATLAB взаимодействует с клиентом веб-сервиса с помощью принятия от него посылок, их обработки и посылок ответа. Поддерживаются следующие технологии: Simple Object Access Protocol (SOAP) и Web Services Description Language (WSDL).

COM-порт. Интерфейс для последовательного порта пакета MATLAB обеспечивает прямой доступ к периферийным устройствам, таким как модемы, принтеры и научное оборудование, подключающееся к компьютеру через последовательный порт (COM-порт). Интерфейс работает путём создания объекта специального класса для последовательного порта. Имеющиеся методы этого класса позволяют считывать и записывать данные в последовательный порт, использовать события и обработчики событий, а также записывать информацию на диск компьютера в режиме реального времени. Это бывает необходимо при проведении экспериментов, симуляции систем реального времени и для других приложений.

MEX-файлы. Пакет MATLAB включает интерфейс взаимодействия с внешними приложениями, написанными на языках C и Фортран. Осуществляется это взаимодействие через MEX-файлы. Существует возможность вызова подпрограмм, написанных на C или Фортране из MATLAB, как будто это встроенные функции пакета. MEX-файлы представляют собой динамически подключаемые библиотеки, которые могут быть загружены и исполнены интерпретатором, встроенным в MATLAB. MEX-процедуры имеют также возможность вызывать встроенные команды MATLAB.Кроме того, в MATLAB имеется возможность получить доступ к его встроенным функциям через C-интерфейс, что позволяет использовать функции пакета во внешних приложениях, написанных на C. Эта технология в MATLAB называется C Engine.

Наборы инструментов. Для MATLAB имеется возможность создавать специальные наборы инструментов (англ. TOOLBOX), расширяющих его функциональность. Наборы инструментов представляют собой коллекции функций, написанных на языке MATLAB для решения определённого класса задач. Компания Mathworks поставляет наборы инструментов, которые используются во многих областях, включая следующие:

• Цифровая обработка сигналов, изображений и данных: DSP Toolbox, Image Processing Toolbox, Wavelet Toolbox, Communication Toolbox, Filter Design Toolbox — наборы функций, позволяющих решать широкий спектр задач обработки сигналов, изображений, проектирования цифровых фильтров и систем связи.

• Системы управления: Control Systems Toolbox, µ-Analysis and Synthesis Toolbox, Robust Control Toolbox, System Identification Toolbox, LMI Control Toolbox, Model Predictive Control Toolbox, Model-Based Calibration Toolbox — наборы функций, облегчающих анализ и синтез динамических систем, проектирование, моделирование и идентификацию систем управления, включая современные алгоритмы управления, такие как робастное управление, H∞-управление, ЛМН-синтез, µ-синтез и другие.

• Финансовый анализ: GARCH Toolbox, Fixed-Income Toolbox, Financial Time Series Toolbox, Financial Derivatives Toolbox, Financial Toolbox, Datafeed Toolbox — наборы функций, позволяющие быстро и эффективно собирать, обрабатывать и передавать различную финансовую информацию.

• Анализ и синтез географических карт, включая трёхмерные: Mapping Toolbox.

• Сбор и анализ экспериментальных данных: Data Acquisition Toolbox, Image Acquisition Toolbox, Instrument Control Toolbox, Link for Code Composer Studio — наборы функций, позволяющих сохранять и обрабатывать данные, полученные в ходе экспериментов, в том числе в реальном времени. Поддерживается широкий спектр научного и инженерного измерительного оборудования.

• Визуализация и представление данных: Virtual Reality Toolbox — позволяет создавать интерактивные миры и визуализировать научную информацию с помощью технологий виртуальной реальности и языка VRML.

• Средства разработки: MATLAB Builder for COM, MATLAB Builder for Excel, MATLAB Builder for NET, MATLAB Compiler, Filter Design HDL Coder — наборы функций, позволяющих создавать независимые приложения из среды MATLAB.

• Взаимодействие с внешними программными продуктами: MATLAB Report Generator, Excel Link, Database Toolbox, MATLAB Web Server, Link for ModelSim — наборы функций, позволяющие сохранять данные в различных видов таким образом, чтобы другие программы могли с ними работать.

• Базы данных: Database Toolbox — инструменты работы с базами данных.

• Научные и математические пакеты: Bioinformatics Toolbox, Curve Fitting Toolbox, Fixed-Point Toolbox, Fuzzy Logic Toolbox, Genetic Algorithm and Direct Search Toolbox, OPC Toolbox, Optimization Toolbox, Partial Differential Equation Toolbox, Spline Toolbox, Statistic Toolbox, RF Toolbox — наборы специализированных математических функций, позволяющие решать широкий спектр научных и инженерных задач, включая разработку генетических алгоритмов, решения задач в частных производных, целочисленные проблемы, оптимизацию систем и другие.

• Нейронные сети: Neural Network Toolbox — инструменты для синтеза и анализ нейронных сетей.

• Нечёткая логика: Fuzzy Logic Toolbox — инструменты для построения и анализа нечётких множеств.

• Символьные вычисления: Symbolic Math Toolbox — инструменты для символьных вычислений с возможностью взаимодействия с символьным процессором программы Maple.

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

Интересные факты. Если напечатать в командной строке MATLAB слово «toilet» (туалет), будет запущена система, моделирующая динамику работы сливного бачка туалета.

Если в командной строке напечатать «why» (почему), MATLAB ответит на этот вопрос. Ответы выбираются из ограниченного множества ответов случайным образом всякий раз, когда вводится эта команда.

Основная литература

1. Инков А.М. Моделирование и идентификация объектов управления: Конспект лекций для студентов специальности 5В070200 (050702). Шымкент, Южно-Казахстанский Государственный Университет им. М.О. Ауезова,. 2010 г. - 264 с. (Имеется на кафедре АТУ в электронном виде)

2. Советов Б.Я., Яковлев С.А. Моделирование систем. – М.: Высшая школа. 2001, (Имеется на кафедре АТУ в электронном виде)

3. Фафурин В. А. Автоматизация технологических процессов и производств: лабораторный практикум / В. А. Фафурин, И. Н. Терюшов. – Казань: Изд-во Казан. гос. технолог. ун-та, 2008. – 552 с.

4. Дьяконов В.П. VisSim+Mathcad+MATLAB. Визуальное математическое моделирование. Издательство СОЛОН-Пресс, 2004, - 384 с. (Имеется на кафедре АТУ в электронном виде)

Дополнительная литература

5. Винер Н. Кибернетика, или управление и связь в животном и машине. — М., 1983. (Имеется на кафедре АТУ в электронном виде)

6. Джозеф О'Коннор. Искусство системного мышления. — М.: 2006.

7. Моисеев Н.Н. Математические задачи системного анализа. — М: Наука, 1981.

8. Перегудов Ф.П., Тарасенко Ф.П. Введение в системный анализ. — 1989.

9. Анфилатов В.С. Системный анализ в управлении. — 2003

10. Основы теории систем и системного анализа. — С.Петербург. СПбГТУ. 2001.

11. Практикум по автоматике и системам управления производственными процессами: учеб. пособие для вузов /под ред. И.М.Масленникова. -М.: Химия, 1986. -336с.

12. Эйкхофф П. Основа идентификации систем управления. - М.: Мир, 1975. (Имеется на кафедре АТУ в электронном виде)

13. Русскоязычный консультационный центр компании MATLAB http://matlab.exponenta.ru

14. VisSim web site http://www.vissim.com /

15. Колесов Ю.Б., Сениченков Ю.Б.. Визуальное моделирование сложных динамических систем. СПБ, издательство «НПО «Профессионал»-320 с, (с пакетом MVS 3.0 на компакт-диске)



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: