Разработка XML-ориентированного языка описания вычислительных моделей (на базе алгебраических и обыкновенных дифференциальных уравнений) 1 Постановка задачи 31.1 Цели 41.2 Методы и инструменты 52 Обзор 63 Язык описания вычислительных моделей 73.1 Теоретическая модель 73.2 Язык описания численных методов 93.2.1 Методы решения алгебраических уравнений 103.2.1.1 Метод Гаусса 103.2.1.2 Итерационные методы 123.2.1.3 Стопперы итерационных методов 153.2.2 Методы решения обыкновенных дифференциальных уравнений 163.2.2.1 Методы, не имеющие параметров 163.2.2.2 Методы типа Рунге-Кутты 163.3 Параметры модели и их связь с численными методами 183.4 Расширение возможностей MathML 203.4.1 Новые типы данных 203.4.2 Вспомогательные теги 214 Реализация языка и полученные результаты 234.1 Описание структуры системы моделей, состоящих из алгебраических уравнений, и взаимосвязи параметров внутри неё на примере модели сердца 234.1.1 Теоретическая модель 234.1.2 Вычислительная модель 284.2 Описание модели, состоящей из дифференциальных уравнений, решаемых методами Рунге-Кутты, на примере ”модели экскаватора” 324.2.1 Общая структура и системы уравнений модели 334.2.2 Численный метод, решающий систему уравнений модели 344.2.3 Параметры модели 365 Заключение 38 ^ 1 Постановка задачи 1.1Цели В глобальном смысле данная работа направлена на повышение уровня воспроизводимости результатов научных исследований в области численного моделирования. С возрастающей сложностью научных исследований в области вычислительных экспериментов обнаружилась проблема невозможности воспроизвести результаты этих экспериментов. Существует множество программных реализаций конкретных вычислительных моделей, но нет единого стандартизованного подхода, который позволял бы воспроизводить эти реализации с целью их проверки или использования для других моделей. Для решения этой проблемы, необходимо выполнение одного из следующих условий. Во-первых, реализация может быть основана на каком-либо стандартном математическом пакете или пакете для моделирования (MathCAD, MATLAB и пр.). Таким образом, можно было бы выделить описание вычислительной модели в отдельный модуль с чётко выраженным интерфейсом и повторно использовать этот модуль по мере надобности. Однако, часто математические пакеты — это средства достаточно низкого уровня, чтобы интерфейс упомянутого модуля был стандартизован. Кроме того, пока не существует стандартного единого языка описания математических алгоритмов (и, тем более, языка описания математических моделей), который понимался бы всеми математическими пакетами. Очевидно, что ни один язык, встроенный в конкретный коммерческий программный продукт, на роль стандартного унифицированного языка претендовать не может. Во-вторых, формализованное описание алгоритмов и моделей может быть выполнено на не зависящем от какого-либо программного продукта языке, на роль которого сейчас претендует XML-ориентированный язык MathML. При таком подходе будет единая, чёткая, понятная всем структура вычислительных моделей и алгоритмов, но с другой стороны будет осложнено воспроизведение результатов вычислений, так как программная реализация должна будет осуществляться людьми, заинтересованными в этом воспроизведении.Идеальным вариантом, совмещающим достоинства обоих подходов, было бы расширение функциональности математических пакетов в сторону создания описаний численных методов, вычислительных моделей с возможностями импорта и экспорта этих описаний в унифицированном формате. Допустим, вычислительная модель описывалась бы в стандартном графическом формате UML, затем экспортировалась (импортировалась) в унифицированный текстовый формат XML и из него в математические пакеты:UML XML Мат. пакетыОднако, до поддержки такой технологии с двумя уровнями стандартизации математическим пакетам пока ещё далеко, и вопрос такой возможности лежит в плоскости научных исследований, а не только технических воплощений. Данная работа представляет собой как раз такое исследование, хотя она не покрывает и не может покрыть все выявленные ранее проблемы. Более конкретной целью этой работы является создание XML-ориентированного языка описания вычислительных моделей, состоящих из систем алгебраических или дифференциальных уравнений и численных методов, решающих эти системы. Назовём этот язык Simulation Markup Language (SimulML). Возможно, SimulML будет являться прослойкой между представлением о вычислительных моделях на семантическом уровне и программной реализацией этих моделей.^ 1.2Методы и инструменты Как уже упоминалось, для решения поставленных задач мы будем использовать расширяемый язык разметки XML (Extensible Markup Language). XML является подмножеством стандартного обобщенного языка разметки SGML (Standard Generalized Markup Language) и ориентирован не только на представление содержание текстовых документов (как, например, HTML), но и на хранение структуры документа, что делает XML мощным и гибким инструментом для проектирования информационных систем.Для описания математических выражений будет использоваться ^ XML-ориентированный язык MathML (Mathematical Markup Language). MathML создавался для унифицированного наглядного представления в текстовом формате математических формул. Предполагалось также, что MathML будет описывать логику и смысл математических выражений, но с этой задачей данный язык не справляется. Допустим, на MathML нельзя нормальным образом показать, что данный набор уравнений является системой и совокупностью. Отсутствуют также возможности циклических построений математических элементов (допустим, представление нескольких уравнений, заданных одной формулой по циклическому принципу) и описание логической последовательности расчётов. К тому же следует заметить, что MathML описывает только одну из трех составляющих современной вычислительной модели: формулы и уравнения, но не структуру модели и не рассчитывающие ее численные методы. Тем не менее, MathML широко применяется для обмена формул между математическими пакетами. Для систем моделирования такого языка не существует, и данная работа ставит целью его создание. 2Обзор В программных комплексах для моделирования уже применяются различные XML-ориентированные языки, которые ориентированы на ту или иную предметную область Эти языки описывают структуру соответствующих моделей, их параметры и зависимости между ними. Начиная с 90-х годов, это направление интенсивно развиваетсяОсобенно много подобных языков существует в областях химии, биологии и физиологиии: CellML , AnatML, BIOpolymer Markup Language (BIOML), Chemical Markup Language (CML), PhysioML, TissueML. Есть аналогичные разработки в области экономики: Business Process Modeling Language (BPML). Много языков моделирования существует в очень узких областях, например Face Modeling Language (FML) применяется в компьютерной анимации лица.Все эти языки более или менее предметно зависимы, то есть ориентированы на конкретную предметную область. Пока не решена задача извлечения из этих языков некой независящей от предметной области части. Эта часть достаточно велика: модели в очень многих областях сводятся к системам алгебраических и обыкновенных дифференциальных уравнений (средства для описания которых в существующих языках перемешаны со средствами для описания объектов предметной области). Поэтому одна из задач данной работы – создание предметно-независимого языка описания математических моделей указанного класса – обладает относительной новизной.Ещё большая новизна заключена в формализованном описании на основе XML численных методов для решения систем алгебраических и обыкновенных дифференциальных уравнений. В отличие от языков описания структуры моделей, при поиске литературы не было выявлено XML-ориентированных языков описания численных методов.^ 3Язык описания вычислительных моделей Язык SimulML состоит из нескольких связанных между собой частей, описывающих структуру модели, параметры модели и численные методы, используемые для решения уравнений в этой модели. Все математические формулы описаны с помощью MathML, но, однако, возможности этого языка не полностью удовлетворяют нашим задачам, поэтому блок тегов SimulML предназначен для расширения MathML.Таким образом, SimulML имеет блочную структуру и каждый логически выделенный нами блок тегов имеет собственный Document Type Definition (DTD). Такое разделение придаёт языку определённую гибкость и позволяет менять отдельные блоки без изменения структуры самого языка^ 3.1Теоретическая модель Теоретическая модель может описываться только формулами и значениями параметров, но она не обязана быть реализована с помощью какого-либо численного метода. Как правило, такие модели создаются не математиками, а экспертами соответствующей предметной области, которые обычно не оперируют с векторами, матрицами и другими сложными математическими объектами, но для них важно наличие у параметров модели определенных характеристик типа размерности, а также семантическая взаимосвязь между разными частями модели. На SimulML структура данных выглядит следующим образом:ELEMENT SystemofModels (SystemName, Model+, EquationSet+, Connection+)>ELEMENT SystemName (#PCDATA)>ELEMENT Model (ModelName,Description, ModelVariables, Model*)> id CDATA #REQUIRED type (in|out|calculated|regulated|constant) #REQUIRED description CDATA #IMPLIED dimension CDATA #IMPLIED units CDATA #IMPLIED> VariableName (ci)> Connection (Variable1,Variable2)> model1 CDATA #REQUIRED model2 CDATA #REQUIRED> Variable1 (#PCDATA)> Variable2 (#PCDATA)>Корневым элементом SimulML является SystemofModels. Этот элемент может содержать несколько элементов Model, описывающих конкретную вычислительную модель, элемент EquationSet, содержащий уравнения, связывающие параметры моделей системы, и элемент Connection, описывающий связи между параметрами в различных моделях.Элемент Model может иметь иерархическую структуру и содержать другие элементы Model. Помимо этого, Model включает в себя элементы с символьным содержанием ModelName (задаёт имя модели) и Description (описание модели); и элемент ModelVariables. В ModelVariables содержатся переменные, которые характеризуют модель на теоретическом(предметном) уровне. Это своего рода внешние переменные модели и именно о них шла речь в начале этого пункта, когда говорилось, что теоретическая модель может описываться только формулами и значениями параметров.Элемент ModelVariables содержит несколько элементов ModelVariable. У ModelVariable есть пять атрибутов атрибута. Атрибут id определяет смысловое значение переменной, (например, давление жидкости на стенки сосуда).Атрибут type определяет тип параметра: входной, выходной, расчетный, регулируемый или константа . Описание переменной может содержаться в атрибуте description; в атрибуте dimension содержится размерность переменной (например, сила, концентрация и пр.); единицы измерения описаны в атрибуте units.Каждый элемент ModelVariable включает в себя элемент VariableName и необязательный элемент VariableValue. VariableName содержит математическое имя переменной, которое может быть задано тегами MathML. VariableValue определяет числовое значение переменной. Параметры различных моделей, объединенных в одну систему, могут быть связаны между собой и эти связи описываются в элементе Connection. Этот элемент содержит два атрибута model1 и model2 , принимающих значения имён связанных моделей (имя модели содержится в элементе ModelName). Внутри элемента указаны имена связанных переменных в первой (Variable1) и второй (Variable2) моделях.Похожий способ связывания существует и в других XML-ориентированных языках, например, в CellML. Но там в теге задаются дополнительные элементы с атрибутами variable_1 и variable_2 , определяющих имена связанных переменных. В SimulML связывание реализовано, по сути, тем же образом, но более изящно.^ 3.2Язык описания численных методов В упомянутых в пункте 2 XML-ориентированных языках встречаются средства для описания расчетных параметров модели (например, шаг по времени), однако они не позволяют судить об использованном при моделировании численном методе и не отделены четко от параметров самой модели. В то же время вычислительный алгоритм часто обладает большей сложностью, чем модель предметной области, и для его описания на XML необходим специальный набор тегов, независимый от средств описания моделей. Описание численных методов предназначено уже не для эксперта предметной области, а для математика и может применяться независимо от задачи описания моделей, поэтому набор тегов, описывающих численные методы, вполне можно выделить в отдельный подъязык, который мы в дальнейшем мы будем именовать SimulNumML. SimulNumML описывает математическую формулировку модели, то есть оперирует не столько с параметрами модели и их взаимоотношениями, сколько с математическими объектами: векторами, вектор-функциями и пр.Опишем DTD этого языка, давая комментарии к нему по ходу описания. NumericalMethod ANY>Главный элемент языка NumericalMethod может включать в себя конкретные численные методы. Так как их количество в принципе не ограничено, то содержимое этого элемента обозначено ключевым словом ANY % NumMethod ” id ID #REQUIRED description CDATA #IMPLIED”>В тело главного элемента включена параметрическая сущность %NumMethod. Параметрические сущности обычно используются, когда стандартный набор атрибутов, логически связанных между собой, может часто наследоваться группой элементов. В нашем случае все конкретные численные методы наследуют уникальный идентификатор метода id и описание метода description у параметрической сущности %NumMethod, .^ 3.2.1Методы решения алгебраических уравнений Методы решения алгебраических уравнений бывают простыми и итерационными. Рассмотрим по одному методу из каждого типа^ 3.2.1.1Метод Гаусса GaussAEMethod (Datatype, MathBlock, MainElement?)> %NumMethod; >Элемент GaussAEMethod включает в себя элемент Datatype, описывающий тип переменных метода, элемент MathBlock, содержащий блоки математических выражений и необязательный элемент MainElement, который нужен для определния главного элемента в случае, если метод Гаусса будет реализовываться с выбором главного элемента. Также элемент GaussAEMethod наследует атрибуты параметрической сущности %NumMethod MathBlock (Name, (Math|MathBlock+))> Name (#PCDATA)>Структура, создаваемая элементами MathBlock, позволяет указать логику в математических формулах MathML. Например, в случае метода Гаусса можно отделить прямой ход метода от обратного. Каждый MathBlock имеет имя и может содержать как математические выражения в теге Math, так и другие элементы MathBlock. Все математические выражения, описывающие тот или иной численный метод, являются статическими и не зависят от каких-либо внешних параметров. В связи с этим было бы не очень разумно каждый раз включать их в xml-документы, описывающие модель. Правильнее было бы вынести все математические формулы в отдельный xml-документ для каждого численного метода. MathBlock^ XML:LINK CDATA #FIXED “SIMPLE” HREF CDATA #REQUIRED SHOW (EMBED | REPLACE | NEW) “EMBED” ACTUATE (AUTO | USER) “AUTO”> Эта ссылка реализована с помощью XLINK и выглядит следующим образом:Документ GaussAEMethod.xml состоит из нескольких элементов MathBlock и математических выражений на MathML (мы их здесь не будем приводить для экономии места):directwaya-equation…b-equation…reverseway …Math>Прямой ход метода Гаусса определяет переменные a и b, обратный ход определяет переменные x. Таким образом, блочная структура элементов MathBlock даёт нам возможность показать логику вычислений, о чём говорилось ранееТег MainElement содержит внутри номер главного элементаВ заключение, приведём код на языке SimulNumML, описывающий метод Гаусса.^ Пример xml-кода, описывающего метод Гаусса: id=”GaussAEMethod” description=”Direct algebraic method for linear algebraic equations”> A matrix b vector Block HREF=”GaussAEMethod.xml”/> > l int ^ 3.2.1.2Итерационные методы Итерационные методы решения алгебраических уравнений в отличие от прямых методов характеризуются неким набором условий, при котором метод заканчивают свою работу (назовём этот набор условий стоппером итерационного метода). IterativeAEMethod (Datatype, MathBlock, InCondition, MethodParam)> %NumMethod; stopper IDREF #REQUIRED type (LinearMethod| UnlinearMethod) #IMPLIED> Атрибут stopper в элементе IterativeAEMethod является маркированным и имеет тип IDREF. Атрибуты такого типа указывают на другие элементы в xml-документе и их значения должны совпадать со значениями атрибутов типа ID этих элементов. Атрибут stopper указывает на элемент, определяющий стоппер данного численного метода. Атрибут type определяет, какой тип итерационного метода будет использоваться: для линейных или нелинейных уравнений. Этот атрибут нужен, поскольку имеет место разная математическая реализация численного метода в случае линейной и нелинейной системы уравнений. Элемент IterativeAEMethod включает в себя также элемент InCondition, описывающий начальное условие применимости метода простых итераций (|F’(x)|В элементе MethodParam задаются значения переменных метода, которыми в данном случае являются максимальное число итераций и необходимая точность вычислений, использующиеся в стопперах.^ Пример xml-кода, описывающего метод простых итераций: Method of simple iterations for system of unlinear equations–> xParam> vectorParamType> DataType> FParam> fnParamType> vectorParamType> DataType> x0Param> vectorParamType> DataType> xci> bvar> fci> xci> apply> apply> apply> 1cn> apply> math> InCondition>IterativeAEMethod> NParam> intParamType> DataType> MaxIterationCount> IterationsCountStopper> IterationsStopper> N NumericalMethod> В этом примере метод простых итераций использует IterationsCountStopper, останавливающий итерационный процесс, когда число итераций достигнет определённого значения. Подробнее о стопперах расскажем в следующем пункте^ 3.2.1.3 Стопперы итерационных методов MENT IterationsStopper (IterationsCountStopper | ToleranceIterationsStopper | ComplexIterationsStopper)>Стопперы бывают трёх различных видов: по максимальному числу итераций (IterationsCountStopper), по заданной точности (ToleranceIterationsStopper) и комплексный стоппер, учитывающий в совокупности оба этих фактора (ComplexIterationsStopper). id ID #REQUIRED description CDATA #IMPLIED> MaxIterationCount (Datatype)>IterationsCountStopper включает в себя элемент MaxIterationCount, определяющий максимальное число итераций. Пример xml-кода данного стоппера был приведен в предыдущем пункте.LIST ToleranceIterationsStopper id ID #REQUIRED description CDATA #IMPLIED>В элементе Tolerance задаётся точность, по достижению которой итерации прекращаются ComplexIterationsStopper (Math, MaxIterationCount, Tolerance)> id ID #REQUIRED description CDATA #IMPLIED>Комплексный стоппер определяет как максимальное число итераций, так и точность вычислений. MaxIterationCount и Tolerance объявлены именно элементами, а не атрибутами, поскольку это продиктовано способом передачи значения этих параметров от тега к численному методу.^ 3.2.2Методы решения обыкновенных дифференциальных уравнений 3.2.2.1Методы, не имеющие параметров T DefaultODEMethod %NumMethod; >Методы, не имеющие собственных параметров, просто наследуют атрибуты параметрической сущности %NumMethod^ 3.2.2.2Методы типа Рунге-Кутты RungeKuttaMethod (MathBlock, ButcherTable)> %NumMethod; type (Explicit | Halfplicit | Implicit) “Explicit”>Методы типа Рунге-Кутты имеют ряд числовых параметров, записываемых в таблицу Бутчера. Для этих параметров мы ввели специальный элемент ButcherTableЭлемент RungeKuttaMethod наследует атрибуты параметрической сущности %NumMethod и имеет атрибут type, определяющий является ли этот метод явным, неявным или полуявным^ Пример xml-кода, описывающего метод Рунге-Кутты: id=”RungeKuttaMethod” description=”RungeKutta method for ordinary differential equations”> type=”out”> v vector type=”calculated”> r vector f fn vector Block HREF=”RungeKuttaMethod.xml”/> a vector c vector B matrix Вначале заданы типы данных, применяемых в методе переменных: входной параметр вектор-функция f, промежуточный параметр вектор r и выходной параметр вектор v. Затем с тега MathBlock стоит ссылка на xml-документ, непосредственно описывающий математические формулы метода. В элементе ButcherTable определены типы данных переменных, используемых в таблице Бутчера. Таким образом, элемент ButcherTable является аналогом элемента MethodParam в итерационных методах. ^ 3.3Параметры модели и их связь с численными методами Для численной реализации созданной экспертами теоретической модели с помощью математических методов необходимо связать воедино структуры данных, описанные в пунктах Error: Reference source not found и 3.2. Дело в том, что численные методы требуют иной формализации исходных данных, чем модель, описанная на семантическом уровне. Основным содержанием XML-тегов, описанных ниже, является формализованное представление параметров вычислительной модели, которое делает удобным передачу этих параметров численным методам. В принципе, такое представление можно получить и без теоретического описания модели, однако параметры вычислительной модели могут быть связаны с параметрами теоретической модели, которые обладают другими характеристиками и сгруппированы по смыслу, а не по математическим признакам. Кроме того, строгая формализация параметров позволяет универсальным образом описывать соотношения между параметрами в виде систем уравнений; в разделе Error: Reference source not found намеренно не предусмотрены функциональные соотношения между параметрами, поскольку способ их представления сильно зависит от предметной области. EquationSet (EquationSetDescription?, MathBlock,ModelParametres, NumericalMethod)> ModelParametres (ModelParam+)> ModelParam (Param, ParamValue) use_in IDREF #REQUIRED type (in|out|calculated|regulated|constant|def) ”in”>Модель может иметь несколько систем уравнений, поэтому может быть несколько элементов EquationSet.Каждый такой элемент в свою очередь содержит элементы EquationSetDescription (словесное описание данной системы), MathBlock (математические формулы на MathML), ModelParametres (параметры модели, использующиеся в численных методах) и NumericalMethod (численный метод, используемый для решения данной системы уравнений). Элементы ModelParametres и ModelVariables имеют практически одинаковое название, но по содержанию они отличаются.Элемент ModelParametres содержит внутренние параметры моделей, передающиеся численным методам.. Параметры внутри этого тега могут быть различными математическими объектами (вектор, матрица и т.п.) и не обязательно должны иметь числовые значения – они могут задаваться формулой. Различные переменные вполне могут дублироваться в элементах ModelVariables и ModelParametres, но это никоим образом не опровергает объективных различий между этими элементами. В ModelVariables содержатся переменные, характеризующие систему моделей на теоретическом уровне, в то время как ModelParametres содержит параметры, участвующие в вычислительных операциях внутри модели.Элемент ModelParametres состоит из нескольких элементов ModelParam. Каждый элемент ModelParam включает в себя элементы Param (содержит имя параметра) и ParamValue (значение параметра).Атрибут use_in элемента ModelParam ссылается на название метода или части этого метода, где данный параметр используется. Этот атрибут может ссылаться как на сами методы (например, use_in=”RungeKuttaMethod”), так и на их составные части (use_in=”ButcherTable”, например).Атрибут type определяет тип параметра. К значениям этого атрибута, перечисленным в пункте Error: Reference source not found для элемента ModelVariables, добавилось значение “def” – type принимает это значение, когда параметр определяется математической формулой . По умолчанию type принимает значение ”in”.ELEMENT Param (ci)> overdetermined_name CDATA #IMPLIED> ParamValue (cn | vector | matrix | apply)>Элемент Param имеет атрибут overdetermined_name, который при необходимости переопределяет имя параметра, используемое в системе уравнений модели. Дело в том, что в численном методе зарезервированы имена для входящих в него переменных и они могут не совпадать с именем параметра, который модель передаёт численному методу.Чтобы избежать двусмысленности и путаницы можно переопределять имена параметров с помощью атрибута overdetermined_name. Допустим, мы имеем систему уравнений, решаемую методом Рунге-Кутта, в которой искомым параметром является вектор p. Так как в нашем описании метода Рунге-Кутта выходным параметром является вектор v, то мы можем переопределить имя этой переменной следующим образом:verdetermined_name=”v” >pЭлемент ParamValue содержит значение, которое модель передаёт численному методу. Обратим внимание, что это может быть не только численное значение, но и матрица, вектор, вектор-функция, то есть любой математический объект. Описывается этот объект с помощью тегов MathML.^ 3.4Расширение возможностей MathML 3.4.1Новые типы данных В численных методах фигурируют такие параметры как вектор-функция, матрица, элементами которой является функции и т.п. Возможности MathML ограничены и подобные типы данных отсутствуют в этом языке, поэтому приходится доопределять такие переменные с помощью элемента Datatype, уже встречавшегося в пункте 3.2.Опишем этот элемент в DTD: DataType type CDATA (in|out|calculated|regulated|constant) “in”> ParamType (vector | fn | matrix | set | int | real | bool)>Параметр type элемента Datatype может принимать значения, описанные в пункте Error: Reference source not found для элемента ModelVariables. По умолчанию type принимает значение ”in”, то есть параметр считается входным.Элементы ParamType определяют тип данных параметра и могут принимать значения ”вектор”, ”функция”, ”матрица”, ”множество”, ”целое число”, ”действительное число”, ”булиновская переменная”.Сложные типы данных образуются с помощью комбинации элементов ParamType, причём важна последовательность, в которой эти элементы расположены.Допустим, код f fn vector указывает на то, что f является вектор-функцией, а код f vector fn определяет f как функцию многих переменных.^ 3.4.2Вспомогательные теги В MathML отсутствуют теги, направленные на описание логики математических вычислений. С целью элементарного структурирования формул в численных методах мы ввели элемент MathBlock , но его оказалось недостаточно для адекватного описания логики вычислений.Наиболее остро чувствуется невозможность создания циклических построений для более-менее точного описания численных методов и систем уравнений. Эту проблему можно решить с помощью определения в MathML дополнительного элемента . for (ci,(apply|ci|cn),(apply|ci|cn),cn,(apply|for))>Как видим, for включает в себя пять элементов. Первый элемент содержит переменную цикла. Очевидно, что только ci может быть таким элементом. Второй и третий элементы задают нижний и верхний предел цикла соответственно. Эти пределы могут быть числом, переменной или формулой. Четвертый элемент в теге определяет шаг цикла. Наконец, пятый элемент содержит либо тело цикла в теге , либо новый цикл в теге . Элемент активно используется для описания метода Гаусса. Здесь же приведём более простой пример : допустим нам нужно задать n уравнений , где i=1…n; k=0..i-1. Этот цикл будет выглядеть следующим образом:i1nk0i1aiak]b^ 4Реализация языка и полученные результаты 4.1Описание структуры системы моделей, состоящих из алгебраических уравнений, и взаимосвязи параметров внутри неё на примере модели сердца ^ 4.1.1Теоретическая модель В этом пункте будет описание теоретической модели на основе DTD, изложенного в Error: Reference source not found Модель кровообращения имеет некоторые параметры и включает в себя другие модели:Модель 1 — Кровообращение ^ Значение переменной Тип Имя Величина Единицы измерения Размерность Системный кровоток расчетный Q 70 мл/с Поток Давление на выходе из большого круга расчетный 3 мм.рт.ст Давление Давление на входе в малый круг расчетный 13 мм.рт.ст Давление Давление на выходе из малого круга расчетный 6 мм.рт.ст Давление Давление на входе в большой круг расчетный 100 мм.рт.ст Давление Модель 1.1 — Сосудистая система Модель 1.1.1 — Большой круг Общее сопротивление константа R1 1.4 мм.рт.ст/(мл/с) Сопротивление Жесткость (артерий) константа E1 0.8 мм.рт.ст/мл Жесткость Модель 1.1.2 — Малый круг Общее сопротивление константа R2 0.115 мм.рт.ст/(мл/с) Сопротивление Модель 1.2 — Сердце Частота сердечных сокращений константа ν 65 уд/мин Частота Длительность систолы константа τs 0.28 с Время Модель 1.2.1 — Правый желудочек Сопротивление («ЭДС») константа Rж мм.рт.ст/(мл/с) Сопротивление Модель 1.2.2 — Левый желудочек Жесткость желудочка константа K 0.54 мм.рт.ст/мл Жесткость Выходная жесткость входной E 0.8 мм.рт.ст/мл Жесткость Выходное сопротивление входной R 1.4 мм.рт.ст/(мл/с) Сопротивление Диастолическое давление входной Pd 6 мм.рт.ст Давление Нижнее артериальное давление выходной Pa 80 мм.рт.ст Давление Систолическое давление расчетный Ps 120 мм.рт.ст Давление Максимальное систолическое давление регулиру-емый Pm 280 мм.рт.ст Давление Систолический объем расчетный Vs 70 мл Объем Минимальный систолический объем регулиру-емый Vm 40 мл Объем Диастолический объем регулиру-емый Vd 130 мл Объем Ударный объем расчетный ΔV 60 мл Объем Формулизуем эту иерархическую структуру модели на SimulML: Организм человекаSystemName> КровообращениеModelName> Qci> VariableName> 70VariableValue> ModelVariable> Pmi> outmi> 1mn> msubsup> ci> VariableName> 3VariableValue> ModelVariable> Pmi> inmi> 2mn> msubsup> ci> VariableName> 13VariableValue> ModelVariable> Pmi> outmi> 2mn> msubsup> ci> VariableName> 6VariableValue> ModelVariable> Pmi> inmi> 1mn> msubsup> ci> VariableName> 100VariableValue> ModelVariable> δ;V ci> VariableName> ModelVariable> ModelVariables> Сосудистая системаModelName> Большой кругModelName> Rmi> 1mn> msup> ci> VariableName> 1.4VariableValue> ModelVariable> Emi> 1mn> msup> ci> VariableName> 0.8VariableValue> ModelVariable> ModelVariables> Model> Малый кругModelName> Rmi> 2mn> msup> ci> VariableName> 0.115VariableValue> ModelVariable> ModelVariables> Model> Model> СердцеModelName> νci> VariableName> 65 VariableValue> ModelVariable> τci> VariableName> 0.28 VariableValue> ModelVariable> ModelVariables> Правый желудочекModelName> Rmi> жmi> msub> ci> VariableName> 0.115VariableValue> ModelVariable> ModelVariables> Model> Левый желудочекModelName> Kci> VariableName> 0.54VariableValue> ModelVariable> Eci> VariableName> 0.8 VariableValue> ModelVariable>
Похожие работы
Альфред адлер: индивидуальная теория личности биографический очерк
АЛЬФРЕД АДЛЕР: ИНДИВИДУАЛЬНАЯ ТЕОРИЯ ЛИЧНОСТИ БИОГРАФИЧЕСКИЙ ОЧЕРКАльфред Адлер (Alfred Adler) родился в Вене 7 февраля 1870 года, третьим из шести детей. Как и Фрейд, он…
«Макроэкономические проблемы рф»
Секция 10. «Макроэкономические проблемы РФ»Руководитель – Еремина Марина Юрьевна, доцент кафедры «Экономика и управление»Место проведения: Аудитория 518 учебного корпуса 7 Голев Степан Вячеславович, «Камчатский государственный…
«Страна Буквляндия»
Всем учителям, которые убеждены в том, что при обучении иностранному языку удовольствие и успех идут вместе.УЧИМСЯ ЧИТАТЬ, ИГРАЯПисецкая Алина, НОУ “Аврора”БлагодарностьМне бы хотелось поблагодарить тех,…
Xvi международная конференция
XVI Международная конференция «Информационные технологии на железнодорожном транспорте» и выставка отраслевых достижений «ИНФОТРАНС-2011»11-12 октября, г. Санкт-Петербург, «Парк Инн Прибалтийская» IT-инновации для железнодорожного транспортаОрганизатор: ООО «Бизнес…
«фізика навколо нас»
Фізичний вечір на тему: «ФІЗИКА НАВКОЛО НАС»І. Вступ(Лунає музика.Виходять учні)Учень.УВАГА! УВАГА!На вечорі цьомуНемає артистів, еквілібристів,Дуетів,квартетів,славетних солістів.Ровесники, друзі,Тут ваші знайомі,Що разом із вами за партами сидять.Ми…
«экспресс каникулы в скандинавии» финляндия швеция обозначение тура: фш3
«ЭКСПРЕСС КАНИКУЛЫ В СКАНДИНАВИИ»ФИНЛЯНДИЯ – ШВЕЦИЯ Обозначение тура: ФШ3 Круиз по Балтийскому морю – ХЕЛЬСИНКИ – ТУРКУ – СТОКГОЛЬМ ОТЪЕЗД ИЗ САНКТ – ПЕТЕРБУРГА: на…