Подобный вид моделирования весьма широко распространен и в настоящее время


Download 1.49 Mb.
bet8/21
Sana25.04.2023
Hajmi1.49 Mb.
#1397602
1   ...   4   5   6   7   8   9   10   11   ...   21
Bog'liq
Лекции

2.4. Построение компьютерной модели

Итак, математическая модель построена, и теперь нужно написать реализующую ее программу.


На исторически ранних этапах компьютерного моделирования эти программы создавались либо на языках программирования «высокого уровня» (Фортране, Алголе), либо даже на языке Ассемблера. Код на Ассемблере давал иногда очень серьезный выигрыш в быстродействии. ЭВМ того периода выполняли всего лишь десятки и сотни тысяч операций в секунду, а не сотни миллионов, как современные настольные компьютеры, поэтому стоило бороться за оптимальное выполнение каждой «машинной» команды. Традиционным языком программирования для построения компьютерных моделей являлся все же Фортран. Практически все стандартные библиотеки численных методов и функций, составлявшие основу всех моделей, и по сей день пишутся на Фортране. Применявшаяся в те годы технология программирования требовала на создание моделей очень много времени.
Начиная с 1960-х гг. было разработано множество систем или пакетов моделирования, автоматизирующих прежде всего этот этап. В системе автоматизации моделирования (далее просто «система моделирования») математическая модель записывается на некотором формальном входном языке моделирования и затем автоматически, с помощью соответствующего транслятора, переводится на язык, понятный компьютеру. Часто в качестве промежуточного используется какой-нибудь универсальный язык программирования (Fortran, Algol, C, Pascal, Java и др.). В этом случае трансляция производится в два этапа: на первом этапе описание на языке моделирования транслируется в промежуточный текст на языке программирования, а на втором этапе этот текст компилируется каким-либо компилятором языка программирования, написанным для конкретной операционной системы и компьютера. В моделирующую программу помимо сгенерированного кода, необходимого для реализации конкретной модели, автоматически включают уже готовые модули поддержки периода исполнения, предоставляемые системой моделирования (механизм продвижения модельного времени, численные библиотеки, графические функции). Система моделирования должна также автоматически переводить входные данные модели, записанные в форме, удобной для анализа человеком, в машинную форму представления и аналогичную операцию производить над выходными данными в машинной форме. Иными словами, интерпретировать входные и выходные данные, чтобы облегчить работу проектировщику.
С точки зрения пользователя современных пакетов, построение компьютерной модели сводится в основном к переводу описания модели с языка математики на входной язык используемой системы и к выбору численного метода из имеющихся для получения требуемого решения.
Перевод исходного описания на язык моделирования осуществляется доста­точно просто. Современные системы имеют дружественный графический интерфейс и входной язык, очень близкий к «традиционному математическому». Например, в пакете Model Vision Studium для того, чтобы создать описание модели маятника на языке MVL по исходному математическому, нужно дополнительно объявить используемые переменные, задать необходимые начальные значения и практически в неизмененном виде переписать имеющиеся уравнения движения. Пользователям пакета Simulink придется выполнить больше дополнительной работы и «собрать» эти уравнения из стандартных звеньев, таких как «интегратор», «сумматор» и «усилитель». В результате, какое бы описание мы не использовали, пакетом автоматически создается моделирующая программа, соответствующая введенной математической модели, и, надо отметить, что в большинстве случаев это делается без ошибок.
В то же время выбор численного метода может стать источником многих проблем, начиная от неэффективности вычислений и кончая получением неверных результатов. Проблема создания и автоматического выбора численного метода, гарантирующего либо построение решения с заданной точностью, либо обнаружение причин, не позволяющих это сделать, остается нерешенной.

2.5. Оценка адекватности модели


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


В результате проведения этих экспериментов выявляются ошибки и неточности математической модели. Если ваш маятник без внешнего возмущения начинает вдруг крутиться вокруг оси с увеличивающейся скоростью, то это, скорее всего, означает, что вы ошиблись при написании уравнений, например, неправильно выбрали знаки у соответствующих коэффициентов. Неточность в демонстрируемом поведении также может означать, что не учтен какой-нибудь существенный фактор. Например, может выясниться, что для целей вашего исследования учет сопротивления воздуха – ненужная роскошь, а вот растяжимость стержня необходимо учитывать. После внесения исправлений придется повторить все эксперименты с моделью заново. Современные системы моделирования позволяют совершать эти многократно повторяющиеся действия достаточно быстро.
Значительно сложнее вопрос о степени доверия к численному решению. Процедура выбора и настройки численного метода для решения конкретной системы уравнений требует специальных знаний и навыков и во многом зависит от свойств исследуемой системы. Как правило, пользователь получает представление о свойствах модели только после первых экспериментов с ней. Неудачно выбранный численный метод, как ошибки в модели, может привести даже к качественно неверным результатам и порой бывает очень сложно определить действительно ли наблюдаемое поведение присуще модели, или это результат ошибок. Опыт разработчиков пакетов моделирования говорит о том, что большинство пользователей всегда пользуется методами, установленными авторами пакета по умолчанию. Следовательно, этот «метод по умолчанию» должен обладать свойствами автоматического решателя, безошибочного "автомата", и пытаться либо найти решение с заданной точностью (пусть медленно и неэффективно) для максимально широкого спектра моделей, либо диагностировать причины возникающего "отказа".

2.6. Исследование модели


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


Естественно, что в большинстве случаев одного опыта или однократного прогона модели окажется недостаточным для достижения искомого результата. Например, для того, чтобы найти параметрическую зависимость времени затухания амплитуды колебаний маятника на пятьдесят процентов от исходного значения как функцию от плотности воздуха придется выполнить серию прогонов с различными значениями плотности.
Еще одной типовой задачей исследования является параметрическая оптимизация. При решении этой задачи для вычисления целевой функции также используется отдельный прогон модели. Например, мы хотим найти угол бросания, при котором материальная точка, брошенная под углом к горизонту, падает максимально далеко. Целевой функцией этой задачи является значение горизонтальной координаты в момент падения (определяется дискретным событием – пересечением вертикальной координатой нуля сверху). Алгоритм оптимизации задает некоторое значение угла, выполняет прогон модели до дискретного события «падение», замеряет координату точки падения, определяет новое значение угла и повторяет эти операции многократно пока не найдет оптимальную точку.
Наконец, отдельной задачей является нахождение особых значений коэффициентов уравнений модели, качественно меняющих характер ее поведения. Такие исследования обычно проводят, когда хотят выяснить, насколько рабочий режим «далек» от аварийного.
Успех исследования во многом зависит от возможности автоматизировать вычислительный эксперимент. Современные пакеты моделирования организуют его, опираясь на концепцию виртуального стенда. Вычислительный эксперимент можно трактовать как работу на виртуальном испытательном стенде, где размещаются блоки моделируемой системы, а также виртуальная «измерительная аппаратура» (всякого рода индикаторы, «осциллографы» и «самописцы»), только вместо блоков и кабелей «в металле» пользователь имеет дело с прямоугольниками и линиями на экране дисплея.

3. ДИНАМИЧЕСКАЯ СИСТЕМА. ОСНОВНЫЕ ПОДХОДЫ



Download 1.49 Mb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   ...   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling