Помощь в учёбе, очень быстро...
Работаем вместе до победы

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

РефератПомощь в написанииУзнать стоимостьмоей работы

DELAYPPL (INPut, ‘Delay Time', Initial = INPut) — функция для получения датированного значения переменной INPut с лагом ‘Delay Time' и начальным значением Initial = INPut; В этом случае для доступа к значениям переменных верхнего уровня по отношению к текущей подмодели по прежнему используется синтаксис. На верхнем (родительском) уровне переменная Output использует следующий синтаксис для доступа… Читать ещё >

Применение сложных аналитических функций в имитационных моделях (реферат, курсовая, диплом, контрольная)

Следует отметить, что в системе Powersim поддерживается много аналитических (в том числе математических, статистических, финансовых и др.) функций, подробное описание которых имеется в работе [ 141. Тем не менее среди данных функций можно выделить некоторые, применение которых существенно расширяет возможности имитационного моделирования.

К таким функциям, в частности, можно отнести следующие:

  • • DELAYPPL (INPut, ‘Delay Time', Initial = INPut) — функция для получения датированного значения переменной INPut с лагом ‘Delay Time' и начальным значением Initial = INPut;
  • • GRAPH (X, XI, Dx, Y (N)) — функция для построения графика зависимости значений переменной У от переменной Х
  • • VBFUNCTION (Dimensions | Expressions | Script) — функция, позволяющая разрабатывать собственные программы на VBScript.
  • • NORMAL ([Mean = 0 |, Deviation = 1 [ Seed] 11) — функция, обеспечивающая генерацию случайных значений в соответствии с нормальным распределением;
  • • TIME — системное время;
  • • XLDATA (File, Sheet, Area [, Options])["unit>>] — функция, возвращающая в систему Powersim величины ячеек области листа MS Excel как скалярные, векторные, двумерные и трехмерные массивы;
  • • Parent~ — синтаксис, используемый для доступа к значению переменной Variable Name в иерархических моделях.

Рассмотрим данные функции немного подробнее. Например, с помощью функции DELAYPPL можно реализовать рекурсивные зависимости следующего тина:

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

гдех (?) — переменная вспомогательного типа; t — время; а — временной лаг (например, а = 1); k — некоторый коэффициент (рис. 6.19).

Реализация рекурсивной зависимости в системе Powersim.

Рис. 6.19. Реализация рекурсивной зависимости в системе Powersim.

Соответственно, в переменных х и х — 1 используются следующие формулы:

аих х = ‘х-1'*1,1.

аих ‘х-1' = DELAYPPL (x;l"mo"; 10).

В результате при прогоне модели на интервале с 2013 но 2014 г. с шагом 1 мес. формируются следующие значения переменных х и х — 1, что соответствует заданной рекурсивной зависимости с начальным значением 10 и коэффициентом роста 1,1:

Время.

1 января 2013 г.

1 апреля 2013 г.

1 июля 2013 г.

1 октября 2013 г.

1 января 2014 г.

X

11,00.

14,64.

19,49.

25,94.

34,52.

х- 1.

10,00.

13,31.

17,72.

23,58.

31,38.

Далее рассмотрим использование функции GRAPH. Следующий пример обеспечивает построение графика, изображенного на рис. 6.20.

aux Л = GRAPH (‘Period Number', 30,30,.

{0.45,0.49,0.61,0.91,0.93,0.64,0.14,0.25,0.63,0.58,0.53}).

аих ‘Period Number' = (TIME — STARTTIME)/TIMESTEP.

Puc. 6.20. Построение графика в системе Powersim.

Puc. 6.20. Построение графика в системе Powersim.

Здесь функция TIME используется для определения текущего модельного времени, STARTTIME — начальное модельное время, TIMESTEP — шаг модельного времени.

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

В результате выполнения следующей программы формируется числовой массив {10; 60; 30}:

VBFUNCTION (1.3 | {1,6,3} |.

«for i = 0 to 2».

«Result (i) = Paraml (i)*10».

«next».

> = {10,60,30}.

При этом входной параметр РагатЛ принимает значения из массива {1; 6; 3}.

Следующая программа обеспечивает пузырьковую сортировку массива Array (рис. 6.21):

range cells = 1.10 // Создан глобальный диапазон 1.10 const Array= FOR (cells | ROUND (100*RANDOM ())).

// Массив с измерением cells, заполненный случайными числами от 1 до 100 aux BubbleSort =.

V В FUN CTI ON («arrSorted» = cells | «arrINPut» = Array |.

«arrSorted = arrINPut».

«for i = 0 to ubound (arrSorted) — 1».

«for j = 0 to ubound (arrSorted) — 1».

«if arrSorted (j) > arrSorted (j + 1) then».

«temp = arrSorted (j+l>».

«arrSorted (j+l> = arrSortcd (j)».

«arrSortedfj) = temp».

«end if'.

«next».

«next»).

Функция NORMAL обеспечивает генерацию случайных значений в соответствии с нормальным распределением. Входными параметрами данной функции является математическое ожидание {Mean) и стандартное отклонение (Deviation). Параметр Seed используется в качестве начального значения для датчика псевдослучайных чисел.

Функция XLDATA используется для загрузки данных из программы MS Excel в систему Powersim.

Например, следующий синтаксис:

XLDATA («C:/Users/l/Documents/New.xlsx»; «Лист1»; «R2C2:R3C3»),.

обеспечивает загрузку значений ячеек диапазона R2C2: R3C3 из листа «Лист1» рабочей книги «New.xlsx» (рис. 6.22).

Реализация алгоритма пузырьковой сортировки в системе Powersim.

Рис. 6.21. Реализация алгоритма пузырьковой сортировки в системе Powersim.

Загрузка значений ячеек программы MS Excel в модель системы Powersim.

Рис. 6.22. Загрузка значений ячеек программы MS Excel в модель системы Powersim.

Далее рассмотрим вопрос проектирования иерархических моделей в системе Powersim.

Синтаксис.

Parent~.

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

Проектирование иерархических моделей в системе Powersim.

Рис. 6.23. Проектирование иерархических моделей в системе Powersim.

Подмодель Model_ 1 в рассматриваемом примере содержит элементы, представленные на рис. 6.24.

Пример реализации подмодели в системе Powersim.

Рис. 6.24. Пример реализации подмодели в системе Powersim.

Данные элементы содержат следующие записи:

aux INPut = Parent-INPut.

const Constant_l = 11,5.

aux Output = INPut*Constant_l.

На верхнем (родительском) уровне переменная Output использует следующий синтаксис для доступа к соответствующей переменной подмодели:

aux Output = Model_l.Output.

Следует отметить, что для доступа к значениям входных родительских переменных (Parent ~ Input.) и выгрузки соответствующего выходного значения переменные Input и Output на уровне подмодели должны иметь тип Public (который устанавливается на вкладке Advanced — свойства переменной).

Важным аспектом построения иерархических моделей является использование объектов типа уровень {Level) со свойством Public на уровне подмодели (рис. 6.25).

Пример реализации подмодели в системе Powersim.

Рис. 6.25. Пример реализации подмодели в системе Powersim.

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

Следует отметить, что возможна реализация иерархической модели с несколькими вложенными подмоделями. Например, основная модель включает подмодель Model l, которая содержит подмодель Model_2 и т. д. (рис. 6.26).

Пример реализации нескольких вложенных подмоделей.

Рис. 6.26. Пример реализации нескольких вложенных подмоделей.

в системе Powersim

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

Parent~.

Показать весь текст
Заполнить форму текущей работой