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

кандидата технических наук
Мокрый, Игорь Владимирович
город
Иркутск
год
1995
специальность ВАК РФ
05.13.16
Диссертация по информатике, вычислительной технике и управлению на тему «Технология разработки динамических имитационных моделей»

Автореферат диссертации по теме "Технология разработки динамических имитационных моделей"

ртб оа

РОССИЙСКАЯ АКАДЕМИЯ НАУК СИБИРСКОЕ ОТДЕЛЕНИЕ СИБИРСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ

На правах рукописи

МОКРЫЙ Игорь Владимирович

УДК 620.9:338.001.57

ТЕХНОЛОГИЯ РАЗРАБОТКИ ДИНАМИЧЕСКИХ ИМИТАЦИОННЫХ МОДЕЛЕЙ

Специальность 05.13.16 - Применение вычислительной техники,

математического моделирования и математических методов в научных исследованиях (энергетика)

Автореферат диссертации на соискание ученой степени кандидата технических наук

Иркутск - 1995

Работа выполнена в Сибирском энергетическом институте СО РАН.

Научный руководитель:

доктор технических наук, профессор Зорхальцев В.И.

Официальные оппоненты :

доктор технических наук Тятюшкин А.И. кандидат технических наук Шер И.А.

Ведущая организация:

Иркутский Вычислительный Центр СО РАН

Защита диссертации состоится" " уЛ^С^^ 1995 г. на заседании диссертационного Совета Д.002.30.01. при Сибирском энергетическом институте СО РАН в актовом зале института (664033, Иркутск, ул. Лермонтова 130, СЭИ СО РАН).

С диссертацией можно ознакомиться в библиотеке Сибирского энергетического института СО РАН

Автореферат разослан " £Н 1995 г.

Ученый секретарь диссертационного совета доктор технических наук

А.М. Клер

ТЕХНОЛОГИЯ РАЗРАБОТКИ ДИНАМИЧЕСКИХ ИМИТАЦИОННЫХ МОДЕЛЕЙ

Общая характеристика работы

Актуальность темы.

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

Системная динамика - одна из таких технологий, разработанная Дж. Форрестером, ориентирована на построение имитационных макромоделей экономических, энергетических, экологических, технологических, геохимических и других систем с неизменяемой структурой. Основными ее компонентами являются : методика разработки моделей: специализированный язык DYNAMO для записи моделей; транслятор языка; средства работы с оттранслированными моделями. Системная динамика эффективна при создании небольших моделей, содержащих не более чем 200 - 300 операторов языка DYNAMO.

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

Целью работы является.создание технологии моделирования поведения сложных систем, представляющей развитие системной динамики, которая позволяет, полностью сохраняя" преемственность последней, записывать модель в виде иерархии взаимосвязанных подмоделей и тем самым расширяет класс решаемых задач. Технология включает : язык для описания моделируемых систем (МС): транслятор с этого языка; программу, обеспечивающую интерфейс с оттранслированными моделями; библиотеку алгоритмов решения систем конечно-разностных уравнений; инструкции и методические рекомендации по составлению моделей.

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

Научную новнзну составляют и на защиту выпосятся следующие положения.

1. Определен класс задач, не вписывающийся в стандартные методы и средства системной динамики, и найден методический подход для решения таких задач.

2. Предложено расширение языка DYNAMO, позволяющее записывать модель в виде иерархии взаимосвязанных подмоделей.

3. Разработаны программы, реализующие расширенный язык.

4. Предложена новая методика моделирования.

Практическая ценность.

1. Программно реализована инструментальная система моделирования, включающая язык DYNAMO и его расширения. 2. Средствами этой системы построены : межотраслевая модель ГЕРМЕС; модель финансовых потоков в электроэнергетике; модель инфляционных процессов и изменения макроэкономических показателей КАССАНДРА и др.

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

Результаты диссертации опубликованы в 5-ти печатных работах, докладывались и обсуждались на IX байкальской школе-семинаре 'Методы оптимизации и их приложения" (Иркутск 1992), на IX всероссийской конференции "Математическое программирование и дриложения" (Екатеринбург 1995), на ученых советах и семинарах Сибирского энергетического института, на семинаре Иркутского вычислительного центра.

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

Диссертация состоит из введения, трех глав и заключения, пложенных на 115 страницах основного текста, включающего 37 рисунков, списка литературы, содержащего 27 наименований и 2 чрнложений.

Содержание работы

В главе 1 "Проблемы построения динамических моделей больших ;истем" определен класс задач системной динамики и описаны основные >тапы разработки модели.

Обоснована необходимость изменения методической схемы системной динамики при создании больших моделей.

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

В главе 2 "Инструментальная система моделирования" дано описание расширенного язьгка DYNAMO, которое распадается на язык -ранслятора и язык задании, интерпретатор которого включен в трограмму монитор. Приведены некоторые особенности программной )еализации. •

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

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

В языке определены объекты, входящие в состав любой модели. Это модельное время (TIME) и специальные параметры - время начала моделирования (START), время конца моделирования (FINISH), шаг моделированияфТ), период вывода результатов (PERIOD).

Запись имен динамических объектов осуществляется с признаками . J и .К - прошедшего и настоящего моментов времени или . JK и . KL -прошедшего и будущего интервалов времени.

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

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

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

Константы относятся к параметрам, т.е. к величинам, которые не меняются в течение одного прогона модели.

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

Подмодели представляют совокупности объектов, объединенных в блоки. Объекты в составе подмодели вычисляются согласно описанию, которое реализуется элементом языка "процесс".

В трансляторе реализованы следующие процедуры-функции. CLIP (X, Y, Z , Т) - функция-переключатель принимает значение первого аргумента X если выполняется условие Z>=P, иначе функция принимает значение второго аргумента Y.

МЕМО(Х,Т) - функция-память при первом обращении переприсваивает аргументы X и Т внутренним переменным MX и МТ. Затем в течение интервала времени МТ функция принимает значение MX, после чего переприсваивает X и Т и повторяет весь цикл.

DELAY (N, X, TAU, ХО ) - функция-запаздывание в каждый момент модельного времени принимает значение внутренней переменной с условным именем Zn, значение переменной Zn определяемся системой следующих, операторов:

L Z1.K=Z1.J+(DT)((X.J-Zl.J)*N/TAU) N ZI = ХО

L Zn.K=Zn.J+(DT) ( (Z[n-1] .J-Zn.J)*N/TAU) N Zn = XO

POWER (X, Y) - степенная функция принимает значение X в степени

Y.

MIN(X,Y), MAX(X,Y) - функции минимум и максимум принимают значения минимального и максимального аргумента соответственно.

TABLE (Т, X, Z1, Z2, Н) - табличная функция с линейной интерполяцией между узлами таблицы и с областью определения, ограниченной левой и правой границами.

TABHL (Т, X, Z 1, Z2, Н) - табличная функция с линейной интерполяцией между узлами таблицы и с неограниченной областью определения. За пределами границ функция принимает значения краевых узлов таблицы.

TA3ST (T,X,Z1,Z2,H) - табличная функция ступенчатого вида. Между границами функция принимает значение ближайшего левого

узла. За пределами границ функция принимает значения краевых узлов таблицы.

SQRT(X) , ЕХР(Х), LN(X) , SIN(X), COS(X), ARCTAN(X) -математические функции: квадратный корень, экспонента, натуральный логарифм, синус, косинус, арктангенс.

Операторы. В языке моделирования определено две группы операторов - операторы вычисления и операторы вывода.

Оператор вычисления вводит в модель (описывает) новый объект и присваивает ему некоторое числовое значение либо задает его функциональную зависимость от других объектов. В языке выделено 8 видов операторов вычисления. Вид оператора идентифицируется одним из следующих-ключевых слов:

К - опора юр начально! о .»начошы ypuint/i, L - оператор уровня;

А - оператор вспомогательной переменной;

R - оператор темпа:

С - оператор константы;

Т - оператор таблицы;

S - оператор дополнительной переменной;

Р - оператор подмодели;

SPEC - оператор специальных параметров.

Каждый оператор начинается с ключевого слова, соответствующего виду этого оператора, затем следует имя вычисляемого объекта, знак '=' (присвоить) и алгебраическое выражение. Например: NX = ХО

L ' Х..К = X.J + ( DT ) (R.JK) А V.К = TABHL(TV, TIME.К, 0, 5, 1) R R.KL = (V.К - X.К)/TAU С TAU = 5

Т TV = 1/2/2.4/.9/.1/0 S LOGE.K=LN(Е.К)/LN10 Р РОР7 =РОР(N7.К; DR7.KL)

SPEC START = О, FINISH = 20, DT = 1, PERIOD =

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

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

L <имя уровня>. К = <имя уровня>. J+ (DT) (<выражение>)

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

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

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

Оператор таблицы вводит в модель новый объект - таблицу и задает ее значение в виде последовательности чисел.

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

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

Р <1тя подмодели>—<пш процесса>( <выходные переменные>;

<входные переменные>)

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

Оператор специальных параметров присваивает константам START, FINISH, DT, PERIOD числовые значения.

Операторы вывода предназначены для представления на экране монитора и печати на принтере результатов счета в графическом или числовом виде. В языке выделено два оператора вывода - PLOT для вывода графической информации и PRINT для вывода числовой информации.

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

PROCES <имя процесса>(<выходные переменные>;

<входные переменные>) <... Функциональная модель на языке, исключая: операторы, вычисляющие входные переменные; оператор специальных параметров; операторы вывода....> PEND

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

входными переменными процесса могут быть уровни, вспомогательные переменные, темпы, константы;

выходными переменными процесса могут быть вспомогательные переменные и темпы;

каждый объект процесса, кроме уровня, может быть определен только один раз:

и

уровень должен быть описан один раз в операторе вида L и один раз в операторе вида N;

входные переменные процесса должны рассматриваться в качестве уже определенных объектов;

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

Модель представляет собой список операторов, удовлетворяющий определенным требованиям. Описание модели имеет следующий вид:

MODEL <имя модели>

< ... список операторов языка.....>

MEND

Для непротиворечивого описания МС вся совокупность введенных операторов должна удовлетворять следующим условиям:

каждый объект модели, кроме уровня, может быть определен только один раз;

уровень должен быть описан один раз в операторе вида L и один раз в операторе вида N;

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

дополнительная переменная не может использоваться при вычислении других объектов;

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

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

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

Удовлетворяющее отмеченным требованиям описание модели соответствует системе разностных (или. дифференциальных) уравнений с заданными начальными условиями (начальные значения уровней) в момент времени START и интервалом решения (START, FINISH).

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

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

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

Задание представляет последовательность следующих элементов : оператор константы; оператор таблицы; оператор специальных параметров; процесс; подмодель; оператор PLOT; оператор PRINT.

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

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

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

расчетов. Счет модели начинается, если встретился один из операторов вывода - PLOT или PRINT.

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

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

Оператор специальных параметров присваивает константам START, FINISH, DT, PERIOD числовые значения.

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

PROCES <имя процесса> <..Последовательность элементов языка: оператор константы; оператор таблицы...>

' PEND

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

Элемент "подмодель" описывает параметры некоторой подмодели, находящейся в составе текущей модели. Его описание состоит из заголовка, последовательности элементов языка и признака конца.

MODEL <имя подмодели>

<..Последовательность элементов языка: подмодель; оператор константы; оператор таблицы..>

MEND

Интерпретация заголовка подмодели состоит в установлении режима, обеспечивающего доступ к ее внутренним параметрам. Оператор константы или таблицы в данном режиме изменяет значение соответствующего параметра подмодели. Интерпретация элемента "подмодель" в данном режиме переопределяет режим доступа к объектам подмодели следующего уровня вложенности. Выход из режима подмодель осуществляется по признаку MEND.

В главе 3. "Методика и применение" рассмотрены этапы построения системы моделей на условном примере преобразования энергии в пищевой сети. Дан обзор различных имитационных моделей, построенных с использованием рассматриваемых инструментальных средств : межотраслевая модель ГЕРМЕС; модель финансовых потоков в электроэнергетике; модель инфляционных процессов КАССАНДРА..

Построение системы моделей включает три основных этапа: выделение из МС множества подсистем; построение моделей для полученных подсистем; построение модели всей МС.

Рассмотрим в качестве МС РЮ рц

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

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

PI Р2 РЗ Р4 Р5 Рб

Первым этап - разбиение МС на подсистемы зависит от целей исследователя и устройства исходной системы. В данном случае выделены подсистемы (Р7,Р1,Р2), (Р8,РЗ,Р4) и (Р9,Р5,Р6), каждая из которых описывается системой уравнений (1), представляющей модификацию известных уравнений Вито Вольтерра типа хищник-жертва.

d/dl{N2) = N2E2 - N2G2N (1)

d/dl{N) = 7V,G0|/V + N2G02N - NE

где AT, - энергия популяции жертвы 1, N2 - энергия популяции жертвы 2, N - энергия популяции хищника,

Еу,Е2 - норма накопления энергии (разность норм поступления и расходования энергии) в популяциях жертв 1 и 2,

Е - норма расходования энергии в популяции хищника, Gl,G2 - параметры, определяющие убыль энергии в популяциях жертв 1 и 2 в результате поедания их хищником,

G0„G02 - параметры, определяющие поступление энергии в популяцию хищника в результате поедания им жертв 1 и 2.

Предполагается, что пищевые ресурсы жертвы не ограничены. Для параметров G{,G2. G(n,G02 выполняются неравенства G0[<Gi и G02<G2. обусловленные законом сохранения энергии .

Второй этап - построение моделей полученных подсистем. Поскольку заранее не известно, является ли сам хищник жертвой, то оказывается удобно вынести член N*E, представляющий убыль энергии в популяции хищника, за пределы модели, и рассматривать его как экзогенный показатель DR. Это достигается благодаря представлению системы (1) на расширенном языке в виде процесса POP.

PROCES POP (N . К; DR. KL) • NOTE DR - смертность хищника L N1 .K=N1 . J4-(DT) (BR1.JK -DRl . JK) NOTE Жертва! N Nl=NlI

С N11=100

L N2 . K=N2 . J+(DT ) (BR2 . JK-DR2 . JK) NOTE Жертва 2 N N2=N2I С N21=500

L NN.K=NN.J+(DT) (BR.JK-DR.JK) NOTE Хищник

N NN=NN1 С NN1=500

R BRI.KL=(N1.К) (El) С El = 0. 1

R DRl.KL=(Nl.K) (NN.K) (Gl) С G1=0 ..006 R BR2.KL=(N2.К)(E2) С E2=0.1

R DR2.KL=(N2.K)(NN.K)(G2) С G2=0.006

R BR.KL=(NN.K)(Nl.K)(G01)+(NN.K)(N2.K)(G02). С G01=0.0021 С G02=0.0023 A N.K=NN.К PEND

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

MODEL POPUL

Р POPL=POP(N.K; DR.KL)

R DR.KL=N.K*E

С E=0.11 NOTE норма расхода энергии хищника SPEC START=0, FINISH=80, PERIOD=.2, DT=.02 PLOT N=N,P0PL.N1=1,POPL.N2=2 MEND

Третий этап - построение модели всей системы. Математическая модель всей экосистемы будет состоять из 11-ти уравнений. d/dl{Nx) = N\EX - NxAf7G, d/dl(Nz) = N2E2 - N2N1G2 dldt{N3) = N3E3-NiNiG3 d/dt{Ni) = NiEi-NiN&G, d/dt{N5) = N5Es - N5N9G5

d/dt(N6) = N6E6 - N6N9G6 (2)

d/dtiNj) = N1NlGl l + N1N2Gb2 - N,NwGliW

d/di{N&) = n&n3g%3 + лдом - ад0с8,|0 - ад ,G81,

d/di{N9) = N9N5G%5 + N9N6G9fi - N9N{ ,G9j1 ,

d/dt(Nl0) = N]0N7Gl0J + NuN,Gm - ВД0

d/dt{N,,) = W, .tyG, ,8 + TV, - ¿V| ,

Ha DYNAMO такая модель будет содержать около 80 операторов. Модель Р10Р11, реализующая систему уравнений (2), благодаря обращению к процессу POP, состоит из 29-ти операторов. MODEL Р10Р11

L N10.K=N10.J+ (DT)(BR10.JK -DR10.JK)

N N10=N10I NOTE Хищник 10

С N101=100

L N11.K=N11.J+ (DT)(BR11.JK -DR11.JK)

N N11=N1II NOTE ХищникП

С N111=150

R BRIO.KL=(N10 .К) (N7.К) (Gl 07)

X + (N10.К) (N8.К) (G108)

С G107=0.0021

С G108=0.0023

R DR10.KL=(N10 .К) (ЕЮ)

С E10=0.5

R BRl1.KL=(Nil .К)(N8.К)(Gl18)

X + (N11.К) (N9.К) (G119)

С G118=0.0024

С G119=0.0025 R DRU .KL=(N11 .К) (Ell) С E11=0 . 3

R DR7.KL=(N7)(N10)(G710) С G710=0.020 P POP7=POP(N7.К; DR7.KL)

NOTE N7 энергия популяции 7 R DR8.KL=(N8)(N10)(G810)+(N8)(N11)(G811) С G810=0.021 С G811=0.020 P POP8=POP(N8.K; DR8.KL)

NOT-E N8 энергия популяции 8 R DR9.KL=(N9)(N11)(G911) С G911=0.020 P POP9=POP(N9.К; DR9.KL)

NOTE N9 энергия популяции 9 SPEC START=0, FINISH=80, PERIOD=.2, DT=.02 PLOT P7.N1=1,P7.N2=2,P8.N3=3, X P8.N4=4,P9.N5=5,P9.N6=6

PLOT N7=7, N8=8, N9=9, N10=A, N11=B MEND

Модель ГЕРМЕС1 разрабатывалась коллективом авторов под руководством М.А. Гершензона. Она предназначена для решения следующих задач:

количественный анализ взаимосвязей энергетики и экономики в контексте толкования внешних связей отрасли;

оценка автономных связей показателей развития энергетики н экономики, инвариантных к допустимым (вероятным) изменениям

1Гершензон М.А. Имитационный подход к исследованию взаимосвязей в развитии энергетики и экономики.-Иркутск:СЭИ 1987,145 с.

основных экономических характеристик народного хозяйства (на рассматриваемом временном интервале).

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

Модель состоит из нескольких взаимосвязанных частей (блоков), описывающих: процесс фондообразования (блок "Фонды"); производство валовой продукции в разрезе семи отраслей народного хозяйства, включая две отрасли ТЭК (блок "Производство"); истощение ресурсов (блок "Ресурсы"); загрязнение окружающей среды (блок "Экология"); демографические процессы (блок "Демография"); формирование показателей прямых материальных затрат (блок "Технология"); потребность в продукции отраслей (блок "Потребность"); формирование затрат и цен на продукцию (блок "Цены"); доходов и расходов бюджета (блок "Бюджет"); напряженность межотраслевого баланса и бюджета (блок "Напряженность").

Модель ГЕРМЕС явилась первой, построенной средствами рассматриваемого здесь инструментария. В процессе своего развития она претерпела несколько структурных модификаций, связанных с новыми постановками задач.

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

2Г1етров H.H. Динамическая имитационная модель разви-тия электроэнергетики с элементами хозяйственного механизма:Препринт/ РАН.Сиб.отд-ние. Сиб.энерг.ин-т. - Иркутск. 1990,- 39 с.

топливопотребления, экономическое состояние отрасли и экологические последствия).

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

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

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

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

Модель КАССАНДРА3 разработана В.И. Зоркальцевым и О.В.Коневой. Она предназначена для прогнозирования инфляционных

5Зоркальцев В.И., Конева О.В. Влияние инфляции на развитие экономики: Препринт/ РАН.Сиб.отд-ние. Сиб.энерг.ин-т.- Иркутск, 1991,- 18 с.

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

(2(/) - объем валового национального продукта (ВНП); N(l) - производственные мощности (стоимость основных производственных фондов);

1(1) - объем выделяемых инвестиций в производственные мощности;

K(t) - объем реализуемых инвестиций;

M(t) - масса денег в обращении;

S(t) - скорость обращения денег;

P{i) - рост цен по отношению к базису (1985 г);

q(t) - текущий темп производства валового продукта;

n(t) - текущий темп производственных мощностей;

.':(■/ - : j:-.\.c.\i»¡ ¿шы. ...¡ожени,i.

!>i(l) - текущий темп роста массы денег в обращении;

,v(0 - текущий темп скорости обращения денег;

p(í) - текущий темп роста цен .

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

Ф)=лмт-

Функция f(p(t)) характеризует зависимость фондоотдачи от темпов инфляции. В модели она задана исходя из предположения, что существует некий близкий к единице темп инфляции (здесь 4% в год), при котором фондоотдача максимальна. Если темп инфляции превышает этот уровень, то фондоотдача снижается.

(i/dl{N{l)) = D Е L A Y(l ,K(t), lk\, Ка ) - ,V(/)/ß,

здесь р=20 - средний срок износа производственных мощностей, 1кх-2 -время реализации инвестиций.

l{t) = a{¡it))Q{t).

Функция a{p{t)) характеризует зависимость нормы накопления от темпов инфляции. Чем выше темп инфляции, тем меньше в обществе склонность к долгосрочным инвестициям. Поэтому a(p(t)) задана как монотонно убывающая функция.

К(1)=г(Ш<)

Величина r(p{t)) характеризует долю реализуемости инвестиций. Функция г(Дг)) за.т'на в модели как монотонно убывают'!:; с ростом темпа инфляции.

Чем выше темп инфляции, тем обычно выше и скорость обращения денег, поскольку население и предприятия не заинтересованы в этих условиях держать у себя сколько-нибудь долго обесценивающиеся деньги. Наоборот, если идет процесс дефляции, т.е. Д/)—»1, то становится выгодным придерживать нарастающие "в цене" деньги.

Величина р(() характеризует темп инфляции (среднего возрастания цен) в единицу времени. Эта величина определяется из уравнения обмена Ньюкомба-Фишера4:

[il) = m{t)s{i)¡q{t]

В представленной модели функция текущего темпа инфляции реализована еще и как совокупность двух составляющих:

где /^(í) - составляющая нерегулируемого изменения темпов роста цен ("мера хаоса");

¡h{t) - составляющая регулируемого роста.

В модели задаваемой величиной является удельный вес нерегулируемой составляющей роста цен. Регулируемая составляющая

4Фишер И. Покупательная сила денег, пер. с англ.-М.. 1926.

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

Показатели q(t), n(t), k{í), m{i) и s{l) определены как текущие темпы от показателей Q(í). N(t), K(i), M{i) и S(i) соответственно. Функция текущего темпа RATERA (í)) = е реализована в виде процесса.

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

Основные выводы п результаты работы

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

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

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

4. Для машин класса IBM РС-360 и выше разработана инструментальная система моделирование, включающая язык DYNAMO и его расширенния. Средствами данной системы построены: межотраслевая модель ГЕРМЕС: модель финансовых потоков в электроэнергетике; модель инфляционных процессов и изменения макроэкономических показателей КАССАНДРА и др.

Публикации по теме

1. Мокрый И.В. (в соавт. Гершензон М.А., Конева О.В.). Имитационная макроэкономическая модель взаимосвязей в развитии энергетики и экономики : Препринт/ РАН.Сиб.отд-ние. Сиб.энерг. ин-т. -Иркутск. 1991,- 33 с.

2. Мокрый И.В.(в соавт. Зоркальцев В.И., Конева О.В.), Модель инфляционного процесса, Зс.// Методы оптимизации и их приложения: Тезисы докладов. Иркутск:ИНЦ СО РАН, 1992 г.

3. Мокрый И.В. Программа, реализующая язык имитационного динамического моделирования DYNAMO //Тезисы докладов конференции "Математическое программирование и приложения", 22-26 фев. 1993 г.// Инф. бюлл. Ассоциации математического программирования, N 4,- Екатеринбург, ИММ УрО РАН, 1993 г., с.69

4. Мокрый И.В. Технология построения системы динамических моделей: Препринт/РАН.Сиб.отд-ние.Сиб.энерг.ин-т.Иркутск,1994 г. 39 с.

5. Мокрый И.В. Построение системы имитационных моделей // Тезисы докладов конференции "Математическое программирование и приложения". 27 фев.-З марта 1995 г .//Инф. бюлл. Ассоциации математического программирования, К 5,- Екатеринбург, ИММ УрО РАН. 1995 г., с.152

Оглавление автор диссертации — кандидата технических наук Мокрый, Игорь Владимирович

ВВЕДЕНИЕ.

ГЛАВА 1. ПРОБЛЕМЫ ПОСТРОЕНИЯ ДИНАМИЧЕСКИХ МОДЕЛЕЙ БОЛЬШИХ СИСТЕМ.

1.1. Задачи и методы системной динамики.

1.2. Специфика создания больших моделей.

1.3. Принцип модульности в моделировании (математический аспект).

ГЛАВА 2. ИНСТРУМЕНТАЛЬНАЯ СИСТЕМА МОДЕЛИРОВАНИЯ.

2.1. Язык транслятора.

2.2. Язык монитора.

2.3. Программная реализация.

ГЛАВА 3. МЕТОДИКА И ПРИМЕНЕНИЕ.

ЗЛ. Методика составления и исследования моделей.

3.2. Межотраслевая модель ГЕРМЕС.

3.3. Модель финансовых потоков в электроэнергетике.

3.4. Модель инфляционных процессов КАССАНДРА.

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

Актуальность.

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

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

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

Одним из известных и достаточно распространенных языков моделирования является предложенный Дж. Форрестером язык DYNAMO[l ,2,3,26], который был разработан, как составная часть технологии моделирования с общим названием - системная динамика.

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

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

Предлагаемые в работе расширение языка DYNAMO и его реализация, полностью сохраняя преемственность имеющейся системы, позволяют расширить класс решаемых задач, не увеличивая, а в некоторых случаях существенно сокращая, трудозатраты на составление моделей. Это достигается в том числе видоизменением методики построения моделей, которая предлагает: на первом этапе разбивать МС на более простые подсистемы и создавать модели этих подсистем; на втором этапе строить модель в виде иерархии взаимодействующих подмоделей этих подсистем.

Цель.

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

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

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

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

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

1. Определен класс задач моделирования, не вписывающийся в стандартные методы и средства системной динамики, и найден методический подход для решения таких задач.

2. Предложено расширение языка DYNAMO, позволяющее записывать модель в виде иерархии взаимосвязанных подмоделей.

3. Разработаны алгоритмы, реализующие расширенный язык.

4. Предложена новая методика моделирования.

Основные положения, выносимые на защиту,

1. Программная реализация языка DYNAMO.

2. Методический подход при построении больших имитационных динамических моделей.

3. Расширение языка DYNAMO и его программная реализация.

Апробация.

Результаты диссертации опубликованы в 5-ти печатных работах, докладывались и обсуждались на IX байкальской школе-семинаре "Методы оптимизации и их приложения" (Иркутск 1992), на IX всероссийской конференции "Математическое программирование и приложения" (Екатеринбург 1995), на ученых советах и семинарах Сибирского энергетического института, на семинаре Иркутского вычислительного центра.

Публикации.

По теме диссертации опубликовано 5 печатных работ.

Структура работы.

Диссертация состоит из введения, трех глав и заключения, изложенных на 115 страницах основного текста, включающего 37 рисунков, списка литературы, содержащего 27 наименований и 2 приложений.

Заключение диссертация на тему "Технология разработки динамических имитационных моделей"

ЗАКЛЮЧЕНИЕ

В работе получены следующие основные результаты

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

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

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

4. Для машин класса IBM РС-360 и выше разработана инструментальная система моделирования, включающая язык DYNAMO и его расширения. Средствами данной системы построены: межотраслевая модель ГЕРМЕС; модель финансовых потоков в электроэнергетике; модель инфляционных процессов и изменения макроэкономических показателей КАССАНДРА и др.

Развитие предлагаемой технологии может получить дальнейшее развитие по следующим направлениям:

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

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

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

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

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

1. Форрестер Дж. Основы кибернетики предприятия. - М.: Прогресс, 1971. - 340 с.

2. Форрестер Дж. Динамика развития города. М.:- Прогресс, 1974. - 286 с.

3. Форрестер Дж. Мировая динамика. М.: Наука, 1978. - 167 с.

4. Форрестер Дж. Антиинтуитивное поведение сложных систем. -в кн.: Современные проблемы кибернетики (Новое в жизни, науке и технике). Сер. Математика, кибернетика. N 7. «М: Знание, 1977, ^2-25.

5. Гершензон М.А. Имитационный подход к исследованию взаимосвязей в развитии энергетики и экономики.-Иркутск: СЭИ, 1987.- 145 с.

6. Гершензон М.А., Конева О.В., Мокрый И.В. Имитационная макроэкономическая модель взаимосвязей в развитии энергетики и экономики: Препринт/ РАН.Сиб.отд-ние. Сиб. энерг. ин-т. -Иркутск, 1991.- 33 с.

7. Петров Н.Н. Динамическая имитационная модель развития электроэнергетики с элементами хозяйственного механизма:Препринт/ РАН.Сиб.отд-ние. Сиб.энерг.ин-т. Иркутск, 1990.- 39 с.

8. Зоркальцев В.И., Конева О.В. Влияние инфляции на развитие экономики:Препринт/РАН.Сиб.отд-ние. Сиб.энерг.ин-т. Иркутск, 1991.- 18 с.

9. Зоркальцев В.И., Конева О.В., Мокрый И.В., Модель инфляционного процесса, Зс.// Методы оптимизации и их приложения: Тезисы докладов. Иркутск:ИНЦ СО РАН, 1992 г.

10. Федотов А.В., Лебедев В.О. Прогнозирование с использованием имитационных динамических моделей: Препринт/Jl ГТ И .-J1., 1980.-51 с.

11. Федотов А.В., Лебедев В.О., Кадыков М.Ю. Имитационное динамическое моделирование: Препринт/ЛПИ.-Л., 1984.- 43 с.

12. Фишер И. Покупательная сила денег, пер. с англ.- М., 1926.

13. Руденко Ю.Н., Ушаков И.А. Надежность систем энергегики. -М.:Наука, 1986. 253 с.

14. Криворуцкий Л.Д. Имитационная система для исследований развития ТЭК. Новосибирск: Наука, 1983. - 125 с.

15. Надежность систем энергетики. Терминология. -М.: Наука, 1980.-44 с.

16. Мокрый И.В., Технология построения системы динамических моделей: Препринт/РАН.Сиб.отд-ние. Сиб.энерг.ин-т. Иркутск, 1994.-39 с.

17. Беркович Р.Н., Корявов П.П., Павловский Ю.Н., Сушков Р.Г. DYNAMO язык математического моделирования (формальное описание) - М.:ВЦ АН СССР, 1972.

18. Бычков С.П., Перевицкий О.В., Фисун В.А. Входной язык компилятора с языка ДИНАМО для БЭСМ-6. Тезисы докладов Всесоюзной конференции "Математическое обеспечение моделирования сложных систем".-Киев:ИК АН УССР, 1977.

19. Киндлер Е. Языки моделирования: Пер. с чеш. М.:Энерго-атомиздат, 1985.-е. 288.

20. Дудорин В.И., Алексеев Ю.Н. Системный анализ экономики на ЭВМ.-М.: Финансы и статистика, 1986.-191 с.

21. Буч Г. Объектно-ориентированное проектирование с примерами применения: Пер. с англ. М.: Конкорд, 1992.- 519 с.

22. Математическая экономика на персональном компьютере: М34 Пер. с яп./М. Кубонива, М. Табата, С. Табата, Ю. Хасебэ; Под ред. М.Кубонива; М.: Финансы и статистика, 1991. - 304 с.

23. Pugh, Alexander L. DYNAMO II. Users Manual the M.I.T. Press, Cambridge, Mass and London, England, 1970

24. Theory and application of System Dynamics. New Time Press, 1987