akciya

Адекватность и универсальность математической модели

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

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

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

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

MODELeffective = (w1*A+ w2*B) / (w3 * Z ) , где

A - адекватность модели (включая область адекватности); B - универсальность модели; Z - затраты вычислительных ресурсов, необходимые для реализации модели; wi - соответствующие "веса" факторов.

Из представленного выражения следует:

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

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

Требования к адекватности

При создании математической модели КИТ очень важно добиться требуемого соответствия между поведением реальной системы и поведением модели. Для формализации оценки этого соответствия необходим механизм определения адекватности модели.

Модель считается адекватной, если отражает заданные свойства объекта с приемлемой точностью (точность определяется как степень совпадения значений выходных величин модели и объекта). В настоящее время применяются следующие способы определения адекватности:

  1. Экспертный метод.
  2. Экспериментальный метод результат единичного непосредственного измерения или результат статистической обработки нескольких измерений.
  3. Результат расчета на основе корреляционных зависимостей.
  4. Результат определения с помощью общих теорий на основе принятых допущений и аксиом (сравнение с данными "хорошо" себя зарекомендовавшей "похожей" модели).

Экспертный метод - назначение качественных, сравнительно-количественных или количественных показателей на основе их принятия или соглашения. Часто применяется для математических моделей, "имитирующих" поведение системы путем показа заранее подготовленных данных. Часто оценивается экспертами, имеющими опыт работы на имитируемом объекте, например, экспертный метод применялся для проверки имитатора "Компрессорный цех по перекачке газа".

Достоинства метода: не требует наличия метрического пакета, нет необходимости в проведении замеров (эксперимента), статистической обработки и т. д. Недостатки метода: субъективность оценки, значительная зависимость точности оценки от компетенции экспертов, большой риск обнаружения ошибок во время эксплуатации тренажера.

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

Результат расчета на основе корреляционных зависимостей, при наличии "очень похожих" моделей и их аппроксимаций или расчетов с помощью МКЭ (например COMSOL).

Результат определения с помощью общих теорий на основе принятых допущений и аксиом (сравнение с данными "хорошо" себя зарекомендовавшей "похожей" модели). Хорошо подходит для математических моделей, построенных на основе широко известных законов (закон Ома, Кирхгофа, Ньютона и т.д.).

Достоинства метода: объективность оценки. Недостатки метода: значительная зависимость от достоверности теоретического аппарата, высокая сложность при многофакторном анализе.

Для всех способов определения адекватности, кроме экспертного, необходима статистическая обработка данных, полученных с помощью модели и "эталонных" данных.

Если yi — выходная величина, рассчитанная с помощью модели, а действительная выходная величина того же i-го параметра объекта - xi, то относительная погрешность εi = (yi — xi)/xi.

Например, математическую модель кинематики станка качалки можно проверить с использованием сразу трех теорий кинематики СК — упрощенной, уточненной и точной.

 

Рисунок. Диаграмма скорости точки подвеса штанг от угла поворота кривошипа

Точность модели может изменятся, в зависимости от условий функционирования объекта, обусловленных разными внешними воздействиями (нагрузками, температурой внешней среды и др.) на моделируемый объект. Если задаться предельной допустимой погрешностью εпр, то в пространстве возможных изменений внешних воздействий на объект для принятых m условий его функционирования можно выделить область, в которой выполняется условие εм < εпр. Эту область называют областью адекватности модели.

Кроме того широкое распространение имеют:

  1. Среднее относительное отклонение.
  2. Максимальная относительная ошибка (отклонение).
  3. Средняя квадратичная ошибка.

Общим недостатком метода является субъективность «выборки» данных для сравнения, и, как следствие, отсутствие абсолютной уверенности в правильности работы модели, даже если "модельная" кривая достаточно близко проходит через экспериментальные точки.

Требования к экономичности модели

Реализация математической модели требует определенных вычислительных ресурсов, определяемых количеством машинного времени ТМ и объемом оперативной памяти ПМ, необходимой для реализации модели. В качестве меры обычно используется FLOPS (Floating point Operations Per Second) — величина, используемая для измерения производительности компьютеров, показывающая, сколько операций с плавающей запятой в секунду выполняет данная вычислительная система. Значение FLOPS, как отдельного компьютера, так и компьютерного кластера, можно рассчитать при помощи теста LINPACK, который основывается на решении определенного набора систем линейных алгебраических уравнений. Результат выполнения теста показывает значение производительности компьютера в FLOPS. В данной работе используется реализация теста LINPACK от Intel, доступная для скачивания по адресу http://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download/, http://ubuntuforums.org/showthread.php?t=1004406).

Экономичность модели по затратам памяти оценивается объемом оперативной памяти, необходимой для реализации модели. Поскольку тест LINPACK учитывает количество потребляемой памяти (задается размером задачи) - затраты памяти и ее характеристики также учитываются в тесте.

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

Рисунок. Увеличение GFLOPS\s центральных процессоров и GPU


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


Таблица.  Оценка производительности по тесту LINPACK различных процессоров и гибридных кластерных систем

ПроцессорOSGFlops\s
Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz GNU/Linux Ubuntu 9.10 x86_64 21,48
Pentium ® Dual-core CPU T4300 @ 2.10GHz GNU/Linux Ubuntu 9.10 x86_64 5,39
Intel Core i7 860 2.80 GHz (Lynnfield) GNU/Linux Ubuntu 9.10 x86_64 52,79
Celeron 1.200 GHz   2,09
dualcore atom 330 GNU/Linux Ubuntu 7.10 0,74
2 x Xeon X5365 3 GHz GNU/Linux Ubuntu 9.10 x86_64 58,84
intel q9550 3.604 GHz GNU/Linux Ubuntu 7.10 50,04
Nvidia Geforce GTX280 По материалам Nvidia 75
IBM xSeries 335 cluster (dual 3.06 Xeon w/InfiniBand) По материалам IBM 1389

Соответственно экономичность (C) определяется уравнением:

F = (FLOPS1/ FLOPS2max),

C= F/[24;60; 100;120 Hz],

если C>=1 - модель экономичная, C<1 - неэкономичная, теряется режим "реального времени" (24 - минимальное значение количества кадров в секунду, при котором глаз человека еще не замечает "подмены");

FLOPS1 - производительность компьютера (кластера) GFlops/s;

FLOPS2max - "пиковое" число операций, необходимое для реализации модели;

т. е. F - "математический" FPS показывает, сколько раз в секунду может быть просчитана модель. Если обеспечивать синхронизацию с видеосистемой, то значение F должно быть, в настоящее время, равно или больше 60.

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

Таблица. Оценка производительности по тесту LINPACK различных процессоров и гибридных кластерных систем

Функция \ операторFLOPSКоличество вызовов
+ - * / = 10 30
sin Min — 100 max - 1500 2
... ... ...

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

Экспериментальный способ реализуется с помощью оценки производительности компьютера тестом LINPACK (с правильно заданным размером задачи, для учета фактора памяти), затем, зная значение Gflops/s и произведя замер времени, потраченного на работу программной реализации математической модели, можно рассчитать количество Gflops/s, затраченное на расчет модели. Например:

Тест LINPACK показал производительность в FLOPS1 = 20 Gflops/s.

Замеры (многочисленные) времени выполнения математической модели составили t_i = 0.5 секунд ( i-номер замера).

FLOPS2max = max (FLOPS1*t_i) = 10 Gflops.

F = 20 \ 10 = 2, т.е. модель может быть просчитана только 2 раза в секунду.

C = 2 \ 60 = 1\30 < 1, т.е. данная модель неэкономичная, теряется режим "реального времени".

Также можно рассчитать минимально необходимые для "реального времени" Gflops/s и соответственно выбрать систему.

Следует отметить, что данный метод рекомендуется применять при финальной оценке тренажера, т.к. его результаты являются более объективными и учитывают влияние всех факторов (язык программирования, оптимизацию программ,задержки памяти и т.д.).

Примечание: если время выполнения модели слишком мало для точной оценки, можно порекомендовать выполнение этой модели в цикле например 10000 раз, и замерять общее время выполнения, затем разделить на 10000.

Для оптимизации математической модели можно применить профилирование, т.е. сбор характеристик работы программы во время ее выполнения, таких как время выполнения отдельных фрагментов (подпрограмм) и частота их вызовов. Таким образом, профилирование позволяет проанализировать программу, реализующую математическую модель и найти ее "узкое место" (функции и элементы функций, потребляющие наибольшие вычислительные ресурсы). Информация, полученная в результате профилирования, может быть представлена в виде таблицы или в виде графика вызовов (Call Graph). В дальнейшем эта информация может быть использована для оптимизации самой модели или ее реализации.


© Гаммер Максим Дмитриевич, 2012