Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Объектно-ориентированное моделирование




  "Вместе с ростом числа ЭВМ и задач трудности технологические и организационные все больше стали преобладать над трудностями "чисто научными". Сейчас масштаб и объем этих трудностей настолько вырос, что можно говорить, что задача их преодоления сама стала задачей науки и представляет собой проблему фундаментального значения". Н.Н. Яненко, В.И. Карначук, А.И. Коновалов. "Проблемы математической технологии"/ Численные методы механики сплошной среды. Новосибирск, ВЦ СО АН СССР, 8, 3, 1977.

Основные понятия

Объектно-ориентированное моделирование (ООМ) предполагает поддержку классов и экземпляров блоков, а также наследования и полиморфизма блоков.

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

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

Экземпляры могут быть статическими и динамическими. Статический экземпляр создается при создании модели и уничтожается при ее уничтожении. Например, каскад бассейнов явно является статической структурой. Динамические экземпляры создаются и уничтожаются в ходе моделирования. Например, при моделировании работы системы ПВО число самолетов в зоне видимости радиолокатора переменно.

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

Более сложными понятиями ООМ являются наследование и полиморфизм.

Часто возникает необходимость создать новый класс "такой же, но...". Например, нужно описать бассейн с подогревом воды, дополнив описание стандартного бассейна нужными деталями. В этом новом классе "Бассейн_с_подогревом" описание интерфейса и динамики уровня воды будет точно таким же, как и в классе "Бассейн". К нему добавится свое описание тепловых потоков и динамики температуры.

Можно просто перенести в описание нового класса элементы описания старого и добавить новые. Но можно объявить новый класс прямым потомком старого. В этом случае класс "Бассейн" будет являться суперклассом (родителем, базовым классом) для класса "Бассейн_с_подогревом", а тот в свою очередь будет являться подклассом (потомком, производным классом) по отношению к классу "Бассейн". В этом случае производный класс автоматически унаследует все элементы описания своего базового класса. Следует отметить, что наследование не означает простого копирования. Между классами возникает постоянная связь: если в классе "Бассейн" добавить новую переменную состояния (например, показатель хлорированности воды), то она автоматически появится в классе "Бассейн_с_подогревом".

Полиморфизм означает возможность использования вместо экземпляра блока некоторого базового класса экземпляра любого его производного класса. Например, для радиолокационной станции все сопровождаемые объекты являются экземплярами класса "Летательный_аппарат" и характеризуются только положением и вектором скорости. На самом же деле эти объекты могут являться самыми разнообразными потомками класса "Летательный_аппарат" от B-52 до птеродактиля.

Библиотеки классов

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

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

Численное решение

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

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

Таким образом, задача численного нахождения решения распадается на несколько:

1) выявление скрытой гибридности в описании непрерывных систем и построение гибридной системы, где узлам приписаны "хорошо" решаемые системы уравнений;

2) автоматическое определение численных особенностей текущей эквивалентной системы для уравнений;

3) автоматический выбор численного метода для текущей эквивалентной системы, позволяющего получить хотя бы качественно правильное решение;

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

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...