<< Пред. стр. 2 (из 3) След. >>
Параметры: , иДля это распределение совпадает с геометрическим, поэтому можно представить , где - независимые случайные величины, распределенные по геометрическому закону. Т.о.
(базовый датчик должен выдать r чисел для генерации одного х).
4. Биномиальное распределение
(теорема об опытах - вероятность наступления m событий A в n опытах).
Введем (функция Хэвисайда).
Тогда
наступило 1 события сумма дает кол-во событий наступивших в n опытах биномиальное распределение).
5. Пуассоновское распределение
ГЕНЕРАЦИЯ НЕПРЕРЫВНЫХ СЛУЧАЙНЫХ ВЕЛИЧИН
Непрерывная случайная величина характеризуется плотностью или функцией распределения
1. Метод обратной функции
Основная идея: представим и попробуем найти .
Допустим, что мы разрешили относительно :. И потребуем, чтобы . Тогда
Т.к. равномерно распределена в [0,1), то и равномерно распределена там же, следовательно, можно записать и так
Метод обратной функции применяется редко, т.к. обычно найти очень трудно.
Примеры.
1. Экспоненциальное распределение:
2. Непрерывные случайные величины с заданной гистограммой:
Общая площадь
Функция распределения:
или
Чтобы найти формулу, решим уравнение
1. .Отнимаем от него , затем и т.д. до тех пор, пока не получим отрицательное значение:
2. Ясно, что . Следовательно,
2. Метод суперпозиции
Применим в случае, если , где , и . Тогда моделирование производится следующим образом:
1. Генерируется дискретная случайная величина с рядом
2. Генерируется непрерывная случайная величина с плотностью
Пример. Гиперэкспоненциальное распределение.
Моделирование: , где - смоделирована как дискретная случайная величина с рядом .
3. Метод исключения
Пусть некоторая функция удовлетворяет условиям:
1.
2.
Теорема. Пусть некоторая двумерная случайная величина имеет следующую совместную плотность распределения
Тогда СВ имеет плотность распределения
Док-во.
Т.о., если требуется моделировать случайную величину с плотностью , то принимаем , тогда .Т.е. достаточно генерировать двумерную , равномерно распределенную в области под , и тогда будет иметь распределение .
Осталось научиться равномерно попадать под кривую (область ). Оказывается, это очень просто: достаточно равномерно попадать в некоторую и рассматривать только те точки, которые - они будут равномерно распределены в
Например, если , , то легче всего взять и
Далее применяем метод исключения, т.е результатом моделирования считаем только те , для которых , остальные пропускаем:
4. Нормальные случайные величины
Нормальная случайная величина: :
Стандартная нормальная случайная величина:
Любая нормальная случайная величина: , где
Таким образом достаточно получить датчик стандартной нормальной случайной величины.
Методы:
1. Метод суммирования
/* ЦПТ: Для независимых случайных величин произвольным распределением
.*/
Пусть ясно, что , . Тогда Если взять , то получим
Существуют более точные формулы, типа . В частности, для :
2. Метод обратной функции - интеграл вероятностей или функция Лапласа. Свойство:
3. Метод обратной функции: .
Очевидно, что
Т. о. заменяют аппроксимациями, например:
где
(Погрешность=0.003).
УПРАВЛЕНИЕ МОДЕЛЬНЫМ ВРЕМЕНЕМ
Виды представления времени в модели
Приступая к изучению механизмов управления модельным временем, уместно поговорить о том, какую роль вообще играет время в имитационном моделировании. При знакомстве с имитационным экспериментом мы отмечали, что он представляет собой наблюдение за поведением системы в течение некоторого промежутка времени. Конечно, далеко не во всех статистических испытаниях фактор времени t играет ведущую роль, а в некоторых и вообще может не рассматриваться. Вспомните, например,, задачу о вычислении площади круга: полученный результат не зависел от того, сколь долго мы "бомбили" квадрат случайными точками (речь в данном случае не идет о количестве этих точек). Но значительно больше задач, в которых оценка эффективности моделируемой системы напрямую связана с временными характеристиками ее функционирования. К ним относятся упоминавшиеся уже задачи по оценке производительности, некоторые задачи по оценке надежности, качества распределения ресурсов, а также все задачи, связанные с исследованием эффективности процессов обслуживания. Характерной особенностью большинства практических задач является то, что скорость протекания рассматриваемых в них процессов значительно ниже скорости реализации модельного эксперимента. Например, если моделируется работа вычислительного центра в течение недели, вряд ли кому-то придет в голову воспроизводить этот процесс в модели в таком же масштабе времени. С другой стороны, даже те имитационные эксперименты, в которых временные параметры работы системы не учитываются, требуют для своей реализации определенных затрат времени работы компьютера.
В связи с этим при разработке практически любой имитационной модели и планировании проведения модельных экспериментов необходимо соотносить между собой три представления времени:
1. реальное время, в котором происходит функционирование имитируемой системы;
2. модельное (или, как его еще называют, системное) время, в масштабе которого организуется работа модели;
3. машинное время, отражающее затраты времени ЭВМ на проведение имитации.
С помощью механизма модельного времени решаются следующие задачи:
* отображается переход моделируемой системы из одного состояния в другое;
* производится синхронизация работы компонент модели;
* изменяется масштаб времени "жизни" (функционирования) исследуемой системы;
* производится управление ходом модельного эксперимента;
* моделируется квазипараллельная реализация событий в модели.
Приставка "квази" в данном случае отражает последовательный характер обработки событий (процессов) в ИМ, которые в реальной системе возникают (протекают) одновременно.
Необходимость решения последней задачи связана с тем, что в распоряжении исследователя находится, как правило, однопроцессорная вычислительная система, а модель может содержать значительно большее число одновременно работающих подсистем. Поэтому действительно параллельная (одновременная) реализация всех компонент модели невозможна. Даже если используется так называемая распределенная модель, реализуемая на нескольких узлах вычислительной сети, совсем не обязательно, что число узлов будет совпадать с числом одновременно работающих компонент модели. Немного забегая вперед, следует отметить, что реализация квазипараллельной работы компонент модели является достаточно сложной технической задачей. Некоторые возможные методы ее решения рассматриваются в следующей лекции.
Существуют два метода реализации механизма модельного времени - с постоянным шагом и по особым состояниям.
Выбор метода реализации механизма модельного времени зависит от назначения модели, ее сложности, характера исследуемых процессов, требуемой точности результатов и т. д.
Изменение времени с постоянным шагом
При использовании данного метода отсчет системного времени ведется через фиксированные, выбранные исследователем интервалы времени. События в модели считаются наступившими в момент окончания этого интервала. Погрешность в измерении временных характеристик системы в этом случае зависит от величины шага моделирования ?t.
Метод постоянного шага целесообразно использовать в том случае, если:
* события появляются регулярно, их распределение во времени достаточно равно-| мерно;
* число событий велико и моменты их появления близки;
* невозможно заранее определить моменты появления событий.
Данный метод управления модельным временем достаточно просто реализовать в том случае, когда условия появления событий всех типов в модели можно представить как функцию времени.
Пусть, например, событие состоит в том, что летящий самолет пересекает некоторый воздушный рубеж, расстояние до которого равно R. Если самолет движется по прямой с постоянной скоростью V, можно вычислять путь, пройденный самолетом, с интервалом времени ?t: S=S+V-At. Соответственно, событие считается наступившим, если выполняется условие S>R, а момент времени наступления события принимается равным n-?t, где n - номер шага моделирования, на котором условие стало истинным.
В общем виде алгоритм моделирования с постоянным шагом представлен на рис. 1 ( - текущее значение модельного времени, - заданный интервал моделирования), а для рассмотренного выше примера с самолетом - на рис. 2. Обратите внимание на то, что в отличие от обобщенного алгоритма, в приведенном примере моделирование завершается не по истечении заданного интервала времени, а при наступлении интересующего нас события. В связи с этим необходимо еще раз подчеркнуть, что при моделировании с постоянным шагом результат моделирования напрямую зависит от величины этого шага. Причем, если шаг будет слишком большим, то результат, скорее всего, будет неверным: момент окончания очередного шага очень редко будет совпадать с реальным моментом пересечения самолетом заданного рубежа. Такая ситуация показана на рис. 3.
Рис. 1. Алгоритм моделирования с постоянным шагом. Рис. 2. Пример моделирования с постоянным шагом.
?t1
1 1 1 1 1 1 " 1 1
At* i II I II *
tmt 1 1
1
1 i '- trt
1 fr. TR ти ти tp
Рис. 3. Зависимость результата эксперимента от шага модельного времени
На рисунке использованы следующие обозначения:
* tm1 -ось модельного времени при использовании шага ?t1;
* tm2 -ось модельного времени при использовании шага ?t2
* tp - ось реального времени;
* ТR - реальный момент пересечения самолетом рубежа; ;
* ТR1, TR2 - моменты пересечения рубежа, полученные для соответствующих величин ?t.
Приведенный пример призван обратить внимание на то, что выбор величины шага моделирования является нелегким и очень важным делом. Универсальной методики решения этой проблемы не существует, но во многих случаях можно использовать один из следующих подходов:
* принимать величину шага равной средней интенсивности возникновения событий различных типов;
* выбирать величину шага равной среднему интервалу между наиболее частым (или наиболее важными) событиями.
Изменение времени по особым состояниям
При моделировании по особым состояниям системное время каждый раз изменяется на величину, строго соответствующую интервалу времени до момента наступления очередного события. В этом случае события обрабатываются в порядке их наступления, а одновременно наступившими считаются только те, которые являются одновременными в действительности.
Для реализации моделирования по особым состояниям требуется разработка специальной процедуры планирования событий (так называемого календаря событий). Если известен закон распределения интервалов между событиями, то такое прогнозирование труда не составляет: достаточно к текущему значению модельного времени добавить величину интервала, полученную с помощью соответствующего датчика.
Пусть, например, за летящим самолетом, фигурировавшем при описании моделирования с постоянным шагом, наблюдает диспетчер. Он вводит информацию о самолёте, причем интервалы между вводом двух соседних сообщений являются случайными величинами, распределенными по нормальному закону с заданными параметрами Иллюстрация к такой ситуации приведена на рис. 4 (Тс - момент ввода очередного сообщения, ?t-случайный интервал).
At*
At!
Тсг
TCI
Рис. 4. Изменение модельного времени по особым состояниям.
Если же момент наступления события определяется некоторыми логическими условиями, то необходимо сформулировать эти условия и проверять их истинность для каждого последующего шага моделирования. Практика показывает, что сложности в реализации механизма изменения времени по особым состояниям связаны в первую очередь с корректным описанием таких условий. Трудности еще более возрастают, если в модели фигурируют несколько типов взаимосвязанных событий.
Моделирование по особым состояниям целесообразно использовать, если:
* события распределяются во времени неравномерно или интервалы между ними велики;
* предъявляются повышенные требования к точности определения взаимного положения событий во времени;
* необходимо учитывать наличие одновременных событий.
Дополнительное достоинство метода заключается в том, что он позволяет экономить машинное время, особенно при моделировании систем периодического действия, в которых события длительное время могут не наступать.
Обобщенная схема алгоритма моделирования по особым состояниям представлена на рис. 5 (tco6.i - прогнозируемый момент наступления i-го события).
Риc. 5. Алгоритм моделирования по особым состояниям
Чтобы "почувствовать разницу" в использовании двух методов управления модельным временем, вернемся к примеру с диспетчером. Дополним его следующим условием: необходимо подсчитать число сообщений, которые успеет ввести диспетчер в течение заданного интервала моделирования.
Прежде всего необходимо ответить на вопрос: что понимать под "особыми состояниями", которые должны влиять на изменение модельного времени? На практике обычно вместо состояний рассматривают события, определяющие смену состояний моделируемого процесса. Для процесса ввода информации диспетчером такой переход выполняется достаточно просто: событие - это ввод очередного сообщения; другими словами, ввод очередного сообщения "продвигает" модельное время соответствующий интервал. Так, если интервалы между сообщениями подчиняются нормальному закону с параметрами m и s, то очередное i-е значение модельного времени tm( i) определяется следующим образом:
tm(i)=tm(i-1)+norm(m, s)
В этом выражении слагаемое norm(m, s) означает обращение к генератору чисел, распределенных по нормальному закону.
Алгоритм работы модели приведен на рис. 6 (N - число введенных сообщений).
Рис. 6. Пример работы модели по особым состояниям
Подведем итоги изложенному в этом разделе.
* Выбор механизма изменения модельного времени определяет технологию реализации имитационной модели.
* На выбор метода моделирования влияет целый ряд факторов, однако определяющим является тип моделируемой системы: для дискретных систем, события в которых распределены во времени неравномерно, более удобным является изменение модельного времени по особым состояниям.
* Если в модели должны быть представлены компоненты реальной системы, работа котЬрых измеряется в разных единицах времени, то они должны быть предварительно приведены к единому масштабу.
МОДЕЛИРОВАНИЕ ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ
Практически любая более или менее сложная система имеет в своем составе компоненты, работающие одновременно, или как принято говорить в технических науках, параллельно. Напомним только один пример, взятый из монолога М. Жванецкого, посвященного работе ликеро-водочного завода. Судя по сюжету монолога, все цеха этого предприятия работали абсолютно параллельно и независимо друг от друга.
Итак, если в составе системы имеются компоненты (подсистемы), выполняющие свои функции одновременно, то можно утверждать, что в такой системе существуют параллельные процессы. Параллельно работающие подсистемы могут взаимодействовать самым различным образом, либо вообще работать независимо друг от друга. Способ взаимодействия подсистем определяет вид параллельных процессов, протекающих в системе. В свою очередь, вид моделируемых процессов влияет на выбор метода их имитации.
Виды параллельных процессов
Асинхронный параллельный процесс - это такой процесс, состояние которого не зависит от состояния другого параллельного процесса (ПП).
Пример асинхронных ПП, протекающих в рамках одной системы, - подготовка и проведение рекламной кампании фирмой и работа сборочного конвейера. Или пример из области вычислительной техники - выполнение вычислений процессором и вывод информации на печать.
Синхронный ПП - это такой процесс, состояние которого зависит от состояния взаимодействующих с ним ПП. Пример синхронного ПП - работа торговой организации и доставка товара со склада (нет товара-нет торговли).
Один и тот же процесс может быть синхронным по отношению к одному из активных ПП и асинхронным по отношению к другому. Так, при работе Вычислительной сети по технологии "клиент-сервер" каждый из узлов сети синхронизирует свою работу с работой сервера, но не зависит от работы других узлов.
Подчиненный ПП создается и управляется другим процессом (более; высокого уровня). Весьма характерным примером таких процессов является ведение боевых действий подчиненными подразделениями.
Независимый ПП - процесс, который не является, подчиненным ни для одного из процессов. Скажем, после запуска неуправляемой зенитной ракеты ее полет можно рассматривать как независимый процесс, одновременно с которым самолет ведет боевые действия другими средствами.
Способ организации параллельных процессов в системе зависит от физической сущности этой системы.
Остановимся несколько подробнее на особенностях реализации параллельных процессов в вычислительных системах (ВС). Это обусловлено следующей причиной. Разработка и использование любой ИМ предполагает ее программную реализацию и исследование с применением ВС. Поэтому для реализации моделей, имитирующих параллельные процессы, в некоторых случаях применимы механизмы, характерные для выполнения параллельных вычислений.
Вместе с тем, реализация параллельных процессов в ВС имеет свои особенности;
* на уровне задач вычислительные процессы могут быть истинно параллельными только в многопроцессорных ВС или вычислительных сетях;
* многие ПП используют одни и те же ресурсы, поэтому даже асинхронные ПП в пределах одной ВС вынуждены согласовывать свои действия при обращении к общим ресурсам;
* в ВС дополнительно используется еще два вида; ПП: родительский и дочерний ПП; особенность их состоит в том, что процесс-родитель не может быть завершен, пока не завершатся все его дочерние процессы.
В силу перечисленных особенностей для организации взаимодействия параллельных процессов в ВС используются три основных подхода:
* на основе "взаимного исключения";
* на основе синхронизации посредством сигналов;
* на основе обмена информацией (сообщениями).
"Взаимное исключение" предполагает запрет доступа к общим ресурсам (общим данным) для всех ПП, кроме одного, на время его работы с этими ресурсами (данными).
Синхронизация подразумевает обмен сигналами между двумя или более процессами по установленному протоколу. Такой "сигнал" рассматривается как некоторое событие, вызывающее у получившего его процесса соответствующие действия.
Часто возникает необходимость передавать от одного ПП другому более подробную информацию, чем просто "сигнал-событие". В этом случае процессы согласуют свою работу на основе обмена сообщениями.
Перечисленные механизмы реализуются в ВС на двух уровнях - системном и прикладном.
Механизм взаимодействия между ПП на системном уровне определяется еще на этапе разработки ВС и реализуется в основном средствами операционной системы (частично - с использованием аппаратных средств).
На прикладном уровне взаимодействие между ПП реализуется программистом средствами языка, на котором разрабатывается программное обеспечение.
Наибольшими возможностями в этом отношении обладают так называемые языки реального времени и языки моделирования.
Языки реального времени (ЯРВ) - это языки, предназначенные для создания программного обеспечения, работающего в реальном масштабе времени, например для разработки различных автоматизированных систем управления (предприятием, воздушным движением и т. д.). К ним, в частности, относятся: язык Ада, язык Модула и практически единственный отечественный язык реального времени - Эль-76 (использовавшийся в многопроцессорных вычислительных комплексах семейства "Эльбрус").
Методы описания параллельных процессов
Языки моделирования по сравнению с языками реального времени требуют от разработчика значительно менее высокого уровня подготовки в области программирования, что обусловлено двумя обстоятельствами:
* средства моделирования изначально ориентированы на квазипараллельную обработку параллельных процессов;
* механизмы реализации ПП относятся, как правило, к внутренней организации системы (языка) моделирования и их работа скрыта от программиста.
В практике имитационного моделирования одинаково широко используются как процессно-ориентированные языки (системы) моделирования, например SIMULA, так и языки, ориентированные на обработку транзактов (например, язык GPSS). Для тех и других характерны аналогичные методы реализации квазипараллелизма, основанные на ведении списков событий. В процессно-ориентированных системах используются списки событий следования, а в транзактных системах - списки событий изменения состояний.
Современные языки и системы моделирования, ориентированные на среду многозадачных операционных систем типа Windows, частично используют аналогичные механизмы управления процессами, что делает их применение еще более эффективным. В пакете MATLAB также имеется собственный язык моделирования, и к нему полной мере можно отнести сказанное выше.
Моделирование на основе транзактов
Рассмотрим общий механизм реализации ПП применительно к моделированию на основе транзактов. В этом случае под событием понимается любое перемещение транзакта по системе, а также изменение его состояния (обслуживается, заблокирован и т. д.)
Событие, связанное с данным транзактом, может храниться в одном из следующих списков:
* Список текущих событий. В этом списке находятся события, время наступления которых меньше или равно текущему модельному времени. События с "меньшим" временем связаны с перемещением тех транзактов, которые должны были начать двигаться, но были заблокированы.
* Список будущих событий. Этот список содержит события, время наступления которых больше текущего модельного времени, то есть события, которые должны произойти в будущем (условия наступления которых уже определены, например известно, что транзакт будет обслуживаться некоторым устройством 10 единиц времени).
* Список прерываний. Данный список содержит события, связанные с возобновлением обработки прерванных транзактов. События из этого списка выбираются том случае, если сняты условия прерывания.
Рассмотрим использование двух первых списков событий в динамике, при моделировании параллельных процессов.
В списке текущих событий транзакты расположены в порядке убывания приоритета соответствующих событий, а при равных приоритетах - в порядке поступления в список.
Каждое событие (транзакт) в списке текущих событий может находиться либо в активном состоянии, либо в состоянии задержки. Если событие активно, то соответствующий транзакт может быть продвинут по системе; если продвижение невозможно (например, из-за занятости устройства), то событие (и транзакт) переводится в состояние задержки.
Как только завершается обработка (продвижение) очередного активного транзакта, просматривается список задержанных транзактов, и ряд из них переводите активное состояние. Процедура повторяется до тех пор, пока в списке текущих событии не будут обработаны все активные события. После этого просматривает список будущих событий. Модельному времени присваивается значение, равное времени наступления ближайшего из этих событий. Данное событие заносится в список текущих событий. Затем просматриваются остальные события списка. Те из них, время которых равно текущему модельному времени, также переписываются в список текущих событий. Просмотр заканчивается, когда в списке остаются события, времена которых больше текущего модельного времени.
В качестве иллюстрации к изложенному рассмотрим небольшой пример. Пусть в систему поступают транзакты трех типов, каждый из которых обслуживается отдельным устройством. Известны законы поступления транзактов в систему и длительность их обслуживания. Таким образом, в системе существуют три параллельных независимых процесса (P1, Р2, Р3).
Временная диаграмма работы системы при обслуживании одного транзакта каждого типа показана на рис. 7.
1 "15 -гГ "> С 21 to&wi
с ( 22 с tl
23 1 ^
ь С 31 С " Сзз 1 г
1 ъ P tn tjl tji tjg tJ2 t33.23 tfl,
Рис. 2.12. Временная диаграмма параллельных процессов
Ha рисунке события, относящиеся к процессу Р1 обозначены как С1i, относящиеся к Р2 и к Р3 - соответственно как C2i и С3i. Время t:06спуж соответствует времени обслуживания транзакта.
Для каждого процесса строится своя цепь событий, однако списки событий являются; общими для всей модели. Формирование списков начинается с заполнения списка будущих событий. Как было отмечено выше, в этот список помещаются события, время наступления которых превышает текущее значение модельного времени. Очевидно, что на момент заполнения списка время наступления прогнозируемых событий должно быть известно. На первом шаге tm=0 в список будущих событий заносятся события С11, С21, С31. Затем событие с наименьшим временем наступления - С1Г - переносится в список текущих событий; если одновременных с ним событий нет, то оно обрабатывается и исключается из списка текущих событий. После этого вновь корректируется список будущих событий и т. д., пока не истечет заданный интервал моделирования.
Динамика изменения списков текущих и будущих событий для рассмотренного примера отражена в приведенной ниже таблице.
Значения модельного времени Список будущих событий Список текущих событий 0 C11 C21 C31 0 T11 C21 С31 С12 C11 T21 C31 С12 С22 C21 Т31 C12 С22 С32 C31 T12 С22 С32 С13 C12 T22 С32 С13 С23 С22 T32 С13 С23 С33 С32 T13 С23 С33 С13 T23 С23 С33 Знание механизма ведения списков событий просто необходимо разработчику модели; умение проследить в динамике цепь происходящих в модели событий, во-первых, повышает уверенность создателя модели в том, что она работает правильно, и, во-вторых, существенно облегчает процесс отладки и модификации модели.
СРЕДА MATLAB
Общие сведения
История существования пакета М ATLAB, название которого происходит от словосочетания Matrix Laboratory (Матричная лаборатория) насчитывает уже более двух десятков лет. Можно считать, что развитие MATLAB "шло в ногу" с развитием средств вычислительной техники: от "больших" ЭВМ с маленькими интерактивными возможностями до настольных компьютеров, позволяющих использовать в работе все пять (а иногда и шесть) способов восприятия информации. И, несмотря на достаточно высокую скорость смены поколений вычислительной техники, пакет MATLAB успевал впитывать все наиболее ценное от каждого из них.
В результате к настоящему времени MATLAB представляет собой весьма удачное ; сочетание возможностей математики с последними достижениями в области вычислительной техники.
Одним из основных достоинств пакета MATLAB является то, что для работы пользователю достаточно знать о нем ровно столько, сколько требует решаемая задача. Так, в простейшем случае MATLAB может сыграть роль обыкновенного калькулятора, для использования которого достаточно помнить знаки математических операций. Если же решаемая задача требует создания каких-либо специальных инструментов, MATLAB предоставляет в распоряжение пользователя практически универсальный язык объектно-ориентированного программирования в сочетании с интерактивными средствами отладки создаваемых программ.'
И все-таки в первую очередь MATLAB - это средство математического моделирования, обеспечивающее проведение исследований практически во всех известных областях науки и техники. При этом структура пакета позволяет эффективно сочетать оба основных подхода к созданию модели: аналитический и имитационный.
Именно в сфере математического моделирования MATLAB позволяет наиболее полно использовать все современные достижения компьютерных технологий, в том числе средства визуализации и аудификации (озвучивания) данных, а также возможности обмена данными через Интернет. Кроме того, пользователь имеет возможность создавать средствами MATLAB собственный графический интерфейс, отвечающий как его вкусам, так и требованиям решаемой задачи. Как следует из названия пакета, он ориентирован в первую очередь на обработку массивов данных (матриц и векторов). Это позволило его разработчикам существенно повысить эффективность процедур, работающих с указанными типами данных, по сравнению с языками программирования "общего назначения" (Pascal, С и т. п.).
С точки зрения пользователя, MATLAB представляет собой богатейшую библиотеку функций (в MATLAB 5.3 их около 800), единственная проблема при работе с которой заключается в умении быстро отыскать те из них, которые нужны для решения данной задачи.
Для облегчения поиска библиотека функций разбита на разделы. Те из них, которые носят общий характер и используются чаще, входят в состав ядра MATLAB. Другие функции, относящиеся к конкретной области, включены в состав соответствующих специализированных разделов. Эти разделы называются в MATLAB Toolboxes (наборы инструментов). Каждый из них имеет свое собственное название, отражаю? * его предназначение. Полная комплектация пакета MATLAB 5.3 содержит около 30 наборов инструментов. В их число входят как достаточно стандартные для математических пакетов средства (решение дифференциальных и алгебраических уравнений, интегральное исчисление, символьные вычисления и т. д.), так и нетрадиционные, способные претендовать на определенную уникальность в своем роде: средства цифровой обработки изображений, поиска решений на основе нечеткой логики, аппарат построения и анализа нейронных сетей, средства финансового анализа, целый ряд других. Кроме того, имеются средства взаимодействия с популярными офисными продуктами компании Microsoft - MS Word и MS Excel. Для включения в состав рабочей конфигурации пакета того или иного набора инструментов требуется наличие соответствующего лицензионного соглашения.
Система визуального моделирования SIMULINK
Simulink - инструмент для моделирования, анализа, и моделирования физических и математических систем, включая модели с нелинейными элементами и те, которые используют непрерывное и дискретное время.
Особое место среди наборов инструментов занимает система визуального моделирования SIMULINK. В определенном смысле SIMULINK можно рассматривать как самостоятельный продукт фирмы Math Works (который даже в некоторых случаях продается в "именной" упаковке), однако он работает только при наличии ядра MATLAB и использует многие функций, входящие в его состав.
Необходимо отметить, что в MATLAB использована технология ассоциативной обработки файлов, поддерживаемая операционной системой Windows. Она; заключается в том, что каждому типу файлов ставится в соответствие (ассоциируется с ним) определенное приложение, обеспечивающее обработку хранящихся в нем данных. Чтобы активизировать ассоциированное приложение, пользователю достаточно дважды щелкнуть на значке файла кнопкой мыши. Например, при выборе файла с расширением .doc загружается текстовый редактор MS Word.
Для MATLAB характерны файлы нескольких типов, для каждого из которых определен свой допустимый набор операций и реализующие их средства. При работе с SIMULINK в основном используются файлы трех типов:
* М-файлы (с расширением .m) - файлы, содержащие тексты программ нa языке MATLAB; в виде М-файлов реализованы все библиотечные функции MATLAB; по умолчанию М-файлы открываются с помощью собственного редактора/отладчика MATLAB;
* Mdl-файлы (с расширением .mdl) - файлы моделей SIMULINK; могут быть открыты либо с помощью SIMULINK (в виде графического окна с блок-диаграммой), либо с помощью редактора/отладчика MATLAB;
* МАТ-файлы (с расширением .mat) - файлы, содержащие данные в двоичном коде, доступ к которым возможен либо из командного окна MATLAB, либо с помощью специальных средств SIMULINK/
Система MATLAB не зависит от платформы и может работать под управлением и других операционных систем - UNIX и MacOS. При этом технология моделирования средствами SIMULINK остается неизменной.
Разработка моделей средствами SIMULINK (в дальнейшем S-моделей) основана на технологии drag-and-drop ("перетащи и оставь"). В качестве "кирпичиков" для построения S-модели используются модули (или блоки), хранящиеся в библиотеке SIMULINK.
Библиотека SIMULINK хороша тем, что, с одной стороны, обеспечивает пользователю доступ ко всем основным возможностям пакета MATLAB, а с другой - является достаточно самостоятельной его компонентой, в том смысле, что при работе с ней не обязательно иметь навыки в использовании других инструментов, входящих в состав пакета.
Блоки, включаемые в создаваемую модель, могут быть связаны друг с другом как по информации, так и по управлению. Тип связи зависит от типа блока и логики работы модели. Данные, которыми обмениваются блоки, могут быть скалярными величинами, векторами или матрицами произвольной размерности.
Начало работы
Запуск SIMULINK можно произвести одним из трех способов:
* щелкнув на соответствующей кнопке панели инструментов командного окна MATLAB;
* введя команду simulink в активной строке командного окна;
* выбрав команду New > Model (создать > модель) в меню File (файл).
Использование первого и второго способов приводит к открытию окна просмотра библиотеки SIMULINK , а при выборе команды New > Model кроме него открывается еще и пустое окно для создания S-модели.
Окно просмотра разделов содержит панель инструментов, собственно список разделов, реализованный в виде дерева, и два вспомогательных поля, одно из которых используется для вывода комментария к выбранному в списке элементу, а другое - для представления значка этого элемента.
Список разделов библиотеки Simulink представлен в основном окне просмотра в виде дерева. Структура библиотеки Simulink:
* Основная библиотека;
> Разделы основной библиотеки;
* Блоки, входящие в разделы.
* Расширения основной библиотеки, относящиеся к наборам инструментов MATLAB.
Нижний уровень иерархии образуют собственно блоки SIMULINK, которые и играют роль кирпичиков при построении S-модели. Чтобы вставить блок в S-модель, необходимо нажать кнопку мыши на графической или текстовой метке блока и, не отпуская кнопку мыши, перетащить его в окно блок-диаграммы.
Строка меню окна блока-диаграммы содержит кроме общеизвестных меню ещё два:
Tools - инструменты;
Simulation - моделирование.
Демонстрация возможностей.
Чтобы получить представление о том, что такое модель, разработанная с помощью SIMULINK, можно воспользоваться демонстрационными средствами MATLAB (команда demo в активной строке командного окна).
Пользователь имеет возможность выбрать один из следующих примеров, входящих в раздел Simulink-demo (демонстрационные файлы SIMULINK):
* New in Simulink 3 (новое в Simulink 3) - иллюстрация дополнительных возможностей версии Simulink 3.0, входящей в состав MATLAB 5.3, по сравнению с версиями Simulink 2.x, использовавшимися в предыдущих версиях MATLAB;
* New in Simulink 2 (новое в Simulink 2) - иллюстрация возможностей версий Simulink 2.x по сравнению с версией Simulink 1, входящей в состав MATLAB 4;
* Simple models (простые модели) - примеры простых S-моделей;
* Complex models (сложные модели) - примеры более сложных S-моделей;
* Advanced Products (дополнительные продукты) - вывод справочной информации по использованию RTW (Real Time Workshop - "Мастерская реального времени" - средство генерации кода на языке С из блок-диаграмм, используемое при разработке программного обеспечения систем реального времени).
При выделении одного из разделов в правой части окна MATLAB Demos выводится список входящих в него примеров S-моделей. В свою очередь, название отмеченной в этом списке модели отображается на расположенной ниже кнопке Run (выполнить). Щелчок по этой кнопке приводит к тому, что открывается окно, содержащее блок-диаграмму выбранной модели.
Библиотека блоков Simulink.
Библиотека блоков Simulink. 1
Source - блоки-источники. 1
Sinks - блоки-получатели. 2
Continuous - непрерывные системы. 2
Discontinuities: разрывные системы. 3
Discrete - дискретные системы. 3
Look-Up Tables - работа с таблицами. 3
Math Operations - математические операторы. 4
Model Verification: Проверка модели 5
Model-Wide Utilities: -широкие возможности обслуживания модели 6
Ports & Subsystems: Порты и Подсистемы 6
Signal Attributes: Признаки Сигнала 7
Signal Routing: Направление Сигнала 7
User-Defined Functions: Определенные пользователем Функции 8
Source - блоки-источники.
1. Band-Limited White Noise: Белый шум для непрерывных (s-доменных) систем. Ограничение полосы частот с помощью фиксации нулевого порядка.