Построение алгоритмической модели и ее реализация на эвм
Этот этап выполняется в следующей последовательности [161,163]:
1) разработка алгоритма (программы) моделирования на одном из языков описания алгоритмов (например, в виде структурной схемы);
2) программирование с использованием конкретных программно-технических средств;
3) трансляция или компиляция модели на машинный язык и подготовка дистрибутивного пакета.
Важной задачей, стоящей перед разработчиком при использовании моделирования в процессе проектирования, является подготовка алгоритмической модели. При решении этой задачи модель приводится к какой-либо стандартной структурной схеме дискретного процесса, а система уравнений — к дискретной форме, что позволяет использовать ЭВМ.
Совокупность алгоритмов, моделирующих элементы, с учетом алгоритмов их взаимодействия определяет исходный моделирующий алгоритм системы. При этом обычно разрабатывают моделирующий алгоритм так, чтобы получить оценки характеристик каждого элемента с максимальной или заданной точностью. Обычно стремление точнее описывать процессы в элементах сопровождается усложнением моделирующих алгоритмов, что приводит к увеличению времени счета одной реализации и при ограниченном времени, отведенном на моделирование,— к уменьшению числа реализаций на модели системы. Это в свою очередь сопровождается увеличением суммарных случайных ошибок оценки выходных показателей системы (из-за конечного числа реализаций на модели). Поиск компромиссного решения практически всегда связан с анализом допустимых упрощений как исходных алгоритмов элементов, так и алгоритмов их взаимодействия.
На этом этапе необходимо выбрать такие алгоритмы для реализации модели, которые бы обеспечивали заданные требования к точности и устойчивости модели. В частности, для динамических моделей это касается выбора метода решения системы обыкновенных дифференциальных уравнений, описывающих исследуемый процесс, и прежде всего – типа, порядка и шага интегрирования.
Применяют два типа методов интегрирования — явные(иначе экстраполяционные или методы, основанные на формулах интегрирования вперед) инеявные(интерполяционные, основанные на формулах интегрирования назад). Различия между ними удобно показать на примере простейших методов первого порядка — методов Эйлера [162].
Формула явного метода Эйлера представляет собой следующую формулу замены производных в точке:
где индекс равен номеру шага интегрирования; hn=tn+1-tn — размер шага интегрирования (обычноhnназывают просто шагом интегрирования). В форму ле неявного метода Эйлера использовано дифференцирование назад:
где hn=tn-tn-1.
Один из главных критериев при выборе метода – условия потери его устойчивости. Если происходит потеря устойчивости вычислений, то в решении задачи возникают ложные колебания с увеличивающейся от шага к шагу амплитудой и быстрым аварийным остановом ЭВМ вследствие переполнения разрядной сетки. Конечно, ни о какой адекватности решения говорить не приходится.
Для соблюдения устойчивости применяют те или иные алгоритмы автоматического выбора шага интегрирования. Однако в сложной модели процедура выбора шага по условию устойчивости слишком трудоемка.
Условие устойчивости накладывает жесткие ограничения на выбор шага интегрирования. В результате вычислительная эффективность явных методов резко падает с ухудшением обусловленности модели. Длительность моделируемого процесса должна быть соизмеримой с временем успокоения системы после возбуждающего воздействия, т. е. соизмерима с максимальной постоянной времени τmax. Требуемое число шагов интегрирования равно:
,
где τmin — минимальная постоянная времени моделируемой системы.
Отношение В=τmax/τmin называют разбросом постоянных времени или числом обусловленности. Чем больше это число, тем хуже обусловленность. Попытки применения явных методов к любым моделям чаще всего приводят к недопустимо низкой вычислительной эффективности, поскольку в реальных моделяхВ>105— обычная ситуация. Поэтому в настоящее время в универсальных программах анализа явные методы решения не применяют.
Неявный метод Эйлера обладает так называемой А-устойчивостью, т.е. его погрешность интегрирования остается ограниченной при любом шаге h>0. Применение А-устойчивых методов позволяет существенно уменьшить требуемые числа шагов. В этих методах шаг выбирается автоматически не из условий устойчивости, а только из соображений точности решения.
Выбор порядка метода решения системы довольно прост: во-первых, более высокий порядок обеспечивает более высокую точность (в методах р-го порядка погрешность наn-м шаге интегрирования оценивается старшим из отбрасываемых членов в разложении решенияХ(t)в ряд Тейлора); во-вторых, среди неявных разностных методов, кроме метода Эйлера, А-устойчивы также методы второго порядка и среди них — метод трапеций. Поэтому преобладающее распространение в программах анализа получили методы второго порядка — модификации метода трапеций.
Алгоритмы автоматического выбора шага основаны на сравнении расчетной и допустимой локальных погрешностей. Например, вводится некоторый диапазон (коридор) погрешностей, в пределах которого шаг сохраняется неизменным. Если же расчетная погрешность превышает верхнюю границу диапазона, то шаг уменьшается, если же выходит за нижнюю границу, то шаг увеличивается.
После того, как алгоритмы для реализации модели и их параметры выбраны, приступают к программированию с использованием конкретных программно-технических средств, т. е. построению машинной модели. На этом подэтапе сначала необходимо решить вопрос о том, какую вычислительную машину (ЭВМ, АВМ) и какое программное обеспечение целесообразно использовать для реализации модели системы. Выбор вычислительных средств может быть проведен и на предыдущих этапах, но рассматриваемый подэтап является последним, когда этот выбор должен быть сделан окончательно, так как в противном случае возникнут трудности в проведении дальнейших работ по реализации модели.
Далее составляют план выполнения работ по программированию. При использовании универсальной ЭВМ план должен включать в себя выбор языка (системы) программирования модели, указание типа ЭВМ и необходимых для моделирования устройств, оценку примерного объема необходимой оперативной и внешней памяти, ориентировочные затраты машинного времени на моделирование, предполагаемые затраты времени на программирование и отладку программы на ЭВМ.
После этого строят блок-схему программы, которая должна отражать разбиение модели на блоки, подблоки и т. д., особенности программирования модели, возможности тестирования программы, оценку затрат машинного времени, форму представления входных и выходных данных и др. При этом особое внимание должно быть уделено особенностям выбранного для реализации модели языка: алгоритмического языка общего назначения или языка моделирования.
Создание программы включает в себя создание на выбранном языке программирования необходимых подпрограмм и модулей, функций, процедур для реализации ранее созданной алгоритмической модели. Выбор языка программирования существенно влияет на объем работы – разные языки и среды программирования отличаются различным набором стандартных (встроенных) подпрограмм и функций. Чем богаче этот набор и чем более он соответствует логике алгоритма модели, тем проще написать программу и тем легче ее проверить и отладить.
Заметно повысить производительность программирования можно при использовании блочного (модульного) построения программы, позволяющего независимо вносить изменения в отдельные модули и повторно их использовать.
Трансляция модели должна выполняться с учетом той платформы, на которой будет использоваться моделирующая программа. Как правило, этот процесс полностью автоматизирован. Он также позволяет выявить синтаксические ошибки в программе.
Заключительным этапом создания программы является подготовка дистрибутивного пакета, включающего не только файл самой программы, но также и другие файлы, используемые ею, такие как библиотеки, файлы инициализации, базы данных и т.п. В частности, для интерпретируемых программ для запуска обязательно необходима программа-интерпретатор.
- Моделирование сложных систем
- Имитационное моделирование
- Элементы имитационной модели и методы ее построения
- Использование эвм при моделировании
- Этапы моделирования
- Анализ объекта исследования
- Построение математической модели
- Построение алгоритмической модели и ее реализация на эвм
- Исследование и проверка модели
- Использование и анализ результатов модели