Главная страница
Навигация по странице:

  • 5. ОПРЕДЕЛЕНИЕ ПЕРЕМЕННЫХ

  • Сохранение документа

  • Моделирование и наглядное представление

  • Имитационное моделирование экономических процессов


    Скачать 0.64 Mb.
    НазваниеИмитационное моделирование экономических процессов
    Дата11.12.2021
    Размер0.64 Mb.
    Формат файлаdoc
    Имя файлаmetodichka_imitacionnoe_modelirovanie_ehkonomicheskikh_processov.doc
    ТипМетодические указания
    #300272
    страница2 из 4
    1   2   3   4

    Внимание! Если Вы не дотянете указатель до накопителя, поток будет указывать на облачко и окажется никак не связанным с накопителем Pond level (рис. 6). В этом случае следует щелкнуть по изображению потока - он будет выделен двумя черными квадратиками в начале и в конце, и нажать кла­вишу Del. Неудачное изображение ис­чезнет, и появиться возможность заново создать поток, стрелка которого укажет на накопитель.

    Аналогично промоделируем трубу, по которой вода выливается из бассей­на. Для этого нужно, щелкнув по кнопке регулируемого потока, устано­вить указатель в окне диаграмм так, чтобы стрелка указателя (изображаю­щего в данный момент поток) оказалась внутри накопителя. Далее нужно нажать левую кнопку мыши и, не отпуская, тянуть вправо. Когда кнопка будет отпущена, возникнет изображение потока, "вытекающего из бассей­на в никуда" и регулируемого переменной Rate 2, которую можно пере­именовать в Rate out (скорость понижения уровня воды в бассейне).

    Внимание! Если стрелка указателя была правее накопителя, поток будет вытекать из облачка и не будет иметь отношения к создаваемой мо­дели.

    Далее, чтобы задать уровень бассейна в начальный момент, введем константу Initial level. Для этого щелкнем по кнопке "Константа" в меню

    инструментов и поместим изображение константы в окно диаграммы,

    изменив данное по умолчанию имя на

    В результате получены изображения всех элементов модели (рис. 7). Теперь нужно указать связи между этими переменными. Сначала устано­вим связь между константой Initiallevel и накопителем. Для этого необхо­димо:

    • выбрать кнопку связи в



    панели инструментов

    • когда стрелка будет

    внутри изображения Pontjevel, отпустить кнопку мыши.

    Между константой, представляющей начальный уровень воды в бас­сейне, и динамической переменной "уровень воды" установлена связь (рис. 8).

    Поскольку уровень воды в бассейне влияет на скорость вы­текания воды (наряду с пара­метрами трубы), а следователь­но, и на скорость понижения уровня воды в бассейне Rate out, необходимо устано­вить связь между Pondlevel и Rate_out. Сделаем это точно так же, как и в первом случае. Отметим, однако, что теперь стрелка, изобра­жающая связь, выглядит иначе. Это не ошибка. Дело в том, что POWERSIM опознает первую связь - от константы к накопителю - как инициализирующую, действующую только в начальный момент, а вторую связь - от накопителя к вспомогательной переменной - как постоянную, действующую все время моделирования. Поэтому первая связь будет изо­бражена пунктирной линией со стрелкой, а вторая - сплошной линией.

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


    12

    13



    не обращаться каждый раз к нужной кнопке из панели инструментов, а сделать этот инструмент активным на все время, пока он использует­ся. Для этого нужно щелкнуть по кнопке на панели инструментов правой кнопкой мыши (или левой кнопкой при нажатой клавише Ctrl). Значок вы­бранного объекта будет символом курсора до тех пор, пока не изменим его, щелкнув по кнопке "Указатель" па панели инструментов (либо

    щелкнув снова правой кнопкой мыши по другой кнопке или на диаграмме). Имея курсор в виде некоторого объекта, мы можем создавать эти объ­екты нужное число раз, щелкая левой кнопкой мыиш в разных местах окна диаграммы. Таким образом, для установления связей в модели можно бы­ло, щелкнув правой кнопкой мыиш по кнопке связи, провести две нужные нам стрелки, а затем щелкнуть по кнопке "Указатель'.'

    5. ОПРЕДЕЛЕНИЕ ПЕРЕМЕННЫХ

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

    Определим переменную Pond level. Для этого двойным щелчком на изображении этой переменной откроем диалоговое окно "Define Variable" (рис. 9). В окне переменных показана текущая переменная Pondlevel. В окне "Definition" нужно задать начальное значение переменной - Ini­tial level. Нет необходимости вводить это название с клавиатуры, так как оно находится в окне "Linked Variables" ("Связанные переменные"). В это окно помещаются названия всех параметров, для которых на диаграмме установлены связи с текущей переменной (и все они должны участвовать в ее определении). Двойным щелчком на названии в окне

    "Linked Variables" помещаем эту переменную в окно "Definition".

    Замечание. Если диалоговое окно на экране меньше изображенного на рис. 9, значит оно находится в свернутом виде и его можно раскрыть, нажав кнопку "More» " в правом нижнем углу. И наоборот, если для рабо­ты не нужны ни список связанных переменных, ни список функций, ни "клавиатура", можно свернуть окно, нажав кнопку "Less«". Окно "Define14

    Variable" может находиться в трех состояниях: развернутое, минималь­ное и промежуточное (со списками связанных переменных и функций, но без "клавиатуры"). С помощью кнопок "More»" и "Less«" всегда молено выбрать наиболее удобный в данный моцент вид окна.

    Заметим, что переменная InitialJevel была введена лишь для нагляд­ности модели и для того, чтобы продемонстрировать инициализирующую связь. Молено было бы ввести соответствующее числовое значение на­чального уровня воды прямо в окне "Definition".



    При нажатии кнопки "Set" знак вопроса внутри прямоугольника Pondjevel исчезает (как в окне переменных диалогового окна, так и на диаграмме).

    Это означает, что динамическая переменная Pond level определена полностью, хотя было задано только ее начальное значение (вводом значе­ния в окно "Definition" при нажатой селекторной кнопке "Initial" над ок­ном). Дело в том, что закон изменения для Pondjevel уже определен самой структурой диаграммы. Если вместо кнопки "Initial" выбрать кнопку "Flow", то в окне определения переменной будет показан закон ее измене-

    15

    ния в процессе моделирования, введенный самой программой автоматиче­ски (рис. 10):

    + dt*(Rate_in ) - dt*(Rate__out).



    Эта формула означает, что на каждом шаге моделирования значение переменной Pondjevel будет увеличиваться на величину (Rate in -Rate_out)*dt, где dt - интервал интегрирования (определенный как "Time Step" в пункте меню SimulationSetup, который будет описан ниже). Итак, значение накопителя в любой момент времени полностью определяется его начальным значением и формулой для величины приращения на каж­дом шаге моделирования.

    Если нажать в окне "Define Variable" кнопку OK, окно закроется и бу­дет видна диаграмма, на которой знак вопроса исчез из изображения уже определенной величины Pondjevel, а в изображениях остальных перемен­ных знаки вопроса остались. Теперь можно последовательно определить оставшиеся переменные, вызывая для них окно "Define Variable" двойным щелчком мыши и действуя так же, как и в первом случае. Единственное отличие состоит в том, что для вспомогательных переменных и констант в окне "Define Variable" нет селекторных кнопок "Initial"/"Flow", и в окно "Definition" просто вводится значение или формула.

    Однако быстрее определить сразу все переменные модели, не выходя из диалогового окна "Define Variable" (то есть не нажимая пока кнопку ОК). Для этого в окне переменных следует щелкнуть по стрелке справа, в результате появится список всех переменных модели. Для их последова­тельного определения щелчком по переменной Rate In в списке она поме­щается в окно переменных и делается активной. Положим ее равной 0.1, введя это значение в окно "Definition" (это можно сделать как с клавиату­ры, так и щелкая мышью по соответствующим кнопкам в правом нижнем углу диалогового окна).

    16

    Итак, введя значение переменной Ratein и нажав кнопку Set, мы пол­ностью определили ее. Однако при этом была допущена небольшая несо­гласованность: один и тот же объект был определен на диаграмме как вспомогательная переменная и задан в диалоговом окне как константа. За­метим, что POWERSIM уже исправил эту оплошность! Символом Rate in стала уже не вспомогательная переменная, а константа (как в окне пере­менных диалогового окна, так и на диаграмме). В результате с помощью POWERSIM Ratein определена полностью и корректно.

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

    Перейдем к определению переменной Rate out. Скорость вытекания воды из бассейна (следовательно, и скорость понижения уровня воды) за­висит не только от параметров трубы, но и от уровня воды в бассейне. Из теории гидродинамики следует, что скорость понижения уровня воды Rate out пропорциональна квадратному корню от уровня воды Pondjevel. Выбрав в списке переменных Rate out, введем ее определение:

    0.05*SQRT(Pond level).

    При этом функцию SQRT выбираем из списка функций в окне "Define Variable" и двойным щелчком мыши по названию этой функции помещаем ее в окно определения. Аргумент функции Pondjevel находим в списке переменных, связанных с активной переменной Rateout. Нажав кнопку SET, заканчиваем определение те-



    Сохранение документа

    Нажмем кнопку "Сохранить" из панели команд. В открывшемся

    диалоговом окне "Save As" необходимо ввести название файла, в котором будет храниться документ. В пакете POWERSIM все файлы, используемые для сохранения моделей, имеют расширение SIM. Нажатием ОК иниции­руется диалоговое окно "Properties". При желании можно указать в нем имя автора и описание модели. Нажатием ОК заканчивается сохранение модели. Теперь имя файла, в котором сохранена модель, заменит заголовок Diagram 1 окна диаграммы.

    Замечание. Цифры в определении переменных модели были подобра­ны приблизительно и используются только при построении учебной задачи.

    Моделирование и наглядное представление его результатов



    Чтобы начать моделирование, следует щелкнуть по кнопке Н из па­нели команд.

    Замечание. По умолчанию моделирование производится в соответ­ствии со следующими установками: начальный момент (StartTime) равен О, конечный момент (StopTime) равен 100, интегрирование производится методом Эйлера, гиаг моделирования (TimeStep) равен 1.0. Изменить эти параметры можно в диалоговом окне "SimulationSetup ".

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

    Это так называемый "автоот­чет" но результатам моделирова­ния. Значения динамических пе­ременных модели и графики внут­ри их изображений включены в отчет по умолчанию. Эту установ­ку можно изменить в пункте "Auto Reports" меню Format»Options. Такое представление результатов неудобно, так как после окончания моделирования на экране остаются лишь значение переменной в послед­ний момент и крохотный график внутри диаграммы. Чтобы наглядно отра­зить результаты моделирования, удобно добавить к диаграмме как отдель­ные объекты график и/или таблицу значений переменных.


    18

    Изобразим последовательные значения динамической неременной Pondlevel в процессе моделирования на графике. Чтобы можно было ви­деть одновременно диаграмму и график, развернем окно диаграммы на весь экран с помощью кнопки "Максимизировать" ("Треугольник вверх") в правом верхнем углу окна или пункта "Развернуть" управляющего меню (оно раскрывается щелчком по кнопке в левом верхнем углу окна). Для по­строения графика нужно:

    • выбрать кнопку "график" в панели инструментов;

    • поместить курсор (принявший вид графика) на свободное место в
    окно диаграмм (обычно ниже диаграммы) и, щелкнув левой кнопкой мы­
    ши, создать в этом месте окно для построения графика;

    • выделить щелчком мыши пере­
    менную, график значений которой мы
    хотим построить (Pondlevel), и, не
    отпуская кнопку мыши, передвинуть
    указатель в окно графика;

    • когда вид указателя изменится с
    тянущей руки на бросающую руку

    отпустить кнопку мыши.

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

    Замечание. Чтобы изобразить на графике значения сразу нескольких пере­менных, молено последовательно "пере­тащить" их мышью на график, при этом переменные будут пронумерованы иокрашены в разные г^вета (рис. 14).

    Можно также сразу "перенести" все интересующие нас переменные на график. Для этого нужно выделить их, щелкая левой кнопкой мыши при на­ жатой клавише Shift, и перетащить

    указатель от любой из этих переменных до графика при нажатой кнопке мыши. При этом на графике появятся названия сразу всех выделенных пе­ременных. Если при перетаскивании выделенных объектов в окно графика

    19

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

    Чтобы изменить расположение, длину или ширину графика, нужно щелчком мыши активизировать его окно. Окно графика можно перемещать и растягивать с помощью мыши так же, как любое окно в Windows. Когда нужные размер и положение получены, щелчком вне окна графика можно снять с него выделение.

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

    Существует и второй способ построения графиков и таблиц с исполь­зованием их окон определения. Начнем рассмотрение с построения графи­ков. Двойным щелчком мыши по окну графика открывается диалоговое окно "Define Time Graph" (рис. 15).

    Это диалоговое окно также позволяет изменять оформление графика: группы "Time (X) Axis" и "Value (Y) Axis" предназначены для редактиро­вания осей, группа "Drawing" - для выбора вида графика (изменение уста­новок в этой группе относится к переменным, выделенным в списке пара­метров графика). В этой группе выбирается, будет ли закрашиваться об­ласть под графиком (Area), будет ли график изображаться линией (Line), будет ли график помечаться цепочкой специальных значков (Marker). Вид и цвет границы графика, области под графиком, вид (цифра, крестик, квад­ратик...) и цвет маркеров устанавливаются в диалоговом окне, открываю­щемся кнопкой "Custom". Кнопка "Generations" открывает диалоговое ок­но, позволяющее работать с временными рядами, полученными на преды­дущих этапах моделирования. Кнопки "Background" и "Graph Area" ис­пользуются для выбора вида и цвета окна графика и области графика, кнопка "Title" позволяет оформить заголовок графика, кнопка "Legend" -редактировать легенду (то есть расшифровку маркеров, которыми поме­чаются графики) и т.д. Размеры окна графика можно изменять, перемещая мышью его размерную рамку. Для построения таблицы со значениями пе­ременной Pond_level за все время моделирования можно поступить сле­дующим образом:

    • выбрать кнопку "Таблица" в панели инструментов;

    • поместить курсор (принявший вид таблицы) на подходящее место в окно диа­граммы и, щелкнув левой кнопкой мыши, создать в этом месте сетку для таблицы;

    • двойным щелчком мыши на изображении таблицы открыть диало­говое окно "Define Time Table" (рис. 16);


    1   2   3   4


    написать администратору сайта