Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Программная система анализа идентифицируемости динамических моделей Забуга Александр Александрович

Программная система анализа идентифицируемости динамических моделей
<
Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей Программная система анализа идентифицируемости динамических моделей
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Забуга Александр Александрович. Программная система анализа идентифицируемости динамических моделей : диссертация ... кандидата технических наук : 05.13.11 / Забута Александр Александрович; [Место защиты: Новосиб. гос. техн. ун-т].- Новосибирск, 2007.- 285 с.: ил. РГБ ОД, 61 07-5/5558

Содержание к диссертации

Введение

Глава 1. Основные положения и способы анализа идентифицируемости математических моделей динамических систем в пространстве состояний 16

1.1 Определение независимых системных параметров, наблюдаемости и управляемости модельной структуры 19

1.2 Анализ структурной локальной идентифицируемости 23

1.3 Элиминирование структурной локальной неидентифицируемосги 24

1.3.1 Вычисление ПФДЛО 26

1.3.2 Расширение матрицы ограничений 29

1.3.3 Объединение модельных структур 30

1.4 Анализ структурной глобальной идентифицируемости 31

1.5 Элиминирование структурной глобальной неидентифицируемости 40

1.6 Классификация модельных структур и соответствующее классам проведение вычислений для анализа идентифицируемости 41

1.6.1 Класс модельных структур с произвольными числовыми матрицами управления и наблюдения 42

1.6.2 Класс модельных структур со стандартными параметризованными матрицами управления и наблюдения 45

1.6.3 Класс модельных структур со стандартными числовыми матрицами управления и наблюдения 49

1.7 Основные задачи диссертационной работы 51

Глава 2. Методы алгоритмизации и проектирования ПО 56

2.1 Модели жизненного цикла разработки ПО 59

2.2 Структурный анализ и разработка ПО 73

2.3 Объектно-ориентированый анализ и разработка ПО 81

2.4 Организация динамических вычислений 92

2.5 Основные принципы архитектуры «документ/представление» 108

2.6 Современные программные средства для анализа и разработки ПО 118

2.7 Определение методов и средств для анализа и разработки проекта 122

2.8 Выводы по главе 123

Глава 3. Проектирование архитектуры программной системы 125

3.1. Проектирование концепции интерфейса пользователя 128

3.2. Проектирование функциональных аспектов архитектуры 135

3.3. Проектирование структуры данных и репозитория 150

3.4. Разработка алгоритмов для методов анализа идентифицируемости 168 3.5 Выводы по главе 184

Глава 4. Создание прототипа и реализация механизмов организации динамических вычислений 186

4.1 Разработка функционала математических методов анализа 187

4.1.1 Определение независимых системных параметров 187

4.1.2 Определение управляемости и наблюдаемости модельной структуры 190

4.1.3 Формирование СЛИ- и СГИ- матриц 191

4.1.4 Формирование СЛНИ-матриц 196

4.1.5 Поиск слабых сепараторов 197

4.2 Обеспечение взаимодействия между программным интерфейсом и математическим ядром MATLAB 210

4.2.1 Интерпретатор командной строки и взаимодействие с сессией MATLAB 212

4.2.2 Синхронизация переменных между сессией MATLAB и приложением 219

4.2.3 Организация стека для сессии MATLAB 222

4.3 Выводы по главе 223

Введение к работе

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

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

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

Одним из таких программных продуктов является программный комплекс «ГРАД», разработанный CADCAM Центром для авиапромышленности. Данный продукт обеспечивает выполнение большинства

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

На протяжении более чем 20 лет разрабатывается программный комплекс «ДИЗЕЛЬ-РК», и за это время он прошел проверку применительно к двигателям различной размерности, быстроходности и применения. Программная принадлежит к классу термодинамических программ: цилиндры и коллекторы двигателя рассматриваются как открытые термодинамические системы, обменивающиеся между собой массой и энергией. Параметры газа в цилиндрах и коллекторах двигателя определяются путем пошагового решения системы разностных уравнений сохранения энергии, массы, а также уравнения состояния, записанных для открытых термодинамических систем.

Разработанный институтом проблем машиностроения им. А. Н. Подгорного HAH Украины измерительно-вычислительный комплекс «ТЕНЗОДИН» используется при решении задач определения прочности и поведения конструкций и материалов при ударе, взрыве, а также других интенсивных кратковременных воздействиях. Программно-аппаратный комплекс позволяет проводить эксперимент с фиксированием полученных данных на носителе, осуществляет экспресс-анализ полученных данных, выводит графическое представление экспериментальных данных, производит поиск экстремумов, исследует график и строит график спектральной составляющей.

Программная система моделирования кровообращения, разработанная ЗАО Самара-Диалог позволяет оценивать параметры математической модели реального организма. Имея идентифицированные параметры модели, появляется возможность прогнозировать поведение организма в различных режимах (физические нагрузки, сердечная недостаточность, атеросклероз, гипоксия и т. д.). Результаты, полученные при использовании программной системы, могут быть применены в образовательном процессе, при операциях, в физиологических исследованиях, в исследованиях нагрузок пилотов, космонавтов, спортсменов, альпинистов и т.д.

Созданное Тамбовским Государственным Техническим Университетом ПО «Экспертная система энергосберегающего управления» решает широкий круг исследовательских, производственных и учебных задач анализа и синтеза оптимальных управляющих воздействий на множестве состояний функционирования. С помощью экспертной системы разрабатываются системы оптимального управления нагревом печи отжига, котлом разогрева теплоносителя, емкостями гальванического цеха, работой электродвигателей.

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

Программная система «БААМ II» состоит из двух одновременно заменяемых и дополняемых модулей для построения и идентификации математических моделей. По существу это программное средство представляет собой виртуальную экспериментальную лабораторию. В комплекте доступных пользователю инструментов содержаться средства для построения моделей, подготовки входных последовательностей, организации эксперимента, сравнительного анализа результатов нескольких экспериментов одной модели. Модуль для определения моделей и имитации эксперимента посредством графического интерфейса содержит все необходимые для этого функции. Модель, сформированная инструментальными средствами, описывает поведение системы. С каждым новым экспериментом программная система строит дифференциально-разностные уравнения и результаты каждого из экспериментов хранит раздельно для модели, что позволяет проводить анализ. Для сравнительного анализа программа предлагает отобразить результаты эксперимента графически. При этом имеется возможность интерполяции недостающих элементов выходной цепочки эксперимента. Целью численного модуля программной системы является предоставление возможности создавать модель, используя алгебраические уравнения.

Пакет расширения «System Identification Toolbox» программного пакета «MATLAB» содержит средства для создания математических моделей линейных динамических объектов на основе наблюдаемых входных и выходных данных. Методы идентификации, входящие в пакет, применимы для решения широкого класса задач - от проектирования систем управления и обработки сигналов до анализа временных рядов. Основные свойства пакета следующие: простой и гибкий интерфейс; предварительная обработка данных, включая фильтрацию, удаление трендов и смещений; выбор диапазона данных для анализа; эффективные методы авторегрессии; возможности анализа отклика систем во временной и частотной областях; отображение нулей и полюсов передаточной функции системы; анализ невязок при тестировании модели. Пакет поддерживает все традиционные виды моделей, включая модели передаточных функций, описания для переменных состояния (как для непрерывного, так и для дискретного времени) и другие, с произвольным числом входов и выходов.

Среди рассмотренных программных систем присутствуют различные в функциональном плане пакеты. Это измерительно-вычислительные комплексы с возможностью обработки и анализа экспериментальных данных, САПР с функциями диагностики и прогнозирования, экспертные системы с интеллектуальным модулем для оптимального проектирования, программные системы научно-исследовательского характера. Область применения данных программных комплексов ограничена специфичностью моделируемых объектов, для работы с которыми программные системы создаются. Каждое, в отдельности взятое ПО, позволяет решать узкоспециализированные задачи. Однако, учитывая ограниченность, представленного в программных системах набора готовых идентифицируемых математических моделей, для каждого конкретного случая решаемой задачи идентификации перед разработчиками этих вычислительных комплексов стоит более глобальная задача. Она заключается в продолжительном сопровождении каждого отдельно взятого программного комплекса, а также расширении набора идентифицируемых математических моделей, в соответствии с развитием той или иной отрасли производства. Все эти программные пакеты позволяют создавать математические модели реальных физических систем и проводить их идентификацию, но при появлении новых управляемых производственных объектов возникает необходимость в предварительном исследовании их идентифицируемости, а также дополнении ими программного продукта. Исходя из этого, можно сформулировать цель и задачи настоящей диссертации.

Цели и задачи исследования

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

  1. Выполнить обзор и оптимизацию математических методов, приемлемых для проведения анализа идентифицируемости математических моделей линейных динамических систем, с учетом их алгоритмизации и автоматизированных вычислений с использованием ЭВМ.

  2. Провести анализ методов проектирования ПО. Выполнить обзор современных инструментальных средств и используемых ими технологий для проектирования и разработки программной системы. Определить наиболее подходящие методы для создания архитектуры ПО и выбрать систему программирования.

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

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

Методы исследования

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

Научная новизна

Научная новизна работы заключается в следующем:

    1. Спроектирована архитектура интегрированной программной системы, объединяющая в себе неограниченные вычислительные возможности математического пакета MATLAB и широкие возможности графического интерфейса, предоставляемые ОС Windows. Создана концептуальная модель приложения. Разработана функциональная модель и модель данных. Спроектирован интерфейс пользователя.

    2. Осуществлена алгоритмизация математических методов, необходимых для проведения анализа идентифицируемости математических моделей линейных динамически систем в пространстве состояний. Выполнено их прототипирование с помощью математического пакета MATLAB.

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

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

    5. Осуществлен перенос программного кода из прототипа в приложение с использованием разработанных механизмов синхронизации между управляющим кодом приложения и интерпретирующей средой математического ядра MATLAB.

    На защиту выносятся:

        1. Архитектура интегрированной программной системы и ее функциональная модель.

        2. Метод вычисления слабых и истинных сепараторов параметрического пространства.

        3. Основные принципы организации динамических вычислений в разноязыковой программной среде с управляемым кодом и соответствующие механизмы ее функционирования.

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

        Практическая значимость

        В процессе проектирования программной системы разработана общая концепция создания интегрированных программных систем, состоящих из взаимодополняющих модулей. Определены общие принципы организации динамических вычислений, когда один модуль реализует управляющий код, а другой является интерпретатором управляемого кода. Реализованы математические методы для проведения анализа идентифицируемости математических моделей линейных динамических систем в пространстве состояний. Исследовано и доказано свойство подматриц в разложении определителя СГИ-матрицы по формуле Бине-Коши, что позволило улучшить метод вычисления сепараторов для анализа идентифицируемости модельных структур большой размерности. Программная система вошла в вычислительный комплекс математического моделирования камерных фармакокинетических моделей, разрабатываемый в Государственном НИИ Органической Химии и Технологии. Достоверность

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

        Апробация работы

        Основные результаты работы были представлены на всероссийской научной конференции «Наука. Технологии. Инновации.» (г.Новосибирск, 2006), а также на международной научной конференции «Математические методы в технике и технологиях» (г.Ярославль, 2007).

        Публикации

        Основные результаты диссертационной работы опубликованы в 6 печатных изданиях. Из них: 1 статья в периодическом научно-техническом журнале, выпускаемом в Российской Федерации, которое рекомендовано ВАК для размещения основных научных результатов проведенных исследований; 2 публикации в сборниках научных трудов; 3 статьи в трудах и материалах конференций. Кроме этого, результатом научной работы стало получение свидетельства об официальной регистрации программы для ЭВМ.

        Структура и объем работы

        Диссертационная работа состоит из введения, пяти глав, заключения, списка литературы из 131 наименования, 2 приложений, содержит 249 страниц основного текста, 1 таблицу и 39 рисунков.

        КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ

        Во введении обосновывается актуальность темы диссертации, излагаются цель и задачи исследования, раскрываются научная новизна и практическая значимость работы.

        В первой главе уделяется внимание теоретической основе математического аппарата, используемого для анализа идентифицируемости математических моделей линейных динамических систем в пространстве состояний. Теоретической базой исследования являются работы российских авторов (Абденов А.Ж., Авдеенко Т.В., Горский В.Г., Денисов В.И., Захаров В.П.,

        Каргин С.А., Маврин Е.В., Озерных И.Л., Спивак С.И., Швецова-Шиловская Т.Н.) в области идентификации систем.

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

        В разделе 1.1 излагается способ определения независимых системных параметров, которые позволяют сузить круг неизвестных определяемых параметров. Рассматривается метод определения управляемости и наблюдаемости модельной структуры. В разделе 1.2 сформулированы необходимые и достаточные условия анализа структурной локальной идентифицируемости. Раздел 1.3 содержит способы элиминирования локальной неидентифицируемости, такие как расширение матрицы ограничений уравнениями выражений элементов специально вычисляемой СЛНИ-матрицы, объединение математических моделей со схожими модельной структурами. В разделе 1.4 рассматривается анализ структурной глобальной идентифицируемости. В качестве эффективного проведения анализа предлагается усовершенствованый метод вычисления сепараторов параметрического пространства. Раздел 1.5 содержит информацию по устранению глобальной неидентифицируемости. В разделе 1.6 излагаются более эффективные способы проведения анализа идентифицируемости для отдельных классов математических моделей.

        Во второй главе проводится анализ современных техник проектирования и разработки ПО, рассматриваются в обзорном порядке их характеристики. В разделе 2.1 приводится описание распространенных моделей жизненных циклов создания программных систем. В разделах 2.2 и 2.3 рассматриваются основные положения структурного и объектно-ориентированного подхода в проектировании. В разделе 2.4 исследуется вопрос организации динамических вычислений с относительной неопределенностью в виде интерактивной функции. Рассматривается общий метод решения оптимизационных задач, описываемых моделями Маркова (многошаговые процессы принятия решений). Раздел 2.5 содержит информацию о свойствах системной библиотеки MFC в разрезе организации пользовательского интерфейса. В разделе 2.6 выполняется анализ современного рынка инструментальных CASE-средств и систем разработки ПО. В разделе 2.7 осуществляется выбор программных системам, которыми оказываются Borland Together Architect, Math Works MATLAB и Microsoft Visual Studio.

        В третьей главе проектируется архитектура программной системы и выполняется алгоритмизация математических методов анализа идентифицируемости. Раздел 3.1 посвящен проектированию интерфейса пользователя. В разделе 3.2 проектируется функциональная модель программной системы. Раздел 3.3 рассматривает вопросы проектирования модели данных и репозитория для хранения информации о модельных структурах. В разделе 3.4 выполняется построение алгоритмов для математических методов анализа идентифицируемости.

        В четвертой главе выполняется прототипирование математических методов, представленных в первой главе, с помощью математического пакета MATLAB. В процессе реализации определяются вспомогательные структуры данных, упрощающие вычисление слабых и истинных сепараторов. Этому посвящен раздел 4.1. В разделе 4.2 реализуются механизмы организации динамических вычислений для интегрированных программных систем.

        В пятой главе рассматривается применение программной системы для решения практических задач исследования идентифицируемости математических моделей.

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

        Анализ структурной локальной идентифицируемости

        В работах [1-32] описан эффективный подход к анализу локальной и глобальной идентифицируемости модельной структуры (1.1) с использованием условий ранга и порядка. Символьные выражения, производимые при использовании данного подхода, являются менее объемными и требуют меньшего объема памяти для вычислений, связанных с анализом локальной или глобальной идентифицируемости. Рассматриваемый подход основывается на представлении модельной структуры (1.1) в виде естественной параметризации с накладываемыми на элементы системных матриц линейными ограничениями.

        Учитывая то, что матрица ограничений Г имеет полный строчный ранг, существует г линейно независимых столбцов этой матрицы, составляющих, например, подматрицу Г,: то есть г компонент вектора 5, составляющих подвектор , становятся зависимыми от остальных (ЛГ-г) компонент, составляющих подвектор Введем обозначение в- 8г. Тогда в есть вектор независимых системных параметров, состоящий из независимых компонент вектора 5. Заметим, что, так как выбор невырожденной подматрицы Г, из матрицы Г в общем случае является неединственным, то и вектор независимых системных параметров в можно получить разными способами.

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

        Введение ограничений (1.6) для естественной параметризации (1.5) обеспечивает необходимые условия локальной идентифицируемости. Минимальное количество необходимых ограничений задается условиями порядка для различных классов модельных структур, рассматриваемых далее в разделе.

        Анализ идентифицируемости моделей вида (1.5)-(1.6) подразумевает выполнение определенной последовательности действий. В первую очередь производится выбор класса модели на основе априорной информации об объекте. Далее выполняется проверка управляемости и наблюдаемости, которая выполняется с использованием условий Калмана. Эти условия заключаются в следующем: 1. исследуемая модель является управляемой в случае, когда количество потоков к управления (столбцов) в матрице В равно количеству строк п матрицы состояния А, к = п; 2. модельная структура является наблюдаемой, если количество потоков т наблюдения (строк) в матрице С равно количеству столбцов п матрицы состояния А, т = п\ 3. математическая модель при выполнении равенств (1.9), считается

        При выполнении первого или второго пункта условий, модельная структура (1.5)-(1.6) является глобально идентифицируемой. В случае выполнения третьего пункта условий, исследуемая модель является управляемой и наблюдаемой, но требует дальнейшего анализа идентифицируемости, так как мы не можем заведомо утверждать, что любая новая вариация параметров в модельной структуре непременно приведет к изменению отклика системы.

        Объектно-ориентированый анализ и разработка ПО

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

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

        Объектно-ориентированный анализ и разработка (OOA/OOD - Object- Oriented Analysis Object-Oriented Development) организует систему на основе объектов реального мира или концептуальных объектов, важных для пользователя. Этот подход является противоположным разделению функций и данных. Объект реального мира, существующий в рамках предметной области, определяется в терминах поведения, соответствующих атрибутов и отношения к другим объектам. Все функции объекта скрыты в самих деталях объекта. Поэтому если необходимы функциональные изменения, они производятся внутри объекта, что приводит к незначительным изменениям в оставшейся части модуля. Для применения в объекте обновленных или добавленных функций, оставшиеся объекты в модели поддерживаются с помощью интерфейса. OOA/OOD позволяет использовать как статические модели, так и динамические модели. Целью формирования объектно-ориентированной модели является наличие самодостаточных объектов. Такой тип объектов способен инициализировать себя и допускает управление собой при переходе из одного состояния в другое. Это позволяет поддерживать в модели функциональную ответственность.

        Фундаментальными понятиями OOA/OOD являются понятия класса и объекта. При этом под классом понимают некоторую абстракцию в предметной области приложения, в общем случае выраженную существительным. Абстракция может быть концептуальной или физической. Она отражает возможности системы по хранению информации о ней же, по взаимодействию с ней или же оба этих фактора. Класс содержит в себе атрибуты, которые отражают информацию об объекте, отношения с другими классами и операциями, определяющими поведение данного объекта в системе. Для отображения его структуры используется диаграмма класса, которая формирует портрет класса, раскрывая его содержимое и отражая взаимоотношения между классами. Также класс определяет интерфейсы соответствующих экземпляров. Под интерфейсом понимается набор операций, характеризующих поведение элемента. Несмотря на то, что классы абстрактны, их экземпляры специфичны. Объект является отдельным экземпляром класса. Все объекты имеют значения атрибутов, соответствующие атрибутам из полного дескриптора классов. Эти объекты будут также поддерживать операции, описываемые дескриптором класса. Соответственно, каждый объект отличается собственной идентичностью и имеет характерный набор значений для атрибута. Такая особенность классов называется инкапсуляцией, то есть разделение внешних аспектов объекта от деталей внутренней его реализации, другими словами это означает сокрытие информации от прочих элементов объектно- ориентированной модели и предоставление ее только через экземпляр класса. Для доступа к внутренним механизмам, реализованным в объектах, используются так называемые методы, которые указывают ассоциированные с операцией алгоритмы или процедуры. Все объекты, порожденные одним и тем же классом, структурированы одним способом, хотя каждый из них имеет свой собственный набор связей атрибутов. Каждая связь атрибута имеет ссылку на экземпляр, обычно на значение данных.

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

        Объекты, включенные в объектно-ориентированную модель, находятся в определенных отношениях. Отношением является некоторая семантическая связь между элементами модели. Таким отношением может быть ассоциация, определяющая соединение между понятиями или объектами предметной области. В связи участвует, по крайней мере, два элемента. Свойство множественности для каждого из них определяет число экземпляров участвующих в отношении. Также можно выделить такое отношение как агрегация. Эта связь определяет сложную структуру атрибутов какого-либо агрегирующего объекта, которые представлены как набор различных объектов и раскрывает понятие часть-целое. Другим видом связи является обобщение, называемое наследованием. Оно определяет совместное использование атрибутов и поведение объектов в пределах иерархической структуры, в которой каждый элемент представляет в отношении соседа по связи либо суперкласс, либо подкласс. Каждый подкласс наследует все свойства суперкласса и добавляет свои собственные уникальные свойства. Структуры данных и алгоритмы, принадлежащие суперклассам, сразу же становятся доступными для наследуемых подклассов. Так как каждый объект имеет интерфейсы, определяющие средства взаимодействия между объектами, то посредством этих механизмов объекты могут передавать друг дугу сообщения. Каждое сообщение представляет собой структуру данных, определяемую используемыми интерфейсами. В него включается объект назначения, название выполняемого метода и параметры, передаваемые для операции. В объектно- ориентированной методологии способность различных объектов по-своему реагировать на одно и то же сообщение, называется полиморфизмом. Такая ситуация встречается при наследовании от одного общего класса, когда какой- либо метод в реализации имеет определенные отличия. В OOA/OOD особую роль играют абстрактные классы, выполняющие задачу группировки классов и охвата информации, которая имеет общий характер для всей группы. Абстрактные классы не имеют экземпляров, являются суперклассами и вводятся в дополнение к уже существующим классам. В диаграммах классов абстрактные элементы упрощают анализ и исследование предметной области.

        Проектирование функциональных аспектов архитектуры

        Программная система представлена тремя компонентами (Рис.3.3): реализация класса модели, аналитический агент и интерфейсный модуль пользователя. Каждый из компонентов, как и программа в целом, реализован на базе библиотеки MFC.

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

        Необходимой подсистемой класса модели является менеджер хранения моделей. Он используется для операций с внешними носителями в целях загрузки и выгрузки информации о модели. К таким носителям может относиться любое устройство и носитель, поддерживаемые библиотекой MFC и операционной системой Windows, использующие файл в качестве одной из единиц хранения. Поддерживаемые форматы файлов должны позволить обмениваться информацией о модели с различными программами. К таким форматам относятся текстовый файл, файл XML, файл HTML, файл MATLAB, файл в формате приложения.

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

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

        Посредством компонента, реализующего интерфейс с пользователем, происходит основное взаимодействие между исследователем и структурой модели. Операции, связанные с управлением окнами, получением сообщений от мыши и клавиатуры, и другие события операционной системы Windows, обрабатываются с использованием классов библиотеки MFC. На базе реализации этой библиотеки построен интерфейс пользователя в программе. Используется архитектура «документ/представление», которая позволяет отделить документ, то есть данные приложения, от его визуализации. Эта особенность дает возможность работать с модельной структурой в различных контекстах. Во-первых, использование редактора для построения структуры модели в виде графа. Во-вторых, использование редакторов системных матриц и матрицы ограничений. В-третьих, напрямую обращаясь к сессии MATLAB через командную строку, определяя или корректируя информацию об исследуемой модели.

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

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

        Компонент, реализующий сессию с математическим пакетом MATLAB, должен использовать соответствующий интерфейс, предоставляемый разработчиками через MathWorks MATLAB R2006a RunTime Components. Аналитический агент предоставляет свой интерфейс для доступа и изменения режимов сессии MATLAB, посредством которого функционирует командная строка MATLAB интерфейса пользователя и класс модели. Также, интерфейс компонента предоставляет доступ к функционалу пакета методов для анализа идентифицируемости. Этот пакет содержит реализацию операций по работе с модельной структурой и требует отдельного внимания.

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

        Каждый этап проработки модельной структуры инициирует определенное состояние менеджера этапов анализа. Менеджер выполняет функцию триггера, переходящего из одного состояния в другое. Изначально, когда документ в программе только создается, инициируется начальное состояние, гласящее, что модельная структура ненаблюдаема или неуправляема. Так как менеджер работает в режиме агента и постоянно следит за ходом исследования модельной структуры, то изначально инициированное состояние в программной системе воспринимается как отсутствие информации об управляемости и наблюдаемости исследуемой модели. Это состояние хранится в менеджере до нового обращения к нему по завершении очередной стадии проработки, и определяет последующие состояния менеджера этапов анализа. Зависимость нового состояния от предыдущего отображается пунктирной стрелкой на диаграмме. Блок принятия решения о следующем состоянии представлен в виде ромба. Элементы пользовательского интерфейса, предназначенные для выполнения анализа идентифицируемости, зависят от состояния менеджера и могут получить значение состояния в любой момент выполнения программы, что представлено на функциональной диаграмме.

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

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

        Определение независимых системных параметров

        При запуске математического пакета MATLAB мы, помимо привычного интерфейса Windows, пользуемся системой команд, которые выполняют те или иные математические вычисления, а также набором определяемых нами переменных: матриц, векторов, символьных выражений и прочих конструкций данных. Для группировки последовательности команд математическая среда позволяет создавать интерпретируемые программные МАТ-файлы, кроме этого, программы могут быть транслированы в объектный Р-код, что ускоряет их выполнение. Компилятор МАТЪАВ может перевести программу или отдельные функции, определенные пользователем, в отдельную самостоятельно выполняемую программу (ЕХЕ-файл) или библиотеку функций (ОЪЪ-файл). Все перечисленное, несомненно, обеспечивает решение отдельных задач [124126]. Однако, созданное подобным образом приложение ограничено в своей динамичности или, пользуясь терминологией ООП, масштабируемости. Особенно это касается аналитических вычислений, поскольку за рамками библиотеки сложно сохранить гибкость, как бы хорошо не был продуман проект. Основная динамика исходит от изначальных параметров решаемой задачи, а также от их количества и количества совокупных вариаций, и поступает в отдельную функцию от пользователя посредством интерфейса. Если интерфейс и математический функционал расположены в разных модулях (модуль математических функций собран в динамически-подключаемой библиотеке с помощью компилятора МАТЪАВ, а модуль интерфейса собран компилятором отличной от МАТЪАВ среды программирования в исполняемом приложении или динамически-подключаемой библиотеке) то масштабируемость такой программной системы ограничена библиотекой математического функционала при неограниченной гибкости интерфейсного модуля. Чтобы избежать такого неперспективного тандема, предлагается использование управляемого кода МАТЪАВ, зависимого от программного кода среды разработки, отличной от МАТЪАВ. Это обеспечит расширенные возможности интерфейса приложения и масштабируемость решаемых задач.

        В этих примерах конструктор класса MLCEngine инициирует объект и создает сессию МАТЬАВ, после чего делает окно командной строки интерпретатора невидимым. Деструктор класса, вызываемый при удалении объекта из памяти, закрывает сессию МАТЬАВ. Метод Ма1ЬаЬ8е8з1оп81аШ8 позволяет определить успешность инициирования сессии после создания объекта. В данном случае инициируется одна сессия, не зависимо от количества создаваемых объектов. Приведенный в примере код рассчитан на одну сессию МАТЬАВ. Остальные создаваемые объекты наряду с первым будут функционировать в одной рабочей области МАТЬАВ, то есть все определяемые переменные в ней будут общими для всех созданных объектов. Если есть необходимость для каждого объекта инициировать отдельную сессию, то необходимо в конструкторе заменить функцию епОреп на е Ореп8т1еизе.

        Конечно же, целью создания сессии МАТЬАВ является выполнение каких- либо математических вычислений. Для этого необходимо обеспечить наш класс функцией, выполняющей передачу команды интерпретатору. Предположим, что в интерфейсе нашей программы есть диалог, запрашивающий у пользователя команду МАТЪАВ и выдающий впоследствии результат ее выполнения. Добавим в код представленную в примере А.7 реализацию функции Еуа г СаП.

        Заданное пользователем математическое выражение выполняется интерпрететором командной строки сессии МАТЪАВ, и результат записывается в структуру тхАггау. С этого момента возникает сложность. Каким образом, и в каком виде предоставить пользователю результат вычисления? Дело в том, что мы не можем предугадать тип данных получаемого результата, так как предоставили пользователю возможность внесения в текстовую строку абсолютно любого выражения, в том числе и математических выражений МАТЪАВ. Контролировать ситуацию в интерфейсном модуле является затратным и непрактичным занятием. Наиболее простым решением будет передать на вычисление интерпретатору текстовую строку в том виде, в котором ее задал пользователь, а при получении результата вычислений тщательно провести его разбор и преобразование к текстовому виду. В функции Еуа пг СаП присутствует блок анализа возвращаемого из сессии МАТЪАВ результата, но он упрощен. В нем производится преобразование в текстовую строку числового значения, а также извлечение текстовой строки. Может показаться, что этого вполне достаточно для использования сессии МАТЪАВ в нашем приложении. В случае выполнения пользователем простых расчетов, можно оставить функцию без изменений. Однако если наша программа будет выполнять более сложные математические вычисления с операндами в виде матричных структур и аналитических выражений, то необходимо усовершенствовать процесс разбора и преобразования в текстовую строку получаемого результата.

        Фукнция GetSizeCellM может в дальнейшем пригодиться при написании функций сложных математических расчетов, включающих вычисления над каждым отдельным элементом матричной, или более сложной структуры данных. Организация внешнего цикла итераций относительно интерпретатора командной строки позволяет создавать управляемые структуры интерпретируемого сессией MATLAB программного кода, наряду с использованием других внешних управляющих алгоритмических структур, таких как условия, рекурсивные вызовы и прочее [130]. Для этих целей необходима адекватная относительно типов данных система синхронизации общих используемых переменных. Учитывая тот факт, что синхронизация является относительно затратной по выделяемому процедуре процессорному времени, особенно когда дело касается больших структур данных, необходимо обеспечить проверку условий на внешнем уровне средствами интерпретатора, не прибегая к синхронизации. Для этого предназначена функция CheckMatLabCondition.

        Так как наш интерфейсный модуль предполагает не только ввод изначальных данных, требуемых для решения задачи, но и вывод результатов в наглядном виде формата текстовой строки, необходим механизм преобразования абсолютно любого ожидаемого результата вычислений в строку текста. Расширим наш класс дополнительной функцией ToString, реализация которой представлена в примере А.9.

        Функция ToString работает в нескольких режимах, это необходимо для поддержания гибкости программного кода в целом. Первый параметр содержит наименование переменной в рабочей области сессии MATLAB. Второй параметр содержит значение, определяющее режим выполнения функции. Перечислим возможные значения режима: Режим 0 - удвоение одинарных ковычек для текста и выделенной интерпретируемой строки, для всех символьных объектов преобразование к интерпретируемой строке для дальнейшего приведения к символьной форме в сессии MATLAB. Этот режим используется в общем случае преобразования любого типа данных из рабочей области в текстовую строку, а также для получения интерпретируемой текстовой строки из аналитического выражения. Режим 1 - преобразование к строке и разделение элементов пробелами. Данный режим используется при обычном приведении любого типа данных из рабочей области в текстовую строку, в частности для векторов. Режим 2 — преобразование к строке и разделение строк массива элементов точкой с запятой, а самих элементов - пробелами между собой. Этот режим применяется при обычном приведении любого типа данных из рабочей области в текстовую строку, в частности для массивов значений. Режим 3 - режим 2 для символьных объектов с числовым значением, иначе преобразование выражения к интерпретируемой строке для дальнейшего приведения к символьной форме в сессии MATLAB. Данный режим используется для принудительного приведения любого типа данных к аналитическому выражению в форме текстовой строки, за исключением символьных объектов с числовыми значениями. Режим -1 - режим 3 для символьных объектов, иначе преобразование к строке. Режим -2 - режим 2 с удвоением одинарных текстовых ковычек. Данный режим необходим для использования вместе с составной строкой в интерпреторе.

        Похожие диссертации на Программная система анализа идентифицируемости динамических моделей