Содержание к диссертации
Введение
1. Требования к структуре системы автоматизации математических вычислений Макрокалькулятор 13
1.1 Цели и задачи системы автоматизации математических вычислений в учебном процессе и научных исследованиях 13
1.2 Структура системы автоматизации математических вычислений и ее взаимосвязь с системой автоматизированного моделирования технических объектов 19
1.3 Язык компонентных цепей 23
1.3.1 Основные понятия языка компонентных цепей 23
1.3.2 Автоматическое формирование модели цепи 26
1.4 Универсальный вычислитель системы моделирования МАРС 30
1.5 Выводы 36
2. Формализованное отображение систем математических выражений в языке компонентных цепей 38
2.1 Грамматика языка представления математических выражений в редакторе 38
2.1.1 Основные лексемы языка представления математических выражений .. 38
2.1.2 Правила формирования выражений в языке представления математических выражений 42
2.2 Формирование дерева операций математического выражения 44
2.3 Формализм языка компонентных цепей для анализа математических выражений 48
2.4 Отображение скалярных математических и алгоритмических конструкций в языке компонентных цепей 51
2.4.1 Отображение операндов в языке компонентных цепей 51
2.4.2 Отображение операторов 52
2.4.3 Отображение функций 54
2.4.3.1 Стандартные математические функции 55
2.4.3.2 Функционалы и алгоритмические структуры 58
2.4.3.3 Функции пользователя 61
2.5 Отображение векторно-матричных математических конструкций в языке компонентных цепей 62
2.6 Примеры расчета математических выражений 65
2.6.1 Расчет значения выражений 65
2.6.2 Решение линейных и нелинейных уравнений 66
2.6.3 Решение системы линейных уравнений 68
2.6.4 Построение графиков функций 69
2.6.5 Решение системы уравнений в матричном виде. 71
2.7 Выводы 72
3. Программно-математическая реализация системы автоматизации математических вычислений 74
3.1 Редактор математических выражений 74
3.2 Интерпретатор математических выражений 79
3.3 Универсальный вычислитель 84
3.3.1 Объектно-ориентированная структура универсального вычислителя... 85
3.3.2 Алгоритмы, расчета компонентных цепей систем сложных математических выражений 95
3.3.3 Методики повышения быстродействия вычислительного эксперимента 97
3.3.3.1 Алгоритм формирования системы уравнений
с учетом класса уравнений 99
3.3.3.2 Алгоритм анализа КЦ СТУС и СМВ с повышенным быстродействием 101
3.4 Архитектура библиотеки моделей компонентов 104
3.5 Интерактивная математическая панель 111
3.6 Структура менеджера эксперимента 114
3.7 Выводы 118
4. Использование системы автоматизации математических вычислений в учебном процессе и учебно-научных исследованиях 120
4.1 Виртуальная лаборатория 120
4.2 Структура и функционирование компьютерного тренажера на основе среды моделирования МАРС 123
4.3 Применение среды моделирования МАРС в курсовом и дипломном проектировании 128
4.4 Примеры использования системы автоматизации математических вычислений в различных режимах работы 132
4.5 Выводы 135
Заключение 137
Список использованных источников
- Структура системы автоматизации математических вычислений и ее взаимосвязь с системой автоматизированного моделирования технических объектов
- Основные лексемы языка представления математических выражений
- Интерпретатор математических выражений
- Структура и функционирование компьютерного тренажера на основе среды моделирования МАРС
Введение к работе
При проектировании, исследовании и разработке сложных технических устройств и систем (СТУС) [1] важной составной частью является вычислительный эксперимент [2]. При этом еще остаются достаточно острые проблемы повышения его скорости, адекватности и точности получаемых результатов. Эффективную помощь в деле интенсификации научно-исследовательских и проектно-конструкторских работ играют современные IT-технологии, куда входят системы автоматизации научных исследований (АС-НИ) [3], системы автоматизированного проектирования (САПР) [4, 5] и системы автоматизации процесса обучения [6, 7].
Важной составляющей любого вычислительного эксперимента являются автоматизированные моделирующие системы (АМС), которые позволяют оперативно оценивать характер функционирования разрабатываемых устройств, учитывать влияние внешних факторов, демонстрировать поведение исследуемых объектов в учебных лабораториях. Последние достижения в этой области существенно расширили возможности моделирующих систем. Они, прежде всего, связаны с визуализацией входных и выходных данных, повышением скорости и точности анализа, более эффективными средствами управления процессом моделирования. Современные АМС, как правило, являются ориентированными на определенную техническую область - электронные схемы, энергосистемы, приборы, механизмы и машины, где уже сформировалась устойчивая компонентная база с соответствующими параметрами компонентов. В то же время СТУС чаще всего включают в себя всевозможные комбинации подсистем из различных технических областей, и для их всестороннего анализа требуется составлять и решать модель всей системы, то есть сочетать энергетические и информационные подсистемы разного физического содержания в единую модель. В работах [8, 9, 10, 11, 12, 13] разработаны системные подходы, развивающие теорию цепей общего вида (компонентных цепей) как методологической основы алгоритмического и программного аппарата автоматизиро ванного моделирования СТУС, реализованного в рамках системы МАРС [10, 11, 12].
Однако, современные требования развития автоматизации экспериментальных исследований требуют разработки уже не просто моделирующих, а расчетно-моделирующих систем, так как именно такие системы позволят более полно автоматизировать необходимые этапы научных и проектных исследований. Кроме того, создания расчетно-моделирующих систем требует и интенсивно развивающееся сейчас электронное образование.
Следовательно, требуются методы проектирования программно-инструментальной части расчетно-моделирующей среды, имеющей достаточно универсальный характер. Это действительно фундаментальная проблема.
Практически все известные системы моделирования (Electronics WorkBench, Mtcro-CAP, PSPice, Classic и др.) специализированы под определенный класс технических систем и никак не взаимосвязаны с универсальными системами автоматизированных вычислений (Mathcad, Mathematica и др.), а механическое соединение подобных систем не дает нужного эффекта и связано с большими затратами для пользователей.
Таким образом, актуальность исследования обусловлена:
1. Непрерывным развитием методов и средств автоматизации учебного процесса и научных исследований.
2. Необходимостью повышения эффективности и быстродействия вычислительной части моделирующих систем в целях создания виртуальных лабораторий и тренажеров;
3. Трудностью создания вычислителей, позволяющих производить как моделирование физических объектов (вычислительный эксперимент), так и вычисления математических выражений (расчетная часть).
4. Сложностью управления библиотеками моделей компонентов для оперативной настройки моделирующей системы на заданный класс объектов. 5. Трудностью создания кросс-средств, объединяющих расчетную и моделирующие системы для формирования автоматизированной расчетно-моделирующей среды.
6. Необходимостью создания функционально-полной программно-инструментальной среды для целей автоматизации проведения научных экспериментов.
Структура системы автоматизации математических вычислений и ее взаимосвязь с системой автоматизированного моделирования технических объектов
Среди требований, предъявляемых к САМВ Макрокалькулятор, можно отметить, что она должна строиться на единой с моделирующей средой программно-математической основе и позволять: - проводить сложные математические вычисления; - формировать модели компонентов, записывая их в естественно математическом виде, и далее использовать их наряду с другими компонента ми при моделировании СТУС; - разрабатывать и автоматически выполнять алгоритм решаемой задачи, реализованный в специализированном редакторе.
Для осуществления этих требований САМВ Макрокалькулятор должна иметь структуру, представленную на (рис. 1.1), а также сопрягаться с системой моделирования МАРС при помощи общих блоков, называемых далее программными блоками сопряжения.
Для осуществления автоматизированного моделирования СТУС система автоматизированного моделирования МАРС включает в себя: - редактор компонентных цепей [33], предоставляющий пользователю интерфейс для ввода и редактирования компонентных цепей СТУС; - блоки обработки результатов вычислительного эксперимента, представляющие собой набор программных средств и алгоритмов, позволяющих производить обработку, анализ и интерпретацию полученных результатов [34, 35,36]; - систему отображения результатов вычислительного эксперимента, состоящую из различных экранных форм, позволяющих выводить результаты вычислительного эксперимента и блоков обработки результатов в виде числовых значений, массивов, графиков, таблиц и т.п.
Для реализации целей автоматизации математических вычислений САМВ Макрокалькулятор должна состоять из: - редактора математических выражений [37], предоставляющего пользователю удобный интерфейс для ввода и редактирования математических выражений в естественно-математическом виде; - интерпретатора математических выражений [38], преобразующего математические выражения, сформированные в редакторе, в формат компо нентных цепей для их последующего расчета универсальным вычислителем или использования при моделировании СТУС в рамках интерактивной математической панели; - системы отображения результатов математических вычислений, по зволяющей выводить результаты математических выражений в виде числовых значений, представленных в различных формах векторов, матриц, разнообразных графических форм как на плоскости, так и в пространстве.
Для. удовлетворения требований, предъявляемых к САМВ Макрокалькулятор, она должна иметь с СМ МАРС следующие программные средства сопряжения: - универсальный вычислитель [30], позволяющий на единой программно-математической основе моделировать СТУС и рассчитывать сложные математические выражения; - библиотеку моделей компонентов (БМК), построенную на единых программно-технических принципах и включающую в себя модели компонентов СТУС и модели основных операторов и функций математических выражений; - интерактивную математическую панель [39] — макрокомпонент, в состав которого входит редактор математических выражений, позволяющих формировать и редактировать математические выражения и графические модели, обрабатываемые встроенным аппроксиматором, относительно переменных связей данного компонента, которые затем используются при моделировании СТУС наряду моделями других компонентов; менеджер эксперимента, позволяющий из математико-алгоритмических конструкций формировать алгоритмы решения сложных технических задач, составной частью которых является моделирование СТУС во временной или частотной области, так и необходимые математические расчеты промежуточных параметров и выходных результатов.
Таким образом, совокупность САМВ Макрокалькулятор и системы моделирования МАРС, называемая далее средой автоматизированного моделирования МАРС (СМ МАРС) [31, 32], позволит автоматизировать большинство эта пов учебного процесса по различным техническим дисциплинам и научно-исследовательских работ, направленных на исследование СТУС с использованием их виртуальных аналогов.
Методической основой САМ МАРС является метод компонентных цепей (МКЦ) [10, 11,12], который позволяет моделировать физически неоднородные технические объекты, а также обладает преимуществами над другими известными методами моделирования СТУС [40, 41] (методом узловых потенциалов, методом переменных состояний [42], методом передаточных функций [43] и табличным методом [44]), так как он: - позволяет объявить в виде компонента любую структурную единицу системы или среды, и выделить ее интересующие свойства; - использует полный координатный базис переменных; - позволяет исследовать физически неоднородные СТУС во временной и частотной области, а также в статическом режиме; - в силу конструктивного характера формализма представления модели наиболее легко подвергается автоматизации; - позволяет анализировать как энергетические, так и информационные объекты, а также их совокупность.
Исходя из вышеназванных преимуществ МКЦ, была высказана гипотеза, что любое математическое выражение или структуру математических выражений можно представить и вычислить в форме компонентных цепей, а, следовательно, применить аппарат компонентных цепей для моделирования и вычисления математических выражений. В случае, если такое представление будет найдено, тогда любое математическое выражение или систему выражений можно будет также использовать при моделировании СТУС наряду с другими компонентами.
Основные лексемы языка представления математических выражений
Язык представления математических выражений в редакторе [37] должен быть максимально приближенным к языку естественной записи математических выражений. Следовательно, данный язык должен позволять вводить и редактировать математические выражения в графическом, не текстовом формате. Для его реализации необходимо разработать соответствующую грамматику. Наиболее приемлемым способом описания грамматик формальных языков являются нотации Бэкуса-Наура [51, 52],
В ряде источников [51, 52, 53] описывается язык математических выражений. Но так как в данной работе требуется разработать язык визуального представления математических выражений, опирающийся на единый с системой автоматизированного моделирования МАРС (САМ МАРС) универсальный вычислитель (УВ) [30], опишем его грамматику более подробно, используя нотации Бэкуса-Наура.
В данной таблице черными квадратиками помечены аргументы функций, т.е. те места, куда пользователь должен ввести математические выражения, являющиеся аргументами данных функций. Таким образом, основными лексемами языка представления математических выражений являются операторы и операнды, выраженные константами, переменными либо функциями.
Математические выражения, формируемые в редакторе математических выражений [37], должны быть вычислимыми, т.е. в результате расчета данного выражения должно быть найдено его значение или значения некоторых его переменных. Такие математические выражения будем называть вычислимыми математическими выражениями. Используя нотации Бэкуса-Наура и обозначения, введенные в предыдущем пункте данной главы, запишем правила формирования таких выражений: 1. Выражение присваивания. С его помощью в документе можно задать значение некоторой переменной: (Переменная) := (MB) (2.20) При этом выражение (MB) должно содержать константы и ранее определенные переменные. Или же определить некоторую функцию пользователя: (функция)-(MB) (2.21) В этом случае выражение (MB) должно быть написано относительно констант, переменных и функций, ранее определенных пользователем по правилам (2.20) и (2.21), и переменных, включенных в список аргументов функции (2.16). Определение интервальной переменной производится согласно следующему правилу: (Переменная) := (MB _l), (MB _2 ... {MB _3), (2.22) где: {MB _l) - выражение, значение которого является начальным значением заданного интервала; (MB _2) - выражение, значение которого является следующим за начальным значением заданного интервала; (МВ_3) - выражение, значение которого является последним на заданном числовом интервале. Интервальная переменная используется в языке представления математических выражений для задания интервала, на котором будет построен график функций, или для задания целочисленного промежутка индексов векторов или матриц. 2. Вычисляемое выражение — высказывание на языке представления ма тематический выражений, с помощью которого выводится его результат: (JWB) = (Константа} (2-23) В качестве (MB} может выступать как один операнд, выраженный переменной или константой, так и сколь угодно сложное математическое выражение. 3. Уравнение— высказывание, в котором одна из переменных, входящая в математические выражения по обе стороны от оператора «равно», требует оп ределения: (МВ) = (МВ) (2.24) При решении уравнения находятся все значения переменной, удовлетворяющие ему.
Уравнение также может быть составной частью системы уравнений. Для системы уравнений характерно, чтобы число входящих в нее уравнений совпадало с числом входящих в нее неизвестных [55]. Другие ситуации, связанные с недоопределеннои или переопределенной системой уравнений, решаются по своим алгоритмам, 4. Неравенство - математическое выражение, в котором его составные части соединены операторами сравнения: (МВ)(Оп_сравн)(МВ) (2.25) В данной работе введено ограничение на классы решаемых уравнений и неравенств. Рассмотренные математические выражения могут быть решены с помощью УВ, если найти их отображение в языке компонентных цепей. Для этого исследуем общую структуру математического выражения с точки зрения МКЦ.
Последовательно применяя правила грамматики языка представления математических выражений к рассматриваемому математическому выражению в ходе его синтаксического разбора, можно получить дерево его разбора, в котором узлы помечены нетерминальными символами грамматики, листья — ее терминальными символами, а каждая связь между узлами или между узлом и соответствующими листьями выражена одним из правил данной грамматики,
Полученное дерево вывода содержит массу избыточной информации, которая не требуется для дальнейшей работы интерпретатора. Эта информация включает в себя все нетерминальные символы, находящиеся в узлах дерева. После того, как дерево построено, эти символы не несут никакой смысловой нагрузки и не представляют интереса для дальнейшей работы.
Для построения кода математического выражения или других операций, связанных с ним, используется дерево операций, узлами которого являются математические операции данного выражения, а листьями - его операнды.
Интерпретатор математических выражений
Интерпретатор математических выражений предназначен для формирования КЦ СМВ, введенных пользователем в редакторе математических выражений и алгоритмических конструкций. Можно сформулировать следующие требования к интерпретатору математических выражений:
- Он должен производить интерпретацию каждого математического выражения в формат КЦ с последующим ее расчетом универсальным вычислителем. То есть выполнять функции интерпретатора математических выражений;
- А также строить единую КЦ для системы математических выражений (СМВ), введенных пользователем в редакторе, которая затем будет являться моделью интерактивной математической панели. В этом случае алгоритм будет выполнять свою работу как транслятор математических выражений в язык КЦ.
- Стек операций, куда в соответствии с основным алгоритмом интерпретации заносятся текущие математические операторы (2.3) и функции (2.16), которые затем выбираются из него при их отображении в формат КЦ;
- Стек операндов, в который заносятся текущие операнды (константы и переменные) (2.7) математического выражения и результаты промежуточных операций, полученные основным алгоритмом трансляции в результате отображения очередного оператора или функции;
- Статическая и динамическая таблицы идентификаторов, В статической таблице приведены математические операторы и стандартные математические функции (2.16), для которых в зависимости от операндов, вступающих в данную математическую операцию, приведены соответствующие компоненты из системы отображения математических выражений в языке компонентных цепей. В динамическую таблицу идентификаторов помещаются текущие операнды и результаты промежу ф точных операций с соответствующими им номерами узлов КЦ.
Помимо этого в интерпретатор математических выражений включены структуры для реализации следующих типов данных: - комплексного типа, позволяющего обрабатывать константы и пере менные скалярных типов: комплексного, вещественного, целочислен ного и логического; - матричного типа, обеспечивающего работу интерпретатора с пере менными и константами матричного и векторного типов; - типа данньгх функций пользователя, обеспечивающего ввод в редактор математических выражений и обработку разнообразных функций пользователя.
Присваивание очередного номера уму источника Добавление источника в компонентную цепь Установка константы и ума соответствующего ей источника в динамическую таблицу идентификато ро в Помещение константы в стек операндов При разборе переменной в КЦ ей ставится в соответствие источник константы (рис. 2.46), если эта переменная численно определена, и компонент-регистратор значения переменной (рис. 2.4в), в случае, если она численно не определена. После чего данная переменная с соответствующим ей номером узла помещается в стек операндов.
В зависимости от алго ритма функционала сформированные компонентные подцепи рассчитываются при нахождении выходной переменной функционала (2.42); - Если функция принадлежит к стандартным математическим функциям, то каждый ее аргументов, представленный математическим выражением, подвергается разбору с помощью описываемого алгоритма. Результаты разбора аргументов, представленные в виде переменных, заносятся в стек операндов. Затем, выбирая их из него, алгоритм разбора математических выражений, ставит в формируемую КЦ компонент, соответствующий обрабатываемой функции. В случае определения функции пользователя по формуле (2.47) производится построение компонентной подцепи математического выражения MB , которая сохраняется в переменной типа данных функций пользователя, хранящая в себе имя функции, компонентную цепь и имена аргументов. При дальнейшем использовании данной функции ее подцепь встраивается в общую КЦ выражения.
По окончании разбора математического выражения, каждому оператору или функции, находящемуся в стеке операторов, ставится в соответствие компонент, реализующий его в рамках универсального вычислителя.
Таким образом, описанный алгоритм отображения математических выражений в языке компонентный цепей для любого математического выражения, введенного пользователем в редактор математических выражений, ставит в соответствие КЦ, рассчитав которую с помощью универсального вычислителя, можно найти значение этого выражения или значение переменной (переменных) при решении уравнения или системы уравнений.
Также описанный алгоритм используется для построения единой КЦ. системы математических выражений (СМВ), введенных пользователем в редакторе в качестве модели интерактивной математической панели. 3.3 Универсальный вычислитель
Универсальный вычислитель должен позволять анализировать техниче ские объекты и рассчитывать СМВ, не преобразовывая компонентную цепь к виду процедуры языка программирования, как было реализовано в старой вер сии универсального вычислителя [8, 9], реализованного на языке структурного программирования ФОРТРАН [66].
Структура и функционирование компьютерного тренажера на основе среды моделирования МАРС
Важным аспектом подготовки инженера является углубленная практическая подготовка, в ходе которой студент решает задачи по нахождению различных параметров СТУС, Наиболее успешное усвоение такого материала происходит тогда, когда, решив задачу вручную, обучаемый убеждается в правильности ее решения путем проведения вычислительного эксперимента, если данная задача может быть решена методами автоматизированного моделирования. Данная схема решения технических задач лежит в основе разработки компьютерных тренажеров (КТ) по техническим дисциплинам на основе СМ МАРС (рис. 1.1). В этом случае задача решается студентом в системе автоматизации математических вычислений Макрокалькулятор математическими и алгоритмическими конструкциями языка, После чего им формируется схема СТУС, исследуемого в задаче, или же она сформирована разработчиками КХ в системе моделирования МАРС из компонентов, представленных в БМК. Произведя вычислительный эксперимент, пользователь получает статические значения интересующих токов и напряжений или их зависимости от времени или частоты. Далее им производится обработка результатов эксперимента с помощью одной из функций (табл. 3.2 и табл. 3.3). Полученный экспериментальным путем результат считается эталонным, и пользователь, решая задачу в системе автоматизации математических вычислений Макрокалькулятор, сравнивает полученный ответ с ним.
На основе данной схемы построен КТ по курсу ТОЭ [83, 84]. Каждая из его глав состоит из следующих разделов:
1. Краткая теоретическая информация. Данный раздел содержит всю необходимую информацию, которая является краткой версией полного теоретического материала. Он содержит основные положения, необходимые для исследования представленных схем технических объектов аналитическими методами, а также основные расчетные формулы, использующиеся для решения задач и упражнений, предусмотренных в данной главе.
2. Проведение экспериментов. В разделе «Проведение экспериментов» приведены задачи, с помощью которых студент познает основные физические законы и явления, приобретает навыки лабораторного исследования объектов данной технической области. Являясь наиболее легкими задачами, они только демонстрируют суть изучаемых физических явлений, а также позволяют усвоить методики их исследования.
3. Упражнения. Раздел «Упражнения» позволяет закрепить полученный материал на сложных примерах. Для этого в нем рассматриваются решения более сложных задач, приводятся методические указания по расчету и исследованию схем.
4. Самостоятельное решение задач. В данрюм разделе приводятся задачи для самостоятельного решения, требующие от студента знание всего теоретического материала и владение навыками, приобретенными им в рамках изучения материала данной главы. После решения каждой конкретной задачи пользователь проверяет правильность своего решения с помощью проведения соответствующего эксперимента.
Согласно программе курса ТОЭ [85], компьютерный тренажер включает в себя следующие главы:
1. Ознакомительная глава. В данной главе приводится описание основных программных модулей, использующихся при изучении материала данного курса. Даются рекомендации по их использованию, а также поясняются принципы работы со сложными генераторами сигналов и измерительными приборами, использующимися в рамках данного КТ.
2. Элементы электрических цепей. В рамках данной главы описываются компоненты, использующиеся в рамках КТ, приводятся их основные математические модели, и также их графические обозначения. В данной главе приводятся эксперименты по изучению принципов действия источников постоянного тока и напряжения и различных зависимых источников, содержатся эксперименты по исследованию процессов, проходящих в емкостях и индук-тивностях.
3. Цепи постоянного тока. Теоретический материал данной главы содержит основные формулы по преобразованию линейных резистивных цепей. В качестве экспериментов в данной главе представлены эксперименты по последовательному и параллельному соединению резисторов и источников напряжения или тока. В разделе упражнения разбираются приемы преобразований двухполюсников, а также приводятся задачи для самостоятельного решения. Для исследования данных задач в СМ МАРС в качестве режима анализа применяется статический режим анализа, в котором рекомендовано применение измерительных компонентов-функционалов различных величин, результаты которых приводятся в численном виде.
4. Глава «Цепи переменного тока» посвящена вопросам исследования цепей переменного тока. Для анализа фазовых соотношений тока и напряжения на элементах рекомендовано применение двухканального осциллографа, а для проверки решения задач данной главы применяются компоненты-функционалы. Их результаты измерения приводятся в комплексном виде. Для получения этих результатов производится анализ заданной компонентной цепи в частотной области при частоте источника гармонического сигнала, включенного в данную цепь.
5. Глава «Резонансные цепи» содержит теоретический материал и практические эксперименты и упражнения по исследованию последовательного и параллельного колебательных контуров. Для изучения их поведения во временной области используется одноканальный осциллограф, способный измерять как напряжения на каком-то конкретном элементе, так и ток через него. Для построения основных частотных характеристик и получения некоторых величин, связанных с ними, в рамках данной главы используется построитель частотных характеристик.
6. Для исследования многофазных цепей, изучаемых в главе «Трехфазные цепи», в рамках универсального вычислительного ядра разработан автоматизированный вариант метода наложения [47], в основе которого лежит принцип нахождения отклика цепи от воздействия каждого источника в отдельности. Для визуализации результатов данного анализа используются компоненты-функционалы.