МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬУчреждение образования
Гомельскийгосударственный университет имени Франциска СкориныМатематическийфакультет
Кафедраматематических проблем управления
Имитационная модель автоматизированного участка обработки деталей
ДИПЛОМНАЯ РАБОТАГомель 2007
Оглавление
1. Имитационное моделирование
1.1Понятие сложной системы
1.2Понятие математической модели сложной системы
1.3Классификация математических моделей сложной системы
1.4Предпосылки для имитационного моделирования сложной системы
1.5Технологические этапы машинного моделирования сложной системы
1.6Представление динамики модели при имитационном моделировании
2 СРЕДСТВА РЕАЛИЗАЦИИИМИТАЦИОННОЙ МОДЕЛИ
2.1Табличный процессор Excel
2.2Visual Basic for Application
3 РАЗРАБОТКАИМИТАЦИОННОЙ МОДЕЛИ автоматизированного участка обработки деталей
3.1Концептуальная модель
3.2Формальное описание модели
Алгоритмактивностей
4 ВЕРИФИКАЦИЯИМИТАЦИОННОЙ МОДЕЛИ
4.1Контроль за выполнением порядка активностей
1. Имитационноемоделирование1.1 Понятие сложной системы
Решение современных задачуправления, проектирования и исследования технических, экономических,организационных и других систем требует привлечения специалистов разныхпрофилей. Их эффективное сотрудничество возможно лишь при условии наличия общейметодологии, в рамках которой проводится исследование. Такая методология носитзвание «системный анализ». Объектом его изучения является «сложная система», аодин из важнейших его инструментов есть моделирование на ЭВМ.
Термин «система» появилсяв научной литературе давно и является фактически таким же неопределенным, как«множество» или «совокупность». Определим понятие система, как множествокомпонентов, объединенных в единое целое некоторой формой регулярноговзаимодействия или взаимозависимости для выполнения определенной функции. Приэтом компоненты будем подразделять на подсистемы, также имеющие внутреннююструктуру, как и сама система, и элементы, которые являются неделимыми с точкизрения исследователя сложной системы. Компоненты имеют определенныехарактеристики (признаки), которые могут принимать дискретные или непрерывныезначения в процессе функционирования системы и ее взаимодействия с внешнейсредой. Воздействие внешней среды выражается через входные (экзогенные)переменные. С другой стороны, результат работы системы фиксируется черезвыходные (эндогенные) переменные. Если они характеризуют внутреннюю динамикуфункционирования системы, то это переменные состояния. Выходные воздействияработы системы на внешнюю среду отражаются через переменные, называемыеоткликами.
Системой вследствиеприсущих ей свойств могут устанавливаться ограничения, представляющие собойпределы изменения значений входных переменных или условия, при которыхнаблюдаются определенные значения. Ограничения могут также вводитьсяразработчиком сложной системы. Ни одна задача изучения сложной системы не можетбыть решена без введения целевой функции (критерия эффективности), котораяпредставляет собой точное отображение целей или задач системы и необходимыхправил оценки их выполнения.
Наиболее широко термин«система» первоначально использовался в механике, где обозначал материальнуюсистему, т. е. совокупность материальных точек, подчиненных определеннымсвязям. Подобные системы рассматриваются в основном в задачах динамики. Законыдинамики были получены длительным индуктивным путем. Выдвигаемые гипотезыпроверялись на многочисленных опытах. Проверялись также и многочисленныеследствия выдвигаемых гипотез. Все это было реализовано благодаря возможностиставить «чистые опыты», т.е. устранять многочисленные мешающие факторы –сводить трение к минимуму, ставить опыты в вакууме, проводить достаточно точныеизмерения и т. п. Кроме того, условия опытов могли быть воспроизведены с весьмабольшой точностью в другое время и в другом месте.
Новый этап начался смомента, когда ученые приступили к исследованию систем, названных впоследствии«сложными», динамика которых во многом зависит от человека и принимаемых имрешений. Перечислим наиболее характерные особенности сложных систем (СС).
1. Уникальность.Аналогичные по назначению системы имеют ярко выраженные специфические свойства,во многом определяющие их поведение.
2. Слабая структурированностьтеоретических и фактических знаний о системе. Так как изучаемые системыуникальны, то процесс накопления и систематизации знаний о них затруднен. Сюдаже следует отнести слабую изученность ряда процессов, связанную с обычными длясложных систем изменениями их технической и технологической баз, значительнымвлиянием человеческого фактора, невозможностью или ограниченностью «натурногоэксперимента».
Следствием этого,в частности, является необходимость использования ансамбля моделей при анализесистемы. Различные модели могут отражать как разные стороны функционированиясистемы, так и разные уровни отображения исследователем одних и тех жепроцессов.
3. Составной характерсистемы. Уже на самом первом этапе изучения системы исследователь вынуждениспользовать понятие подсистемы как некоторой достаточно автономной части всейсистемы. Разделение СС на подсистемы, т.е. ее декомпозиция, как правило, зависитот принятых технических решений, целей создания системы и взглядов исследователяна нее. При декомпозиции существенны следующие факторы:
– рассматриваемая система может быть разделена (не обязательноединственным образом) на конечное число подсистем; каждая подсистема в своюочередь может быть разделена на конечное число более мелких подсистем и т.д. — до получения, в результате конечного числа шагов, таких частей, называемыхэлементами сложной системы, относительно которых имеется договоренность, что вусловиях данной задачи они не подлежат дальнейшему разделению на части;
– элементы СС функционируют не изолированно друг от друга, а вовзаимодействии, при котором свойства одного в общем случае зависят от условий,определяемых поведением других элементов, и влияния внешней среды;
– свойства СС в целом определяются не только свойствами элементов,но и характером взаимодействия между элементами.
4. Разнородностьподсистем и элементов, составляющих систему. Составляющие систему элементы иподсистемы разнородны в самых различных смыслах. Во-первых, это – физическаяразнородность. Во-вторых, это – разнородность математических схем, описывающихфункционирование различных элементов.
Удобно разделить моделиподсистем и элементов на две категории: внешние и внутренние. Названия этиусловны и имеют следующий смысл.
Вследствие недостатка знанийо функционировании элемента, из-за необходимости понизить размерность модели, атакже по другим причинам часто используют модели типа «вход-выход». При этом неинтересуются динамикой состояний элементов, а лишь описывают их внешнееповедение. Примерами моделей подобного типа служат различные регрессионныемодели, поверхности отклика, функциональные зависимости и т. п. Такие моделиназовем внешними (черный ящик).
В отличие от внешних длявнутренних моделей характерным является описание механизмов, управляющихдинамикой их состояний, которое может базироваться на нашем представлении игипотезах относительно истинного поведения моделей. В известном смыслеидеальным случаем является формирование указанного механизма на базе ужевыявленных и экспериментально проверенных закономерностей. Примерами могутслужить модели, описываемые дифференциальными уравнениями, марковскимипроцессами и др.
5. Случайность и неопределенностьфакторов, действующих в системе. Примерами подобных факторов могут служитьпогодные условия, случайные отказы оборудования, транспорта и т. д. Учет этихфакторов приводит к резкому усложнению задач и увеличивает трудоемкостьисследований (необходимость получения представительных наборов данных).
6. Многокритериальность оценокпроцессов, протекающих в системе. Невозможность однозначной оценки диктуетсяследующими обстоятельствами: наличием множества подсистем, каждая из которых,вообще говоря, оценивается по своим критериям; множественностью показателей(иногда противоречивых), характеризующих работу всей системы (например,форсирование темпов, как правило, приводит к ухудшению качества работ);наличием неформализуемых критериев, используемых при принятии решений (в случае,когда решения основаны, например, на практическом опыте лиц, принимающихрешения).
7. Большая размерность системы. Этаособенность системы обусловливает потребность в специальных способах построенияи анализа моделей.1.2 Понятие математической модели сложной системы
Составной характерсложной системы диктует представление ее модели в виде тройки ,где А – множество элементов (в их число включается также внешняя среда); S –множество допустимых связей между элементами (структура модели); Т — множестворассматриваемых моментов времени. Эти понятия могут быть формализованы разнымиспособами. В качестве Т обычно выбирают множество [0, Т0) или [t0;T0), T0
Основной задачей теорииСС считается разработка методов, позволяющих на основе изучения особенностейфункционирования и свойств отдельных элементов, анализа взаимодействия междуними получить характеристики системы в целом. Приведенная выше общая модельотвечает данной задаче – она построена в виде совокупности моделей элементов исвязей между ними. Рассмотрение объекта материального мира как системы,состоящей из взаимодействующих элементов, построение математической модели длянее и исследование ее свойств методом моделирования составляет сущностьсистемного подхода. Таким образом, системный анализ представляет собой научнуюдисциплину, содержащую совокупность методов и приемов построения, исследованияи эксплуатации математических моделей СС.
В области естественныхнаук наиболее распространенными являются два вида моделирования – физическое иматематическое.
Процесс физического(аналогового) моделирования состоит в изучении системы посредством анализанекоторого макета, сохраняющего физическую природу системы. Примером являетсямодель летательного аппарата, исследуемая в аэродинамической трубе. Параметрыэксперимента при этом выбирают из соотношений подобия. Аналоговое моделированиеосновано на указанных выше возможностях описывать разнородные явления ипроцессы одними и теми же уравнениями. Эти уравнения воспроизводятся обычно спомощью специально подобранных (в соответствии с уравнениями) схем, чаще всего,электрических. Искомые характеристики для исследуемой системы получаются путемизмерения на модели соответствующих величин. Переработка информации в такоймодели носит параллельный характер и реализуется в форме процесса,происходящего в собранной схеме.
Однако модели физическоготипа имеют ограниченную сферу применения. Не для всяких явлений и объектовмогут быть построены физические аналоги. Достаточно указать нарадиолокационные станции, вычислительные центры, организационные системы,производственные процессы и т. п.
Математическоемоделирование основано на том факте, что различные изучаемые явления могутиметь одинаковое математическое описание. Хорошо известным примером служитописание одними и теми же уравнениями электрического колебательного контура ипружинного маятника. Математическая модель концентрирует в себе записанную вформе математических соотношений совокупность наших знаний, представлений игипотез о соответствующем объекте или явлении. Поскольку знания эти никогда небывают абсолютными, а в гипотезах иногда намеренно не учитывают некоторые эффекты(например, влияние силы трения в механике, потери на тепло в электротехнике ит. п.), модель лишь приближенно описывает поведение реальной системы.
Основное назначениемодели – сделать возможными некоторые выводы о поведении реальной системы.Наблюдения над реальной системой (натурные эксперименты) в лучшем случае могутдать материал лишь для проверки той или иной гипотезы, той или иной модели,поскольку они представляют собой источник информации ограниченного объема опрошлом этой системы. Модель допускает значительно более широкие исследования,результаты которых дают нам информацию для прогнозирования поведения системы,характера ее траектории. Правда, чтобы обеспечить эти и другие возможности,приходится решать проблему соответствия (адекватности) модели и системы, т. е.проводить дополнительное исследование согласованности результатов моделированияс реальной ситуацией.
Математические модели строятна основе законов и закономерностей, выявленных фундаментальными науками:физикой, химией, экономикой, биологией и т. д. В конечном счете, ту или инуюматематическую модель выбирают на основе критерия практики, понимаемого вшироком смысле. Математическая модель отображает записанную на языкематематических отношений совокупность наших знаний, представлений и гипотез осоответствующем объекте или явлении. Для сложных систем нельзя получитьабсолютно подобных математических моделей. Путем формализации системыполучается упрощенная модель, отражающая основные ее свойства и не учитывающаявторостепенных факторов.
Таким образом,математическая модель CC –это совокупность соотношений (формул, неравенств, уравнений, алгоритмов),определяющих выходные характеристики состояний системы в зависимости от еевходных параметров и начальных условий. Другими словами, ее можно рассматриватькак некоторый оператор, ставящий в соответствие внутренним параметрам системысовокупность внешних откликов. После того, как модель построена, необходимоисследовать ее поведение.
С усложнением изучаемыхобъектов использование аналитических методов для построения и анализа моделейвозможно лишь в мало интересных для практики случаях. Выход состоит в переходек машинным реализациям математических моделей (машинным моделям). При этом накомпьютер возлагается как работа по воспроизведению динамики изучаемой модели(имитация ее траекторий), так и по проведению экспериментов с ней.
Таким образом, в процессемоделирования исследователь имеет дело с тремя объектами: системой (реальной,проектируемой, воображаемой); математической моделью системы; машинной(алгоритмической) моделью. В соответствии с этим возникают задачи построенияматематической модели, преобразования ее в машинную и программной реализациимашинной модели. В процессе решения этих задач исследователь получает белееполное и структурированное представление об изучаемой системе, разрабатываетразличные варианты модели, отвечающие разным сторонам функционирования системыи их структурных преобразований. Однако основные проблемы исследования системна машинных моделях сводятся к получению качественной картины поведения модели,а также необходимых количественных характеристик. При этом исследователь вправеиспользовать не только информацию, содержащуюся в машинной модели, но иинформацию, полученную им на этапе создания модели.1.3 Классификацияматематических моделей сложной системы
Математические моделиможно классифицировать по различным признакам. Если исходить из соотношений,которые выражают зависимости между состояниями и параметрами СС, то различаютследующие модели:
– детерминированные, когда присовместном рассмотрении этих соотношений состояние системы в заданный моментвремени однозначно определяется через ее параметры, входную информацию иначальные условия;
– стохастические, когда с помощьюупомянутых соотношений можно определить распределения вероятностей длясостояний системы, если заданы распределения вероятностей для начальныхусловий, ее параметров и входной информации.
По характеру изменения внутреннихпроцессов выделяют
– непрерывные модели, в которыхсостояние СС изменяется в каждый момент времени моделирования;
– дискретные модели, когда ССпереходит из одного состояния в другое в фиксированные моменты времени, а на(непустых) интервалах между ними состояние не изменяется.
По возможности изменения во временисвоих свойств различают
– динамические модели, свойствакоторых изменяются во времени;
– статические модели, не изменяющиесвоих свойств во времени.
Если приклассификации исходить из способа представления внутренних процессов для изученияСС, то модели разделяются на аналитические и имитационные.
Для аналитических моделейхарактерно, что процессы функционирования элементов СС записываются в виденекоторых математических схем (алгебраических, дифференциальных,конечно-разностных, предикатных и т.д.). Аналитическая модель можетисследоваться одним из следующих способов: аналитическим, когда стремятсяполучить в общем виде явные зависимости для искомых величин; численным, когда,не имея общего решения, удается найти частное решения или некоторые свойстваобщего решения, например, оценить устойчивость, периодичность, и т.п.
В имитационных моделях(ИМ) моделирующий алгоритм приближенно воспроизводит функционирование элементовСС во времени, причем элементарные явления, составляющие динамический процесс,имитируются с сохранением логической структуры и последовательности протеканияво времени. Сущность этого метода моделирования обеспечивается реализацией наЭВМ следующих видов алгоритмов: отображения динамики функционирования элементовСС, обеспечения взаимодействия элементов СС и объединения их в единый процесс;генерация случайных факторов с требующимися вероятностными характеристиками;статистической обработки и графической презентации результатов реализацииимитационного эксперимента (ИЭ). Моделирующий алгоритм позволяет по исходнымданным, содержащим сведения о начальном состоянии процесса и его параметрах,получать информацию о состоянии СС в произвольный момент времени.
Имитационные модели вбольшинстве случаев – это динамические (обязательно), стохастические,дискретные модели.1.4 Предпосылкидля имитационного моделирования сложной системы
Большинствоисследователей считает, что следует выбрать имитационный метод для изучениясложных систем по следующим причинам.
Не существует законченнойпостановки задачи исследования. Каждый коллектив разработчиков математическоймодели определяет объект собственных исследований. Каждый раз по-новомувносятся предположения о природе взаимодействующих процессов, обсуждаются факторы,не учитываемые в модели, строится критерий качества функционирования. Какправило, для ИМ задача ставится значительно шире.
Сложность и трудоемкостьаналитического аппарата. Для описания отдельных элементов системы подходитразличный математический аппарат: теория массового обслуживания,конечно-разностные схемы, булева алгебра в контексте теории графов. Однаковозможное количество исходных уравнений и неравенств представляется чрезмернобольшим для удовлетворительного решения. Кроме того, известно мало случаеводновременного использования нескольких математических методов в рамках однойзадачи.
Необходимость наблюденияза поведением компонентов системы в динамике. Специалистам недостаточно иметьусредненные оценки характеристик функционирования системы. Представляет такжеинтерес временная последовательность возникновения узких мест, эффективностьмероприятий по их ликвидации, внесение различных управлений в работу системы ит.д.
Экономическаянецелесообразность постановки натурных экспериментов. Любое исследованиесложной системы является дорогостоящим мероприятием. При внесении неудачныхизменений в работу реального объекта могут пострадать люди, что вызываетсоциальную напряженность. Проектирование же новых систем связано с большимиматериальными затратами. Поэтому в большинстве случаев решения принимаются наоснове опыта специалистов предметной области без сотрудничества с научнымиколлективами. Имитация должна служить для предварительной проверки новыхстратегий перед принятием решения в реальной системе.
Необходимость точногоотображения функционирования компонентов системы. Аналитическая модель, какправило, не соответствует структуре сложной системе. Следовательно, изучениенекоторого периода ее работы потребует разработки отдельной аналитическоймодели. При имитационном моделировании подобная задача тривиально решаетсяпутем сохранения и восстановления промежуточного состояния системы во внешнейпамяти ЭВМ.
Использование ИМ вкачестве тренажера. При подготовке специалистов и освоении правил принятиярешений на ИМ может обеспечиваться возможность приобретения новых навыков вуправлении системой.
Однако при имитационноммоделировании сложных систем несмотря на перечисленные достоинства можетвозникнуть ряд существенных проблем. Разработка хорошей ИМ часто обходитсядороже создания аналитической модели и требует наличия квалифицированныхспециалистов и больших затрат времени. Иногда может показаться, что ИМ точноотражает реальное положение дел в моделируемой системе, а в действительностиэто не так. Причем к неверному решению могут привести свойственные именноимитации особенности. При использовании ИМ требуется применять нестандартныеметоды статистического анализа данных, что усложняет исследование. Преодолениеперечисленных выше проблем лежит на пути создания программно-технологическогоинструментария, позволяющего автоматизировать этапы построения ИМ и тем самым ускоритьсроки их исследования.1.5Технологические этапы машинного моделирования сложной системы
1. Составлениесодержательного описания объекта моделирования
Представляет собойвыполнение следующих действий. Вначале определяется объект имитации,достаточный для изучения тех сторон его функционирования, которые представляютинтерес для исследователя. Устанавливаются границы изучения функционированияобъекта. Составляется возможный список ограничений модели, которые допустимыпри организации имитации или при наличии которых ещё имеет смысл имитацияфункционирования СС. Перед разработчиками ИМ ставятся вполне конкретные целимоделирования и формулируются основные критерии эффективности, по которымпредполагается проводить сравнение на модели вариантов организации СС. Результатомработ на данном этапе является содержательное описание объекта моделирования суказанием целей имитации и аспектов функционирования объекта моделирования,которые необходимо изучить на ИМ. Обычно оно представляет собой техническоеописание объекта моделирования, описание внешней среды, с которой онвзаимодействует, и временную диаграмму этого взаимодействия.
2. Построениеконцептуальной модели
На основаниисодержательного описания детализируется задача моделирования, определяетсяпроцедура и график её решения. Уточняется методика всего ИЭ в зависимости отналичных ресурсов, выделенных для имитации. Необходимо провести декомпозицию ССна составные компоненты, описать процессы их функционирования и взаимосвязимежду ними. Общая задача моделирования разбивается на ряд частных задач.Устанавливаются приоритеты решения этих задач. Обосновываются требования вресурсах ЭВМ. Выполняются такие работы, как выбор параметров и переменных СС,представляющих интерес для моделирования; уточнение критериев эффективностивариантов СС; выбор типов аппроксимации отдельных компонентов модели.Проводятся также предварительный анализ требований к модели СС; определениенеобходимых математических уравнений, описывающих реальные процессы; поисквозможных методов проверки правильности функционирования модели. Одновременно сэтим исследователь должен выбрать способ будущей формализации процессов вобъекте моделирования. Результатом выполнения работ являются концептуальнаямодель, выбранный способ формализации и организации имитации. В составконцептуальной модели входят: уточнённое содержательное описание, свободное отвсего того, что не представляет интереса для имитации поведения СС, списокпараметров и переменных моделирования; критерии эффективности функционированиявариантов системы; список используемых методов обработки результатов имитации иперечисление способов представления результатов моделирования. При созданиинебольших ИМ данный этап работ совмещается с этапом составления содержательногоописания моделируемой системы. Только с усложнением объекта моделирования изадач имитации появляется необходимость определения способа формализации,который подходит для решения конкретной задачи исследования СС.
3. Формализацияобъекта моделирования
В зависимости отсложности СС могут использоваться три вида формализации: аппроксимация явленийфункциональными зависимостями, алгоритмическое описание процессов в СС,смешанное представление в виде последовательности формул и алгоритмическихзаписей. В зависимости от принятого способа имитации используются свои способыформализации (активностями, событиями, процессами, транзактами, агрегатами,элементами системной динамики и др.). При составлении формального описания ССисследователю рекомендуется такая последовательность действий: уточнениедекомпозиции системы, алгоритмизация компонентов модели, уточнениевзаимодействия с управляющей программой моделирования, документация этапа.
4. Программирование иотладка модели
На данном этапевыполняются следующие действия. Во-первых, составляется план создания ииспользования программной модели. В плане указывается тип ЭВМ, средствоавтоматизации моделирования, примерные затраты памяти и времени на создание ИМ.Во-вторых, приступают к программированию алгоритмов ИМ. Не существуетсущественных отличий создания программы ИМ от других видов программногообеспечения на языках программирования. Однако опыт, накопленный в областимоделирования, потребность в моделировании все более сложных систем ивозможности современных ЭВМ обусловили появление новых взглядов на архитектуруи функции программного обеспечения системного моделирования.
Появление имитационныхсистем — закономерное следствие общей тенденции развития программногообеспечения вычислительных машин, которая заключается во все более полнойавтоматизации действий по программированию и подготовке задач к решению на ЭВМ.
В свое время стремлениепользователей переложить на ЭВМ как можно большую часть рутинных операцийпривело к появлению универсальных и различных проблемно-ориентированных языковпрограммирования, среди которых были многочисленные языки моделирования.Следует заметить, что некоторые языки моделирования, например СИМУЛА-67,СИМСКРИПТ-2 и др., нисколько не уступают по своим алгоритмическим возможностямуниверсальным языкам и называются проблемно-ориентированными лишь постольку,поскольку содержат ряд специальных средств, ориентированных на программированиемоделей.
Построение на базе языковмоделирования систем программирования позволило во многом облегчить разработкуи реализацию моделей. Кроме того, многие языки моделирования содержатстандартные средства для подготовки и выполнения машинных прогонов, накопления,обработки и представления результатов имитации. Однако набор этих стандартныхсредств обычно довольно ограничен (генераторы псевдослучайных чисел,автоматический расчет средних и дисперсий, печать таблиц и графиков).
Модель сложной системы невсегда удается концептуально выдержать в рамках одного языка моделирования.Отдельные элементы и подсистемы могут быть описаны, например, обыкновеннымидифференциальными уравнениями, другие — конечными автоматами, третьи — втерминах теории массового обслуживания и т. д. В этом случае использованиекакого-либо одного языка моделирования может привести к потере точностиописания реальных систем или к усложнению программ.
Программирование моделейсложных систем осложняется тем, что их разработка и эксплуатация обычновыполняются разными лицами. Поэтому к модели как к конечному программномупродукту предъявляются высокие требования. Разработчик должен организоватьудобное взаимодействие пользователя с моделью, для чего необходимо программироватьспециальные модули, обеспечивающие ввод-вывод информации в удобной дляпользователя форме. Модель должна быть составлена с учетом возможности еедальнейшей модификации, поэтому разработчик должен предусмотреть обоснованныестандарты на организацию межмодульного интерфейса в модели.
Требование быстрого иправильного составления модели обусловливает необходимость:
– замены программирования конструированием из готовых элементов;
– разработки проблемно-ориентированных библиотек элементов;
– отдельной трансляции элементов для выявления синтаксическихошибок в их описаниях;
– автономной отладки элементов;
– автоматической компоновки элементов в моделирующий алгоритм.
Нетривиальными длясложных моделей становятся процедуры подготовки машинных экспериментов, сбора,хранения и обработки результатов машинных экспериментов. Появляется необходимостьв использовании готовых или разработке новых прикладных программ, реализующихболее сложные по сравнению со стандартными возможностями языков моделированияпроцедуры планирования машинных экспериментов и обработки данных. Пользовательможет потребовать от разработчика предусмотреть стандартные средства дляподключения таких программ к модели, что обеспечит пользователю возможностьсамостоятельного выбора этих программ при имитации.
Таким образом, собственномодель сложной системы дополняется множеством программ, обеспечивающих ееэффективное использование.
5. Испытание ИМ
Включает два аспекта:
1) необходимоубедиться в правильности динамики развития алгоритма моделирования компонентовИМ (верификация);
2) определитьсовпадение с заданной точностью векторов характеристик поведения объектамоделирования и ИМ (адекватность).
При отсутствииадекватности проводят калибровку ИМ («подправляют» характеристикиалгоритмов компонентов модели). Наличие ошибок во взаимодействии компонентов ИМвозвращает исследователя к этапу создания ИМ на бумаге. Возможно, что в ходеформализации исследователь слишком упростил процессы и исключил из рассмотренияряд важных сторон функционирования СС, что привело к неадекватности ИМ. В этомслучае исследователь должен вернуться к этапу формализации СС. В тех случаях,когда выбор способа формализации оказался неудачным, исследователю необходимоповторить этап составления концептуальной модели с учётом новой информации ипоявившегося опыта. Наконец, когда у исследователя оказалось недостаточноинформации об объекте, он слишком упростил моделируемые явления, исключил израссмотрения важные стороны функционирования СС и т.д., то необходимо вернутьсяк этапу составления содержательного описания СС и уточнить его с учётомрезультатов испытания предыдущей ИМ СС.
6. Исследованиесвойств ИМ
На данном этапе решаютсятак называемые тактические проблемы постановки ИЭ: оцениваются точностьимитации явлений, необходимый объем выборки, длина реализация прогона ИМ,устойчивость результатов моделирования, чувствительность критериев качества кизменению параметров ИМ, стационарность режима моделирования и др… Получитьэти оценки в ряде случаев бывает весьма сложно, однако без успешных результатовэтой работы доверия к ИМ не будет. Точность имитации явлений обычнопредставляет собой оценку влияния стохастических элементов на функционированиеИМ СС. Устойчивость результатов моделирования характеризуется сходимостью контролируемогоотклика моделирования к определённой величине при изменениях параметров моделиСС. Стационарность режима моделирования характеризует собой некотороеустановившееся равновесие процессов в модели СС, когда дальнейшая имитациябессмысленна, поскольку новой информации из ИМ исследователь не получит ипродолжение имитации приведёт к увеличению затрат машинного времени. Поэтомунеобходимо разработать процедуру проверки момента достижения стационарногорежима имитации. Чувствительность ИМ представляется величиной минимальногоприращения выбранного критерия качества, вычисляемого по статистикаммоделирования, при последовательном варьировании параметров моделирования навсём диапазоне их изменения.
7. Эксплуатация ИМ
Исследователь СС,выяснив условия и найдя характеристики, при которых должен выполнятьсяимитационный эксперимент, переходит к решению стратегических задач – расчетувыборочных средних значений (дисперсии и моментов более высокого порядка)откликов модели и различных зависимостей на их основе.
Этап эксплуатации ИМначинается с составления плана эксперимента, позволяющего исследователюполучить максимум информации при минимальных усилиях на вычисление.Составляется статистическое обоснование плана эксперимента. Планированиеэксперимента представляет собой процедуру выбора числа и условий проведенияопытов, необходимых и достаточных для решения поставленной задачи с требуемойточностью. Стремятся минимизировать общее число опытов на ИМ с одновременнымварьированием всеми переменными. Выбирают такую стратегию ИЭ, которая позволяетпринимать обоснованную стратегию с помощью процедур принятия решений послекаждой серии экспериментов на ИМ.
8. Анализ результатовмоделирования
Данный этап завершаеттехнологическую цепочку этапов создания и использования ИМ. Получив результатымоделирования, исследователь приступает к интерпретации результатов. Возможно,что в ходе интерпретации результатов исследователь установил наличие ошибоклибо при создании модели, либо при формализации объекта моделирования. В этихслучаях осуществляется возврат на этап построения описания ИМ или насоставление концептуальной модели СС соответственно. Результатом этапа интерпретацииданных ИЭ являются рекомендации по проектированию или модификации СС. На ихоснове исследователи приступают к принятию решений. На интерпретациюрезультатов ИЭ оказывают существенное влияние изобразительные возможностисредств моделирования на ЭВМ. При анализе результатов ИЭ рекомендуетсяиспользовать пакеты OLAP (On-Line Analytical Processing), включающие текстовыйпроцессор, средства статистической обработки и графической презентации данных,принятия решений.
В конечном итоге послевыполнения всех перечисленных выше итерационных этапов имитации исследовательлибо окажется удовлетворённым результатами моделирования и будет их учитыватьпри проектировании СС, либо забракует проектируемую систему и сформулируеттехническое задание на разработку новой архитектуры СС.1.6Представление динамики модели при имитационном моделировании
Будем характеризоватькаждый компонент Ki сложной системы множеством состояний zi(переменных, содержащих информацию, необходимую для прогноза будущей динамикиэлемента). В каждом элементе Ki в результате выполненияфункциональных действий происходят события eij. Время наступлениясобытия tij и его содержание полностьюопределяется состоянием zi элемента Ki. Для каждого Kiвведем понятие локального времени ti. В сложной системе все tiизменяются одновременно, однако характер этих изменений различен и определяетсяпоследовательностью временных интервалов tij. При построении ИМ СС функциональные действия аппроксимируютсянекоторыми алгоритмами aij принеизменном значении ti, а затем уже отображается изменение tiна величину tij, инициируя таким образом появлениесобытия eij. Пару (aij, tij) назовем активностью и обозначим aij.
Если СС состоит из одногоэлемента K1, то динамика ее ИМ представляла бы собойпоследовательную смену событий e1j на временной оси t1посредством реализации активностей a1j (рис.1).
/>
Рисунок 1.1 — Динамика поведения элемента СС.
Чтобы обеспечить имитациюмодели СС, состоящей более, чем из одного элемента, вводят глобальнуюпеременную t0, называемую модельным временем. Опишем динамику такоймодели следующим образом.
Пусть в начальный моментвремени t0= 0 определены состав элементов и структура системы S0. Для каждого элемента Ki известны состояния zi и временаti0 наступления событий ei0.Введем переменные /> и положимti = tim с таким номером m, что выполняется условие ti,m-1≤t0происходитсобытие />, содержаниекоторого задается состоянием />.Вэтот момент осуществляется взаимодействие элементов модели, в результате чегоформируется новый состав элементов и структура системы S1. Реакциейнаступления события /> являетсякорректировка модельного времени (t0=T0) и реализацияактивности />, т.е. выполнениеалгоритма /> и модификациялокальной временной координаты (ti0=ti0+τi00). Далее вновь определяется время T1 наступления самогораннего события /> вкомпоненте />, корректируетсямодельное время (t0=T1) и реализуется активность /> и т.д. (см. рис. 2)
Моменты T0, T1,T2,… смены состава элементов и/или их состояний будем называтьособыми. Переходы, происходящие в эти моменты, полностью определяют динамику модели.Поэтому при машинной имитации достаточно воспроизводить лишь эти изменения (вобщем случае случайные).
Различают два типа ИМ,связанных со способом формализации реальных процессов функционирования СС. Вмоделях одного типа события eij отражают фактические события,происходящие в системе. В этом случае динамика ИМ по существу повторяетдинамику СС, т.е. переход от одного события к другому. Говорят, что такая ИМносит событийный (дискретный) характер.
В моделях другого типасобытия вводят искусственно вследствие необходимости представить некоторыйнепрерывный процесс в дискретной ЭВМ. Характерным примером является любойчисленный метод интегрирования дифференциальных уравнений. В подобных методахособые моменты определяются шагом интегрирования. Эти методы называютсяпошаговыми. При их использовании динамика модели является дискретнымприближением реальных непрерывных процессов.
Вследствиепоследовательного характера обработки информации в однопроцессорном компьютерепараллельные процессы, происходящие в СС, преобразуются в ИМ с помощьювышеприведенного механизма в последовательные. Такой способ представления носитназвание квазипараллельного процесса, а алгоритм называется алгоритмоморганизации квазипараллелизма в ИМ. Противоречие между параллельностьюмодельных процессов и последовательным характером квазипараллельного процессаявляется коренной причиной их неполного соответствия.
/>
Рисунок 1.2 — Динамика взаимодействия элементов СС.
2 СРЕДСТВА РЕАЛИЗАЦИИ ИМИТАЦИОННОЙ МОДЕЛИ2.1 Табличныйпроцессор Excel
Имитационнаямодель автоматизированногоучастка обработки деталейреализована при помощи табличного процессора MS Excel и встроенной среды программирования Visual Basic for Application.
Microsoft Excel — приложение, предназначенное для работы с электронными таблицами. Excel — этопростой, удобный и эффективный инструмент, позволяющий проанализировать данныеи, при необходимости, проинформировать о результате заинтересованную аудиторию,используя электронную почту или Интернет.
Табличный процессор – этоинтерактивная компьютерная программа, которая работает с данными (электроннымитаблицами), представляющими собой набор строк и столбцов.
Наиболее мощныевозможности Excel, выделяющие данный табличный процессор среди данного классапрограмм заключаются в следующем:
· проведениеразличных вычислений с использование мощного аппарата функций и формул;
· исследованиевлияния различных факторов на данные;
· решениезадач оптимизации;
· получениевыборки данных, удовлетворяющих определенным критериям;
· графическоеотображение данных в виде диаграмм, линий, поверхностей и т.п.;
· статистическийанализ данных.
Документы (файлы),которые обрабатывает программа Excel, называются рабочими книгами (или простокнигами). Рабочая книга, как и любая книга, состоит из листов. Любой из листовпредставляет собой таблицу, состоящую из строк и столбцов. Максимально рабочаякнига Excel включает до 255 листов, каждый из которых разделен на 256 столбцов и 16 384 строк, что достаточно практически для любой задачи.
Горизонтальные строки ивертикальные столбцы составляют двумерную таблицу, а листы добавляют третьюсоставляющую. Строки нумеруются от 1 до 65 536, столбцы обозначаются от A до IV(вначале от А до Z, затем от АА до АZ, затем от ВА до ВZ и так вплоть до IV).Листам присваиваются имена Лист1, Лист2, Лист255 или любые другие имена, состоящиене более чем из 31 символа.
Переходот одной открытой книги к другой выполняется с помощью команд меню Window(Окно), а переход с листа на лист — щелчком на ярлычке, после чегосоответствующий лист переносится на передний план.
ВExcel используются листы двух типов. Их назначение следующее:
– Sheet (Лист) — применяется для ввода и обработки числовых данных;
– Chart (Диаграмма) — предназначен для создания и хранения диаграмм,не внедренных в рабочие листы.
Область на пересечениистроки и столбца таблицы называют ячейкой. Ячейку, на которой стоит курсор,называют активной.
Каждой ячейкесоответствует свой адрес, определяющийся строкой и столбцом, в которых помещеныданные ячейки. При записи адреса в Excel сначала указывается столбец, затемстрока. Ячейке, которая находится в верхнем левом углу, присвоен адрес А1, аячейке, которая находится в самом нижнем правом углу, — адрес IV65536.
Чтобы указатьдополнительно лист, следует вначале адреса поставить имя этого листа ивосклицательный знак «!» перед координатами столбца и строки. Выделяют 4 типадиапазонов на листе:
· одна ячейка;
· одна или болеестрок;
· один или болеестолбцов;
· прямоугольнаяобласть ячеек.
Для указания диапазонов вформуле или в команде используются ссылки. В качестве ссылки для одной ячейкивыступает ее адрес, например D14. Чтобы сослаться на множество строк применяютномера начальной и конечной строк, разделенные двоеточием. Аналогично, чтобыуказать несколько столбцов используют имена начального и конечного столбцов.Для задания произвольного прямоугольного диапазона ячеек указываются адресалевой верхней и правой нижней ячеек через двоеточие.
Работать с рабочимикнигами можно после того, как в них будут введены данные. Все данные, которыевводятся в таблицу, размещаются и хранятся в ячейках. В таблице насчитываетсябольшое количество ячеек, а каждая ячейка может включать до 255 символов.Обычно в одну ячейку вводят одно число или короткую текстовую строку. В однойячейке может находиться либо число, либо текст. Поэтому, прежде чем вводить вячейку данные, следует решить, к какому типу они относятся.
В любую ячейку рабочейтаблицы Excel можно ввести как значение, так и формулу. Значения – это числа,текст или последовательности символов даты или времени. Формулы – этокомбинации значений, данных, содержащихся в ячейках, и операторов.
Основное различие междучислами и текстом заключается в том, что с числами выполняются различныеарифметические операции, а с текстом нет.
По ходу ввода Excelопределяет, является ли вводимый элемент числом или текстом. Если вы вводитетолько числа: 0,1,2,3,4,5,6,7,8,9 или символы, используемые при записи чисел:+, -, (, ), ,, р., %, ., *, /, Е, е, то Excel рассматривает введенный элементкак число. В том случае, если вводится значение даты или времени в одном извстроенных в Excel форматов, то и значение даты, и времени будут тожерассматриваться как число. Правильно построенная формула, результатом которойявляется число, также обрабатывается как число. Все остальное считается текстом.
Excel предоставляетвозможность вводить числа в различном формате. Можно вводить десятичные числа,денежные единицы, проценты и представлять число в экспоненциальном виде. Excelпреобразует введенное значение в число с точностью до 15 знаков. Затем можнопредставить это число совершенно в другом формате.
Текстовые записи могутпредставлять собой любые последовательности букв, цифр и специальных символов.
Значения даты и временинеобходимо вводить в определенном формате. Пользовательские форматы даты ивремени собраны в диалоговом окне Формат ячеек, вызываемого из меню Формат покоманде Ячейки. В Excel дата и время рассматриваются как числа, поэтому с нимиможно выполнять различные арифметические операции и использовать при различныхвычислениях.
Любой ввод данных,начинающийся со знака «=», интерпретируется в Excel как формула. В строкеформул отображается сама формула, а в ячейке виден результат вычисления по этойформуле.
Редактирование данныхможно выполнять, используя клавиши и , а такжеклавишу . Если при редактировании данных нажимается клавиша, то будут удалены символы слева от точки вставки, если клавиша , то будет удален весь введенный в ячейку фрагмент.
Для редактированиясодержимого ячейки после того, как ввод завершен, необходимо выделить ее инажать клавишу . В строке состояния появится индикатор режимаПравка, а справа от элемента в ячейке будет зафиксирована точка вставки. Спомощью клавиш управления курсором можно перемещать точку вставки в ячейке иизменять отдельные символы.
При вводе данных частовозникает проблема вставки пустой строки или пустого столбца в таблицу. Дляэтого следует установить маркер в какой-нибудь ячейке столбца, перед которымнужно вставить новый столбец и выполнить команду Вставка/Столбец. Аналогичнодля вставки строки выполняется команда Вставка/Строка.
В Excel позволяютизменять размеры строк и столбцов команды Столбец и Строка в меню Формат. Послевыбора нужной команды открывается подменю, в котором выбирается элемент Ширинаили Высота соответственно. В появившемся диалоговом окне задается ширинастолбца в символах или высота строки в пунктах.
Можно изменить ширинустолбцов с помощью мыши. Для этого указатель мыши необходимо поместить навертикальную линию, разделяющую заголовки столбцов (вид указателя изменится) ипри нажатой левой кнопке перетащить ее в нужном направлении. Изменение высотыстрок выполняется аналогично. Указатель мыши помещается на разделительную линиюмежду заголовками строк, и эта линия перетаскивается вверх или вниз.
Основным достоинствомExcel является наличие мощного аппарата формул и функций.
Формула — последовательность символов, начинающихся со знака «=». В эту последовательностьсимволов могут входить постоянные значения, ссылки на ячейки, имена, функцииили операторы. Если значения в ячейках, на которые есть ссылки в формулах,меняются, то результат изменится автоматически. В строке формул отражаетсясодержимое ячейки, в которой расположен курсор, а, следовательно, эта ячейкаявляется текущей или активной.
Функция – это специальносозданная формула, которая выполняет операции над заданным значением илизначениями. Используются функции для выполнения стандартных вычислений врабочих книгах. Значения, которые используются для вычисления функций, называютсяаргументами. Значения, возвращаемые функциями в качестве ответа, — результатами.
При вводе формул следуетсоблюдать 3 правила:
· сначала должнабыть активизирована та ячейка, в которой будет находиться результат.
· каждая формуланачинается со знака равенства.
· при написанииформулы используются адреса (имена) ячеек, а не их содержимое.
Ссылки указывают на то, вкаких ячейках находятся значения, которые нужно использовать в качествеаргументов формулы. С помощью ссылок можно использовать в формуле данные,находящиеся в различных местах рабочего листа, а также использовать значениеодной и той же ячейки в нескольких формулах. Можно ссылаться на ячейки,находящиеся на других листах рабочей книги, в другой рабочей книге или даже наданные другого приложения.
Ссылки на ячейкииспользуют адреса ячеек, т.е. заголовки соответствующих строк и столбцоврабочего листа.
В формулах используютсяотносительные и абсолютные ссылки.
По умолчанию все ссылки –относительные. При копировании они преобразуются и соответствуют новому расположениюформулы.
Абсолютные ссылкиприменяются в случаях, когда ссылка на конкретную ячейку не должна изменятьсяпри копировании формул. Для указания абсолютной ссылки устанавливается знакдоллара «$» перед ссылкой. Комбинация абсолютных и относительных ссылокобразует смешанную ссылку.
Функции в Excel не толькооблегчают ввод данных, но и выполняют специальные расчеты. Они могутиспользовать координаты диапазонов, именованные диапазоны и обычные числовыезначения.
Каждая функция состоит изимени функции и аргумента.
Имя функции (например,СУММ, СРЗНАЧ, МИН, МАКС) указывает на ее назначение.
Аргумент (например,В2: В12) сообщает Excel какие адреса ячеек задействованы в данной функции.
Связывание – это процессиспользования ссылок на ячейки из внешних рабочих книг в целях получения данныхдля своей рабочей таблицы.
Общий синтаксис дляформулы с внешней ссылкой выглядит следующим образом:
=[ИмяРабочейКниги]ИмяЛиста! АдресЯчейки.
Если формула содержитссылки на ячейки из другой рабочей книги, то эта книга необязательно должнабыть открыта. Если рабочая книга закрыта и не находится в текущей папке, тонеобходимо добавить к ссылке полный путь.
Если рабочая книгасвязана с несколькими рабочими книгами, то может возникнуть необходимостьпросмотреть список всех исходных рабочих книг. Для этого используют командуПравкаÞ Связи. В результате появляетсядиалоговое окно Связи, в котором перечислены все исходные рабочие книги, атакже другие типы связей с другими документами. Это диалоговое окноиспользуется и для обновления связей. Для этого в нем выбирают соответствующуюисходную рабочую книгу и команду Обновить.
Иногда при вводе формулыExcel выдает значение, которое начинается с символа решетка (#). Это говорит отом, что данная формула возвращает ошибочное значение. В подобном случаеследует исправить формулу (или ссылку на ячейку содержащуюся в этой формуле),чтобы избавиться от сообщения об ошибке. Если ячейка полностью заполненазнаками решетки (#), это означает, что столбец недостаточно широк, чтобыотобразить некоторую величину. В этом случае нужно или расширить столбец, илиизменить числовой формат ячейки.
Большиемассивы информации обычно хранятся в виде базы данных и обрабатываютсяспециальными программами. В Excel аналогом простой базы данных является список.Он представляет собой группу строк, содержащих связанные данные. Отличительнаяособенность списка заключается в том, что каждый его столбец содержитоднотипные данные. Если провести аналогию между списком и базой данных, то можносказать, что столбцы списка являются полями базы данных, а его строки —записями.
Сценарийпредставляет собой наборсохраненных программой Excel значений, которые она может автоматическиподставить в ячейки рабочего листа. Сценарии можно использовать для прогнозарезультатов моделирования и расчетов. Существует возможность создать отчет порезультатам работы сценария, который содержит как исходные, так и итоговыезначения, что позволяет прослеживать зависимости между данными в таблице [11].
Значениедиаграмм как графической формы представления числовых данных труднопереоценить. Они позволяют не только повысить наглядность излагаемогоматериала, но и отобразить соотношение различных величин или динамику измененияпоказателей. В Excel предусмотрены средства работы с диаграммами различныхтипов.
ВExcel существует возможность красочно оформлять рабочие листы, используя дляэтого различные графические объекты. Причем такие объекты можно создаватьнепосредственно в самой программе Excel, а можно внедрять из других приложений.Для создания графических объектов в Excel предназначен встроенный графическийредактор, доступный при наличии панели инструментов Drawing (Рисование).Ошибочное значение Описание # ДЕЛ / 0!
1) Формула пытается выполнить деление на 0.
2) Формула пытается выполнить деление на содержимое пустой ячейки #ИМЯ? В формуле используется имя, которое Excel не может распознать. Например, удалено имя, используемое в формуле, или при вводе текста где-то пропущена кавычка #Н/Д Неопределенные данные. Формула ссылается (прями или косвенно) на ячейку, содержащую функцию, ссылающуюся на недопустимый тип данных #ЧИСЛО! Проблема связана со значением; например, задано отрицательное число там, где необходимо положительное. #ССЫЛКА! Недопустимая ссылка; например, формула ссыпается на ячейку, удаленную из рабочей таблицы. #ЗНАЧ! В формулу включен аргумент недопустимого типа.
Рис. 1.4.4.1. Типы ошибокв формулах Excel
В таблице перечисленытипы ошибочных значений, которые могут появиться в ячейке, содержащей формулу.Формулы могут возвращать ошибки и в том случае, если ячейки, на которые в нихесть ссылки, содержат ошибочные значения. Этот эффект носит название цепнойреакции – когда единственное ошибочное значение может породить ошибки во многихдругих ячейках, содержащих формулы со ссылкой на эту ячейку. 2.2 Visual Basic for Application
VBAявляется единой средой разработки приложений во всех программах MicrosoftOffice 2003. Основные принципы работы в среде VBA и в среде Visual Basic 2003идентичны. Перечислим главные преимущества, получаемые в результате примененияязыка VBA.
Во-первых,с помощью VBA можно записывать последовательности повторяющихся команд,характерных для какого-либо приложения, и назначать правила (условия), всоответствии с которым эти последовательности (процедуры VBA) будут вызыватьсяв приложении. Например, после нажатия некоторой кнопки, рабочий лист Excelбудет отформатирован с учетом ваших требований, записанных на VBA и сохраненныхв рабочей книге или шаблоне.
Во-вторых,применив средства VBA, можно обеспечить нестандартный диалог с пользователем,создавая диалоговые формы и обрабатывая реакцию пользователя на событие вприложении.
Наконец,использование единого языка программирования способствует более тесномувзаимодействию Excel с продуктами Microsoft Office. С помощью VBA можноразрабатывать приложения, одновременно применяющие компоненты несколькихпрограмм [12].
ВExcel существует возможность создавать собственные макросы и таким образомавтоматизировать выполнение основных операций. Макрос представляет собойпоследовательность команд и функций, записанных в модуле VBA. Насколькосложными могут быть макросы, можно судить по входящим в пакет поставки Excelнадстройкам, при создании которых использовались средства макропрограммирования.
Существуетдва способа создания макроса: записывать свои действия во время работы с листомExcel или же написать макрос, используя редактор Visual Basic.
Наиболеепростым способом создания макрокоманды является ее запись с помощьюмакрорекордера, и для этого вовсе не нужны глубокие знания по программированию.Работа макрорекордера во многом напоминает работу обычного магнитофона,осуществляющего запись и воспроизведение звука. Макрорекордер протоколирует всевыполняемые пользователем действия и представляет их в виде VBA-кода.
Однакоследует помнить, что «собственноручно написанные макросы позволяют создаватьгораздо более мощные и гибкие программы, чем макросы, записываемыми с помощьюмакрорекордера, но, конечно, записать макрос гораздо проще, чем создать егопрограммный код [10].
Процессзаписи макроса с помощью макрорекордера можно условно разбить на три следующихэтапа:
– запуск макрорекордера;
– присвоение макросу имени;
– выполнение записываемых операций;
– завершение записи.
РедактированиеVBA-модулей выполняется в среде Visual Basic for Applications, в которойпользователю предоставляются средства для разработки программ, анализа связеймежду объектами (VBA является объектно-ориентированным языкомпрограммирования), отладки программ и их организации в единый программныйкомплекс (проект).
В VBAтекст макроса оформляется в виде процедуры Sub. Данная процедура создается наоснове событий (таковым может быть, например, изменение размера окна или щелчокна кнопке) и методов. Каждому событию поставлены в соответствие методы, которыезадают необходимость выполнения определенных операций при наступлении данногособытия. Так, при щелчке на ярлычке рабочего листа событием является изменениеактивного листа. Благодаря связанному с этим событием методу лист, на ярлычкекоторого был произведен щелчок, активизируется и отображается на переднемплане. В зависимости от типа активизированного листа изменяются и некоторыекоманды меню. В VBA пользователь может задавать собственные события и ставитьим в соответствие методы.
Visual Basic для приложений
VisualBasic для приложений — это объектно-ориентированный язык макропрограммированиявысокого уровня, встроенный во все программы пакета Office 2003. Включение в указанныйпакет современного полнофункционального языка программирования, инструментовдля написания на нем программ, их редактирования и отладки, а также обширныхбиблиотек стандартных программ позволяет создавать программные продукты,способные с достаточной полнотой автоматизировать решение конкретных задачпользователя.
Основные понятия языкаVisual Basic for Applications.
VBAявляется объектно-ориентированной средой, содержащей большой набор объектов,каждый из которых обладает множеством свойств и методов. Количество этихобъектов может напугать новичка, но, к счастью, для того чтобы начать работать,знать их всех вовсе не обязательно. Сам объект и все инструменты, необходимыедля его создания, отображения или, скажем, уничтожения, относятся к определенномуклассу. Имя класса указывает на тип объектов, которые он содержит. Классы можнорассматривать как основу для создания других объектов этого же типа. Поэтомувсе объекты одного класса, например класса TextBox, будут «действовать»одинаково. В других языках программирования вы можете сгруппировать связанныедруг с другом данные и ссылаться на них, используя общее имя, предположимEmployees или Рroducts, но в соответствии с объектно-ориентированной методологиейкласс обязательно должен включать в себя и исполняемый программный код.
Свойстваи методы являются членами класса. С помощью свойств описывается, как выглядитобъект, в частности дается информация о приемах форматирования текста, цвете иразмере шрифта. Методы являются процедурами, или, другими словами, множествомосуществляющих определенную задачу операторов, которые могут быть выполнены дляобъекта (процедуры создания и удаления объекта, процедуры событий, определяющиепринцип взаимодействия объекта с пользователем, и т. д.) [12].
Объекты
Приобъектно-ориентированном программировании практически все компоненты средыразработки являются объектами. В Excel VBA-объектом считается любой элементприложения — ячейка, лист, рабочая книга, диаграмма. Фактически объектомявляется и само приложение Excel. Объекты могут включать области ячеек, рамкиячеек, окна, сценарии, стили, и этот список можно продолжить. Каждый классобъектов имеет свое множество свойств, функций и событий.
Когдавы добавляете объект на рабочий лист, создается экземпляр класса объектов, иобъекту присваиваются те значения свойств, которые определены в этом классе. Поумолчанию экземпляры одного и того ж класса имеют имя, которое состоит из имениродительского класса и порядкового номера. Свойства каждого экземпляра одного итого же класса инициализируются одними и теми же значениями, за исключениемсвойства Name. Так как VBA присваивает значения всем элементам, которые в этомнуждаются, пользователю действительно не нужно много знать, чтобы начатьработать в данной среде.
Свойства
Свойствоявляется атрибутом объекта, описывающим, как объект выглядит (его цвет, размери местоположение) и как он действует (является ли видимым, ссылается ли надругой объект). Когда вы создаете объект, Excel выполняет процедуру созданияэкземпляра этого объекта. Данная процедура, хранимая в классе объектов,присваивает значения всем свойствам, что позволяет вам сразу же работать собъектом. Если вы захотите изменить несколько свойств, то обнаружите, что вбольшинстве своем они заданы именно так, как вам нужно, поэтому вноситьизменения вам не придется. Для того чтобы в макросе VBA присвоить свойствуновое значение, необходимо лишь создать оператор присваивания, в котором слеваот знака равенства будут указаны имя и свойство объекта (разделенные точкой), асправа — новое значение. К примеру, указанный ниже оператор заменит присвоенноепо умолчанию имя листа Sheetl именем Accounts (Счета):
SheetI.Name-«Accounts»
Свойстволиста Name отображается на его ярлычке. Причем данное свойство входит также вомножество других классов.
Методы
Метод— это действие, котороеможет быть выполнено над объектом. Методы реализуются посредством выполненияпроцедуры, которая является членом класса объектов. Синтаксис вызова методатаков; имя объекта и имя метода, разделенные точкой. К примеру, для того чтобыиспользовать метод Protect для защиты объекта Sheetl от внесения изменений, вамследует ввести такую команду:
Sheetl.Protect
События
Всякийраз, когда пользователь взаимодействует с определенным объектом на рабочемлисте, совершается событие. Каждый класс объектов имеет собственную группусобытий, на которые объекты данного класса реагируют. Так, рабочая книга имеетсобытие NewSheet, которое выполняется всякий раз, когда пользователь добавляетв нее новый лист; событие SelectionChange происходит при выборе пользователемдругой ячейки или области ячеек. При создании процедуры события Excelавтоматически добавляет в ее код первую и последнюю строки; при желании выможете самостоятельно написать программу для обработки события, на которое должныреагировать объекты.
Взаимодействие объектов, свойств и методов
Когдавы создаете лист в рабочей книге, функцией-членом в классе Worksheet создаетсяобъект Worksheet. Значения свойств нового объекта присваиваются по умолчанию(например, значение свойства Name, объект стиля ссылок А1 или R1C1), и с объектомможно сразу же работать. К этому объекту можно применить любой из встроенных вкласс методов, таких как Printout или Save, и создать программу реагирования натакие события, как SheetCaleulate или, скажем, Open.
Использование свойств и методов, возвращающих объекты
Еслисвойство или метод возвращает объект, то доступ к свойствам и методам этогообъекта можно получить лишь после указания его имени. В качестве примерарассмотрим такую строку программы:
Workbooks{«Bookl»).ActlveSheet.Name= «Expenses»
МетодWorkbooks(«Bookl»).ActiveSheet возвращает объект Worksheet, который содержит активную на данный момент таблицу, находящуюся в рабочейкниге Bookl. Свойство Name является свойством объекта Worksheet, а не объектаActiveSheet. Так как лист Sheetl считается активным, то этот оператор присваиванияэквивалентен следующему:
Sheetl.Name=«Expenses»
Первыйоператор является более общим, так как дает возможность присвоить новое имялюбому активному листу, в то время как второй оператор однозначно выбираетрабочий лист Sheetl и присваивает ему имя вне зависимости от того, активен онили нет.
СвойствоActiveCel1 возвращает объект Range — одну или несколько ячеек, обращение ккоторым необходимо произвести одновременно. Это свойство является членомклассов Application (активное приложение, в данном случае — Excel) и Window(активное окно) и возвращает область ячеек, которая содержит активную ячейку,находящуюся в активном окне активного приложения. Вот как это выглядит в коде:
Application.ActlveWlndow.ActiveCell.Borders.Color= vbRed
Таккак в каждый момент времени активной может быть только одна ячейка, то свойстваActlveCell объектов Application и Window ссылаются на одну и ту же областьячеек. Таким образом, этот оператор можно переписать по-другому — так:
ActiveWindow.ActiveCell. Borders. Color = vbRed
или так:
Application.ActiveCell.Borders.Color = vbRed
А всвязи с тем, что возвращаемый объект Range определяется однозначно, операторможно переписать и следующим образом:
ActiveCell.Borders.Color– vbRed
СвойствоBorders тоже относится к числу свойств, возвращающих объект. Часть оператораActlveCellBorders возвращает объект Border (рамку области ячеек), а затемсвойству Color (цвет) этого объекта присваивает значение red (красный). Префиксvb, предшествующий значению red, указывает на то, что это значение являетсяконстантой Visual Basic, в отличие от переменных, которые нужно описывать впрограмме.
Объект,возвращаемый свойством ActiveCell, — это объект Range. Таким образом, свойствоBorders задает прямоугольную рамку вокруг группы ячеек, определенных в объектеRange.
Оператор Application.ActiveWIndow.ActiveCell.Borders.Color = vbRed
станетболее понятным, если прочитать его справа налево: «Цвет расположенной в активномокне приложения рамки области ячеек, которая содержит активную ячейку,становится красным [10].
Области в Excel — объекты VBA
ОбъектыRange определяют ячейки или области ячеек, которым можно присваивать значения,записывать в них формулы и с которыми можно работать вручную. В частности,действие оператора ActiveCell.Borders.Color = vbRed эквивалентно команде Cells(Ячейки) меню Format (Формат) и изменению значения в поле Color (Цвет) вкладкиBorder (Граница) диалогового окна Format Cells (Формат ячеек).
Крометого, существует свойство Range, которое возвращает объект Range. Данноесвойство позволяет использовать ссылку на ячейку или область ячеек, обращаясь кней как к аргументу. Правда, здесь имеется одно ограничение: ссылки должнызаписываться с применением относительной или абсолютной адресации только встиле А1:
Range(Al”)
Range(“$ASl”)
СвойствоRange возвращает объект Range, поэтому все свойства и методы, связанные с этимобъектом, могут быть установлены посредством данного свойства. Свойство Range такжеможет использоваться для возвращения объекта Range, который применяет ссылку наячейку А1 (свойство Value возвращает значение ячейки А1):
Range(‘Al”).Value
Еслиячейка А2 содержит формулу, то результат можно вычислить, воспользовавшисьметодом Calculate объекта Range, который возвращает свойство Range:
Range(«A2»).Calculate
Крометого, воспользовавшись свойством Range, можно получить доступ к несмежнымобластям ячеек, а затем посредством одного оператора присвоить значение всемячейкам. Это особенно удобно, если нужно присвоить всем ячейкам одинаковоезначение:
Range(«A3:B5.C3:D8»).Value= 0
СвойствоRange также можно использовать с двумя аргументами, которые указывают наячейки, находящиеся в разных углах области ячеек, расположенных на однойдиагонали. В частности приведенный ниже оператор выбирает ячейки области А1: С4:
Workbooks(«Bookl»).Sheets(«Sheetl»)Range{‘Al”,«C4»}.Select
Процедуры и функции VBA
В VBA поддерживаетсяследующая программная структура. На высшем уровне иерархии стоит приложение, далееидут проекты, связанные с фактическими документами этого приложения. На третьемуровне находятся модули (модули приложения, модули пользователя, модули класса,модули форм и модули ссылок), а на последнем — их процедуры и функции. Схематическитакая иерархия показана на рисунке 1.1 [12].
/>
Рисунок 1.1 – Программная структура в VBA
Модуль— это часть программы,оформленная в виде, допускающем ее независимую трансляцию. Модуль состоит издвух разделов: раздела объявлений (Declaration) и раздела процедур и функций. Впервом разделе описываются глобальные переменные, типы, определенныепользователем, и перечисляемые типы, во втором — процедуры и функции. Вы ужезнаете, как создаются и используются макросы. Все они сохраняются в документахили шаблонах программ Office 2003 в виде процедур, написанных на языке VBA. Процедуройназывается фрагмент кода (минимальная семантически законченная программнаяконструкция), заключенный между операторами Sub и End Sub. Синтаксис процедурыследующий:
[Private | Public | Friend] [Static] Sub имя_процедуры(аргунент_1, аргумент_2.… аргумент_n)
…
End Sub
Синтаксисфункций несколько отличается от синтаксиса процедур, так как для функциинеобходимо указать тип возвращаемого ею значения:
[Private| Public | Friend] [Static] Function имя_функции (аргумент_1, аргумент__2, …
аргумент_n Asтип_возвращаемого_значения
…
имя — вычисленное_значение
…
End Function
Ключевоеслово Private задает следующую область видимости для процедуры — модуль, вкотором она описана. Значит, ее могут вызывать только процедуры этого жемодуля. Ключевое слово Public, наоборот, объявляет процедуру доступной для всехмодулей проекта. С помощью ключевого слова Friend процедура или функциястановится видимой только в том проекте, где был описан класс, членом которогоона является. По умолчанию любая процедура общедоступна, то есть имеет статусPublic. За операторами объявления следует необязательное ключевое слово Static,объявляющее все локальные переменные статическими (что такое статическаяпеременная, объясняется ниже).
Выполнениепрограммного кода процедуры или функции происходит при передаче ей управления.Передача управления (вызов) может осуществляться различными способами. В общемслучае подпрограмма вызывается из программного кода с помощью специальногооператора Са11, в котором кроме данного ключевого слова указываются имяпроцедуры и фактические параметры вызова, список которых заключается в круглыескобки.
Оченьважную роль в программировании на VBA играет такая разновидность процедуры, какпроцедура без параметров. Процедуры данного типа могут выступать в роликомандных макросов и процедур обработки событий. Схема работы с команднымимакросами не отличается от традиционной схемы работы с макросами. Послесоздания подобного макроса с помощью редактора VBA ему можно назначитькомбинацию клавиш для вызова, сопоставить его с командой меню или кнопкой напанели инструментов. Процедуры обработки событий представляют собой основумеханизма связи событий с программным кодом для их обработки [8].
Функциив VBA, как правило, содержат списки параметров. Они не могут использоваться дляобработки событий или, скажем, в качестве программных макросов. Вызывать же ихможно как с помощью оператора Са11, так и непосредственно в процессе расчетазначения выражения VBA (из кода других процедур или функций) или формулырабочего листа Excel.
Какправило, программа на языке VBA состоит из нескольких процедур и функций.Описание этих программных единиц хранится в модулях. Модули, в свою очередь,как составные части входят в проекты. Проекты сохраняются в файлах рабочих книгExcel 2003, но работать с ними можно лишь при наличии отдельного приложения —редактора Visual Basic. Если нужно вызвать процедуру или функцию, описаниекоторой находится в другом модуле, ее имя при вызове указывается следующимобразом: имя_модуля.имя_процедуры. Но если описание процедуры или функциисодержится в другом проекте, при ее вызове следует использовать иной синтаксис:имя_проекта. имя_модуля. имя_процедуры.
Переменные в VBA
Описанныев процедурах VBA действия выполняются над переменными или объектами. Переменная— это поименованная область памяти, которая используется для хранения данных втечение работы процедуры. Переменные VBA аналогичны переменным других языковпрограммирования. Использованию переменной обычно предшествует ее объявлениепосредством оператора D1 т, в котором указываются имя переменной и тип данных,для хранения значений которого она предназначена. Хотя такой оператор неявляется обязательным (VBA способен определять тип данных переменной попоследнему символу ее имени: !, #, $, %, &, @), тем не менее, хороший стильпрограммирования требует предварительного описания всех используемыхпеременных. Имена переменных могут иметь длину до 255 символов (используются исимволы кириллицы) и не должны содержать пробелов, знаков препинания иперечисленных выше специальных символов (за исключением символа @). Они немогут совпадать с ключевыми словами VBA и именами стандартных объектов.
Управляющие конструкции VBA
Управляющиеконструкции языкапрограммирования — это инструкции и группы инструкций, применение которыхпозволяет изменять по мере необходимости последовательность выполнения другихинструкций программы. В современных языках программирования управляющие конструкцииподразделяются на ветвления и циклы. Ветвлением называется управляющая конструкция,позволяющая пропускать при выполнении те или иные группы инструкций взависимости от значения условия (If…Else, If…Then…Else,If…Then…ElseIf…Else и Select Case).
Цикл — это управляющая конструкция,предоставляющая возможность многократно выполнять группы инструкций, донаступления какого-либо события.
КонструкцияIf…Then
КонструкцияIf…Then дает VBA указание принять простейшее из решений: если условие Ifистинно, нужно выполнить следующий за ним оператор (или операторы); если жеусловие ложно, нужно прейти к строке, расположенной непосредственно за условнойконструкцией. Данная конструкция может располагаться как в одной, так и внескольких строках. Однострочная конструкция If…Then выглядит так:
If условие Thenоператор[ы]
Еслиусловие выполняется, VBA обрабатывает оператор или операторы, которые следуютза условием; в противном случае эти операторы пропускаются. КонструкцияIf…Then, занимающая несколько строк (известна также как блок If), выглядитследующим образом:
If условие Then
оператор
[операторы]
End If
Еслиусловие истинно, VBA, опять-таки, выполняет оператор или операторы, а впротивном случае передает управление строке, расположенной под строкой End If.
КонструкцияIf…Then…Else
КонструкцияIf …Then — прекрасный инструмент для выполнения одного действия, зависящего отусловия. Но если приходится выбирать одно из двух возможных направлений, вкоторых будут производиться действия, следует воспользоваться конструкциейIf…Then…Else. С помощью этой конструкции выбирается одно направлениедеятельности, если условие истинно, и другое, если оно ложно.
Например,конструкция If…Then…Else является очень удобным инструментом для работы сокнами сообщений, содержащими по две кнопки.
Синтаксисрассматриваемой конструкции таков:
If условие Then
операторы_1.
Else
операторы_2
End If
Еслиусловие истинно, VBA выполняет первую группу операторов — onepaторы_1, но еслиусловие ложно, осуществляется переход к строке Else, а затем выполняется втораягруппа операторов — операторы_2 [12].
КонструкцияSelect Case
Вместонескольких операторов Elself можно применить конструкцию Select Case, котораяпозволит представить ту же задачу принятия решения в виде более сжатой иэффективной программы.
КонструкциюSelect Case рекомендуется использовать в том случае, если решение, котороенужно принять в программе, зависит от одной переменной иди от выражения,имеющего не менее трех-четырех значений. Такая переменная (или выражение)называется тестируемым случаем.
КонструкциюSelect Case легче читать, чем сложные операторы If …Then, главным образом потому,что она более компактна. Кроме того, в нее легче вносить изменения: когда нужноизменить одно или несколько используемых значений, приходится просматриватьменьшее количество операторов. Синтаксис оператора Select Case таков:
Select Caseпроверяемое_выражение
Case выражение_1
операторы_1
[Caseвыражение_2
операторы_2]
[Case Else
операторы]
End Select
На первый взгляд данный синтаксис можетпоказаться сложным, но это не так. Оператор Select Case начинает конструкцию, аоператор End Select завершает ее. Проверяемое выражение определяет, какой изоператоров Case будет выполнен, а выражение_1, выражение_2 и т. д. — это тевыражения, с которыми VBA сравнивает проверяемое. Предположим, необходимо проверить,кнопку с каким номером выбрал пользователь в диалоговом окне или в форме.Значит, проверяемое выражение будет связано с событием выбора кнопки. Если этопервая кнопка, значение проверяемого выражения совпадет с выражением_1. В такомслучае будут выполнены операторы, находящиеся в строках, следующих за операторомCase выражение_1. Если это вторая кнопка, то значение проверяемого выражениясовпадет с выражением_2, а следовательно, будут выполнены операторы,расположенные в строках, следующих за оператором Case выражение_2. То же можносказать и об остальных операторах Case. Оператор Case Else подобен ключевомуслову Else в операторе If. Он представляет собой необязательный оператор,который, будучи указанным, выполняется в тех случаях, когда ни одно изпредложенных выражений не подходит.
3 РАЗРАБОТКА ИМИТАЦИОННОЙ МОДЕЛИ автоматизированногоучастка обработки деталей 3.1 Концептуальная модель
Для реализации ИМ предлагается рассмотретьфункционирование автоматизированного участка обработки деталей, состоящего извходного конвейера, транспортного робота и двух станков для обработки деталей.Транспортный робот выполняет весь цикл переноски деталей двух типов на дваразличных станка. Каждая деталь в зависимости от типа переноситься разноеколичество времени, т.к. обслуживающие их станки находятся на разном расстоянииот входного конвейера. Детали могут образовывать очереди как перед перевозкойна транспортном роботе, так и перед обработкой на станках. После переноскидеталей и последующей их обработки детали поступают на выходной конвейер(рисунок 2.1).
/>
Рисунок 2.1 – Структурная схема объекта моделирования
Цель моделирования:
Изучение влиянияинтенсивности поступления деталей на загрузку транспортного робота и станковобработки.
1 Декомпозиция сложной системы.
Декомпозиция системы осуществляется просто: отдельными элементами моделибудут очереди, транспортный робот, станки (в дальнейшем этапы обработки).
2 Выбор параметров и переменных.
В качестве параметров системы будет интенсивность поступления деталей натранспортировку и обработку на станках (/>) (/>).
Переменными модели системы являются функция распределения длительностиперевозки или обработки детали на i-том этапе />.
В качестве статистик моделирования будут выступать:
– – коэффициенты загрузки этапов обработки (/>);
– – количество обработанных деталей на автоматизированном участке (/>) и на i-мэтапе обработки (/>);
– – размер очереди к каждому этапу обработки (/>);
– – общее время обработки деталей на i-омучастке обработки (/>).
3 Уточнение критериев эффективности.
Так как структура модели проста, то в качестве критериев эффективностимогут выступать коэффициент загруженности этапов обработки (/>) и среднее значение времён обработкидеталей (/>).
В результате имитационного моделирования нужно найти следующие функциональныезависимости: /> и />.
4 Аппроксимация реальных процессов математическими величинами.
При задании функций распределения /> длительность обработки детали на i-омэтапе обработки достаточна аппроксимация ступенчатыми функциями.
5 Выдвижение гипотез и предположений.
Выдвигаем гипотезу, что /> и/> имеют вид полиномов,порядок и значение коэффициентов, которых необходимо определить в ходеимитационных экспериментов.
6 Установление основной структуры моделирования.
С помощью таких эмпирических зависимостей можно предсказывать характеристикизагрузки этапов обработки (/>)и времена обработки деталей на этапе обработки (/>) в зависимости от изменяющихся характеристиквходного потока деталей (/>)при заданных /> [1]. 3.2 Формальное описание модели Алгоритм активностей
Активность поступления деталей
1 Поиск места для детали:
‘Ищется местодля детали. Либо новая строка, либо на место ушедшей.
i =2
WhileCells(i, 1).Value > 0
i =i + 1
Wend
Cells(i,1).Value = ModelTime
lsum= lsum + (ModelTime — tlprev) * l
l =l + 1
tlprev= ModelTime
2 Генерация поступления и определение типа детали
‘Генерируемпоступление деталей в зависимости от параметров табличного распределения иопределяем тип детали в зависимости от значения параметра равномерногораспределения.
tActions(0)= tActions(0) + RndN1(k, min, max, v)
IftActions(0) > tRun Then
tActions(0) = TBIG
EndIf
i =2
WhileWorksheets(«Elements»).Cells(i, 2).Value > “”
i= i + 1
Wend
Sheets(«Elements»).Select
det= RndP(Rp)
Ifdet = 1 Then
Cells(i, 2) = 1
Else
Cells(i, 2) = 2
End If
Активность перевозки детали
1 Поиск первой детали в очереди
‘найти первуюдеталь в очереди, т.е. с минимальным значением в столбце 1 листа Elements
last= Range(«A30000»).End(xlUp).Row
tinmin= TBIG
Fori = 2 To last
If(Cells(i, 3).Value = “”) And (Cells(i, 1).Value > 0) And (Cells(i,1).Value
inmin = Cells(i, 1).Value
imin = i
End If
Nexti
lsum= lsum + (ModelTime — tlprev) * l
l =l — 1
tlprev= ModelTime
2 Перевозка детали транспортным роботом
‘присвоениесостоянию робота значение 1, т.е. робот занят
‘началоперевозки детали роботом
state = 1
tkprev= ModelTime
tActions(1)= ModelTime
Cells(imin,3) = tActions(1)
IfCells(imin, 2) = 1 Then
tActions(2) = tActions(1) + Tdown
Else
tActions(3) = tActions(1) + Tup
EndIf
‘окончаниеперевозки детали роботом, в зависимости от типа детали на перевозкузатрачивается различное количество времени
‘если тип детали 1
If(tActions(2)
ksum = ksum + (ModelTime — tkprev)
tkprev = ModelTime
l1 = l1 + 1 ‘увелечение очереди на 1 к первому станку
Cells(imin, 4)= tActions(2) ‘окончание перевозки детали роботом
tActions(1) = tActions(2) + Tdown ‘возвращение роботаот первого станка
tActions(2) = TBIG
EndIf
‘если тип детали 1
If(tActions(3)
ksum = ksum + (ModelTime — tkprev)
tkprev = ModelTime
l2 = l2 + 1 ‘увелечение очереди на 1 ко второму станку
Cells(imin, 4) = tActions(3) ‘окончаниеперевозки детали роботом
tActions(1) = tActions(3) + Tup ‘возвращение роботаот второго станка
tActions(3) = TBIG
End If
‘изменениесостояния робота на 0, т.е. незанет
If(state = 1) And (tActions(1)
state = 0
tActions(1) = TBIG
End If
Активность начала обработки детали на станке
‘обработка деталипервого типа
If (state1 = 0 And l1 > 0) Then
‘найти первуюдеталь в очереди, т.е. с минимальным значением в столбце 4 листа Elements
last = Range(«D30000»).End(xlUp).Row
tinmin = TBIG
For i = 2 To last
If (Cells(i, 5).Value = “”) And (Cells(i, 2) = 1) And
(Cells(i, 1).Value > 0) And (Cells(i, 1).Value
tinmin = Cells(i, 1).Value
imin1 = i
End If
Next i
i1= 1
state1 = 1 ‘станок занят
l1 = l1 – 1 ‘уменьшениеочереди к станку на 1
If ModelTime > Cells(imin1, 4) Then
tActions(4) = ModelTime
Else
tActions(4) = Cells(imin1, 4)
End If
Cells(imin1, 5) = tActions(4)
tActions(6) = tActions(4)+ one ‘время обработки детали типа на станке
End If
обработка деталивторого типа
If (state2 = 0And l2 > 0) Then
‘найти первуюдеталь в очереди, т.е. с минимальным значением в столбце 4 листа Elements
last = Range(«D30000»).End(xlUp).Row
tinmin = TBIG
For i = 2 To last
If (Cells(i, 5).Value = “”) And (Cells(i, 2) = 2) And
(Cells(i, 1).Value > 0) And (Cells(i, 1).Value
tinmin = Cells(i, 1).Value
imin2 = i
End If
Next i
i2= 0
state2 = 1
l2= l2 — 1
IfModelTime > Cells(imin2, 4) Then
tActions(5) = ModelTime
Else
tActions(5) = Cells(imin2, 4)
End If
Cells(imin2, 5) = tActions(5)
tActions(7) = tActions(5) + two
End If
Активность окончания обработки детали на станке
‘окончаниеобработка детали первого типа
If (tActions(6)
NextModelTime =False
‘откорректироватьзначения для среднего времени пребывания детали в системе
Nb =Nb + 1
tbuysum= tbuysum + (ModelTime — Cells(imin1, 1).Value)
Ifi1 = 1 Then
state1 = 0
EndIf
Cells(imin1,6) = tActions(6)
tActions(6)= TBIG
EndIf
‘окончаниеобработка детали второго типа
If (tActions(7)
NextModelTime = False
‘откорректироватьзначения для среднего времени пребывания детали в системе
Nb = Nb + 1
tbuysum = tbuysum + (ModelTime — Cells(imin2, 1).Value)
Ifi2 = 0 Then
state2 = 0
End If
Cells(imin2, 6) = tActions(7)
tActions(7) = TBIG
Call Trace(«Finish», imin2)
End If
4 ВЕРИФИКАЦИЯ ИМИТАЦИОННОЙ МОДЕЛИ4.1 Контроль за выполнением порядка активностей
Порядок выполненияактивностей рассмотрим на примере одной детали при первом прогоне. Arrival, Begin, Processing, Finish – это активности. В первойактивности происходит генерация деталей. Первая активность появляется согласнозакону нормального табличного распределения с параметрами k, min, max, v(i), где i=/>. Поэтому первая активностьпоявляется случайным образом. На рисунке 4.1 видно, что деталь после ее появления начинают обрабатыватьво второй, третьей, а затем и в четвертой активности.
/>
Рисунок 4.1 — Изменение откликов на листе Trace