<<
>>

§5. Управление модельным временем в MATLAB

Задача корректного управления модельным временем, то есть «временем жизни» моделируемой системы, возлагается на разработчика независимо от того, какие инструменты создания модели он использует.

Принципиально отличие Simu- link от универсальных средств программирования состоит в том, что логическая структура S-модели не зависит от способа управления модельным временем. Более того, исследователь может выбирать способ изменения модельного времени для каждого сеанса моделирования индивидуально.

Тем не менее и при использовании Simulink модельное время остается «спинным мозгом», согласующим работу всех компонент S-модели. Поэтому при подготовке каждого модельного эксперимента должны быть получены ответы на три вопроса:

• Какой способ изменения (приращения) времени целесообразно использовать (с переменным или постоянным шагом).

• С какой дискретностью следует изменять модельное время.

• Какое событие будет служить условием окончания эксперимента.

Выбор шага моделирования

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

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

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

Ранее мы рассматривали то, что в окне Simulink имеется меню Simulation (рис. 5.4).

Рис. 5.4. Окно блок-диаграммы S-модели и вид меню Simulation

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

шие параметры модели, такие как, например, способ изменения модельного времени и формат представления результатов моделирования.

Важной командой этого меню является Simulation Parameters. По данной команде открывается диалоговое окно настроек параметров моделирования. Для нас представляют интерес вкладки:

• Solver (Расчет) - установка параметров расчета модели;

• Workspace I/O (Ввод/вывод данных в рабочую область) - установка параметров обмена данными с рабочей областью MATLAB;

• Diagnostics (Диагностика) - выбор уровня диагностики. Установка параметров управления модельным временем

с помощью вкладки Solver рис. 5.5.

Рис. 5.5. Вкладка Solver окна установки параметров моделирования

Параметры моделирования разделены на три группы:

• Simulation time (интервал моделирования); величина интервала моделирования задается посредством указания начального (Start time) и конечного (Stop time) значений модельного времени;

• Solver options (параметры расчета) - выбор метода реализации (расчета) модели;

• Output options (Параметры вывода) - соответствующие элементы позволяют указать периодичность записи параметров модели в рабочую область (при моделировании с переменным шагом).

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

С помощью двух раскрывающихся списков Type (Тип) система может быть отнесена к одному из следующих классов:

• С дискретным состоянием и дискретным временем перехода из одного состояния в другое.

• С дискретным состоянием и непрерывным временем переходов.

• С непрерывным состоянием и дискретным временем переходов.

• С непрерывным состоянием и непрерывным временем переходов.

Первый список (слева) позволяет выбрать способ изменения модельного времени; он содержит два пункта:

• Variable-step (моделирование с переменным шагом);

• Fixed-step (моделирование с фиксированным шагом).

Как правило, Variable-step используется для моделирования непрерывных систем, а Fixed-step - дискретных.

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

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

Ниже двух раскрывающихся списков Type находится область, содержимое которой меняется в зависимости от выбранного способа изменения модельного времени. При выборе Fixed-step в данной области появляется текстовое поле Fixed-step size (величина фиксированного шага) позволяющее указывать величину шага моделирования (рис. 5.6). Величина шага моделирования по умолчанию устанавливается системой автоматически (auto). Требуемая величина шага может быть введена вместо значения auto либо в форме числа, либо в виде вычисляемого выражения (то же самое относится и ко всем параметрам, устанавливаемым системой автоматически).

При выборе Fixed-step необходимо также задать режим расчета (Mode). Для параметра Mode доступны три варианта:

• MultiTasking (Многозадачный) - необходимо использовать, если в модели присутствуют параллельно работающие подсистемы и результат работы модели зависит от временных параметров этих подсистем.

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

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

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

Рис. 5.6. Вкладка Solver при выборе фиксированного шага расчета

При выборе V ariable-step в области появляются поля для установки трех параметров:

• Мах step size - максимальный шаг расчета. По умолчанию он устанавливается автоматически (auto) и его значение в этом случае равно (SfopTime - StartTime)/50. Довольно часто это значение оказывается слишком большим, и наблюдаемые графики представляют собой ломаные (а не плавные) линии. В этом случае величину максимального шага расчета необходимо задавать явным образом.

• Міп step size - минимальный шаг расчета.

• Initial step size - начальное значение шага моделирования.

При моделировании непрерывных систем с использованием переменного шага необходимо указать точность вычислений: относительную (Relative tolerance) и абсолютную (Absolute tolerance). По умолчанию они равны соответственно 10"3 и auto.

Приведем пример моделирования потока заявок на обслуживание. Предположим, необходимо моделировать поток посетителей супермаркета, подходящих к кассе для оплаты покупки. Наблюдения показали (или из других источников поступила информация), что в вечернее время с 17.00 до 18.00 в среднем через каждые 15 мин. приходит очередной посетитель. Вопрос: как будет выглядеть очередность посетителей на протяжении данного промежутка времени? Модель потока посетителей может выглядеть следующим образом (рис. 5.7).

Рис. 5.7. Модель потока посетителей

Блок MATLAB function имитирует случайные числа в соответствии с экспоненциальным законом распределения. С этой целью используется функция exprnd с параметром 0.25, что соответствует среднему времени 15 мин. (15/60). Блок Discrete Time Integrator суммирует случайные числа, т.е. формирует время работы кассы нарастающим итогом. Блок Display показывает суммарное время работы кассы (в нашем случае оно будет случайное). Блок Scopel отражает: по вертикали - общее время работы, которое складывается из случайных временных интервалов; по горизонтали - количество посетителей. С этой осью совпадает шаг моделирования.

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

Используя средства Simulink доработаем модель так, чтобы управлять величиной шага моделирования при изменении модельного времени по особым состояниям (рис. 5.8).

Рис. 5.8. Изменение модельного времени по особым состояниям

Нижняя часть модели обеспечивает формирование отрезков времени, длина которых распределена по заданному закону (экспоненциальному), и продвижение модельного времени. Верхняя часть модели имитирует случайную величину стоимости их покупки. Средняя стоимость покупки в модели принята за 0,3 тыс. руб. Из результатов одного прогона модели видно, что за 3 часа 20 минут в кассе супермаркета будет 1 тыс. 700 рублей. Понятно, что и моделируемая ситуация и сама модель очень просты. Но в данном случае для нас важен подход к решению подобных задач.

Синхронизация параллельных процессов

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

Для корректного управления модельным временем в таких моделях необходимо:

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

2. Определить, могут ли в подчиненном процессе происходить события, не связанные с изменением состояния управляющего процесса.

3. Обеспечить приращение модельного времени на интервал времени до ближайшего события в управляющем процессе.

4. Контролировать условия окончания сеанса моделирования.

Пример. В качестве иллюстрации к сказанному вновь воспользуемся моделью работы супермаркета. Очевидно, что оплата покупателя в кассу может начаться только при условии под-

хода его к кассе. Потому процесс оплаты является подчиненным по отношению к процессу подхода покупателей к кассе. Если интервал между покупателями значительно больше длительности расчета в кассе, то продвижение модельного времени будет определяться только событиями управляющего процесса (потоком покупателей). Блок-диаграмма такой системы не будет отличаться от рассмотренной ранее (см. рис. 5.8). Если же интервал между покупателями в кассе соизмерим с временем обслуживания в кассе, то необходимо отразить в модели дополнительное условие: «обслуживание» очередного покупателя не может начаться до тех пор, пока не завершится «обслуживание» предыдущего. При такой постановке задачи оба процесса становятся равноправными с точки зрения влияния на значение модельного времени. Очередной шаг модельного времени в этом случае вычисляется как сумма двух временных интервалов: промежутка до нового покупателя и длительности обслуживания его в кассе. Модель будет иметь вид, показанный на рис. 5.9. Результаты работы модели представлены на рис. 5.10-5.13.

Рис. 5.9. Управление модельным временем при наличии двух синхронных процессов

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

Рис. 5.11. Результаты работы модели (суммарный интервал между покупателями и время обслуживания покупателя - по вертикали)

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

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

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

Рис. 5.14. Управление окончанием моделирования при наличии двух параллельных процессов

В данной модели используется способ продвижения модельного времени, суть которого состоит в том, что в каждом такте выбирается большая из величин Т1 и Т2. Где Т1 и Т2 - время суммарного обслуживания очередного покупателя в 1-й и во 2-й кассе соответственно.

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

<< | >>
Источник: Снетков Н.Н.. Имитационное моделирование экономических процессов: Учебно-практическое пособие. - М.: Изд. центр ЕАОИ,2008. - 228 с.. 2008

Еще по теме §5. Управление модельным временем в MATLAB:

- Антимонопольное право - Бюджетна система України - Бюджетная система РФ - ВЭД РФ - Господарче право України - Государственное регулирование экономики России - Державне регулювання економіки в Україні - ЗЕД України - Инвестиции - Инновации - Инфляция - Информатика для экономистов - История экономики - История экономических учений - Коммерческая деятельность предприятия - Контроль и ревизия в России - Контроль і ревізія в Україні - Логистика - Макроэкономика - Математические методы в экономике - Международная экономика - Микроэкономика - Мировая экономика - Муніципальне та державне управління в Україні - Налоги и налогообложение - Организация производства - Основы экономики - Отраслевая экономика - Политическая экономия - Региональная экономика России - Стандартизация и управление качеством продукции - Страховая деятельность - Теория управления экономическими системами - Товароведение - Управление инновациями - Философия экономики - Ценообразование - Эконометрика - Экономика и управление народным хозяйством - Экономика отрасли - Экономика предприятий - Экономика природопользования - Экономика регионов - Экономика труда - Экономическая география - Экономическая история - Экономическая статистика - Экономическая теория - Экономический анализ -