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

  • второго слоя

  • третьего слоя

  • математическое моделирование. Т 1 МАТ. Моделирование. Литература по теме 197 Вопрос Узловые операторы. 201 Вопрос Текст программной модели смо. 202 Вопрос Сборка и запуск исполнительного модуля модели. 205


    Скачать 1.51 Mb.
    НазваниеЛитература по теме 197 Вопрос Узловые операторы. 201 Вопрос Текст программной модели смо. 202 Вопрос Сборка и запуск исполнительного модуля модели. 205
    Анкорматематическое моделирование
    Дата02.06.2022
    Размер1.51 Mb.
    Формат файлаdocx
    Имя файлаТ 1 МАТ. Моделирование.docx
    ТипЛитература
    #564707
    страница22 из 31
    1   ...   18   19   20   21   22   23   24   25   ...   31
    rels).

    Транзакт-распоряжение проходит узел 10 без задержки и в узле 13 уничтожается. Далее считается, что партия изготовлена и поступила на склад готовой продукции.

    В модели второго слоя (процесс сбыта произведенной продукции) имитируются следующие действия (рис. 42).

    Узел 14 является генератором транзактов - покупателей продукции, которые обращаются на склад. Если склад располагает запрошенным количеством товара, то товар отпускается покупателю, в противном случае покупатель (транзакт) ждет.

    Узел 16 имитирует отпуск товара и контроль очереди. После получения товара покупатель перечисляет деньги на расчетный счет предприятия (узел 17).

    В узле 18 транзакт уничтожается (покупатель обслужен).

    В модели третьего слоя (денежные операции) имитируются проводки в бухгалтерии предприятия (рис. 43).

    Запросы на проводки поступают с первого слоя (рис. 41) из узлов 5, 7, 11 и из узла 17 (рис. 42). Пунктирными линиями показано движение денежных сумм по счетам 51 (Расчетный счет, узел 20), 60 (Поставщики, подрядчики, узел 22), 62 (Покупатели, заказчики, узел 21) и 90 (Банк, узел 19). Условные номера примерно соответствуют плану счетов бухгалтерского учета.

    Узел 23 имитирует работу финансового директора. Обслуженные транзакты после бухгалтерских проводок попадают обратно в узлы,

    откуда они поступили; номера этих узлов находятся в параметре транзакта t->updown.

    Ниже приводится текст программной модели: #include


    forward

    {

    float T_cust=7; /* интервал поступления заказов */

    float T_work=14; /* время изготовления партии товаров */

    float S_bank=10000.00; /* сумма кредита в банке */

    float S_supp=10000.00; /* сумма платы поставщику */

    float The_price=90.00; /* цена единица продукции */

    float Mod_time=730; /* время моделирования */

    int N_work=2; /* производственная мощность */

    int Max=1200; /* размер производимой партии продукции*/

    modbeg («Company», 23, Mod_time, (long)1234567890, none, 20, none, 18,

    none);

    ag («Заказы»,1,none,norm,T_work,T_work/3,zero,2); ag («Клиенты»,14,none,norm,T_cust,T_cust/3,zero,15); assign (19,add,10000000.00); /* фонд банка */

    assign (20,add,0.00); /* фонд фирмы */

    assign (21 ,add,10000000.00); /* фонд покупателей */

    network(dummy, dummy) {

    //ПРОИЗВОДСТВО ======================================

    top( 2):

    creat («Развилка_1», 0, 1, none, 3, 7);

    place;

    top( 3):

    queue («ЖдемКредит», none, 4);

    place;

    top( 4):

    key («РазрешКредита», 5);

    place;

    top( 5):

    pay («ПереводКредита», 20, S_bank, 19, none, 19, 6); //на слой 3

    place;

    top( 6):

    term («ЗапретВыдачи»);

    hold(4);

    place;

    top( 7):

    pay («ПлатаПоставщикам», 22, S_supp, 20, none, 20, 8); //на слой 3

    place;

    top( 8):

    queue («ОчередьЗаказов», none, 9);

    place;

    top( 9):

    serv («ВыполнениеЗаказов», N_work, none, norm, T_work, T_work/3, zero, 10);

    place;

    top(10):

    creat («Развилка_2», 0, 1, none, 11, 13); place;

    top(11):

    pay («ВозвратКредита», 19, S_bank, 20, none, 20, 12); //на слой 3

    place;

    top(12):

    term («РазрешВыдачи»);

    rels(4);

    place;

    top(13):

    term («ЗаказВыполнен»); clcode

    supply(15, none, Max); place;

    ///СБЫТ ============================================

    top(15):

    t->powr=1+rundum()*99; //объем закупаемой партии

    t->summ=t->powr*The_price; //стоимость закупаемой партии

    attach («СкладГотПродукции», t->powr, prty, 16);

    place;

    top(16):

    manage («ОтпускТовара», 17);

    place;

    top(17):

    pay («ОплатаПокупки», 20, t->summ, 21, none, 21, 18);//на слой 3

    place;

    top(18):

    term («ТоварОплачен»); place;

    ///ДЕНЕЖНЫЕ ОПЕРАЦИИ ============================

    top(19):

    send («Банк_90», t->k1, t->summ, t->dpr, 23);

    place;

    top(20):

    send («РасчСчет_51», t->k1, t->summ, t->dpr, 23);

    place;

    top(21):

    send («Клиент_62», t->k 1, t->summ, t->dpr, 23);

    place;

    top(22):

    send («Поставщиик_60», t->k1, t->summ, t->dpr, 23);

    place;

    top(23):

    direct («Бухгалтерия», t->updown); //на верхний слой place;

    /// =================================================

    fault (123); }

    modend («Run_061010_01.rep», 1,30,page);

    return (0); }

    Пример результата запуска показан на рис. 44.

    НАЗВАНИЕ МОДЕЛИ:

    Company

    ВРЕМЯ МОДЕЛИРОВАНИЯ:

    731

    Лист: 1

    № узла

    Наименование узла

    Тип узла

    Точка

    Загрузка (%=), Путь(км)

    M [t] среднее время

    C [t] квадрат коэф.вар.

    Счетчик входов и hold

    Кол. кан.

    Ост. тр.

    Состояние узла в этот момент

    1

    Заказы

    ag

    -

    -

    14

    0.16

    54

    1

    1

    открыт

    2

    Развилка_1

    creat

    -

    - |

    0

    1.00

    53

    0

    1

    закрыт

    3

    ЖдемКредит

    queue

    -

    %= 73.0

    7

    1.86

    53

    1

    0

    открыт

    4

    РазрешКредита

    key

    -

    %= 74.4

    12

    1.40

    47

    1

    0

    закрыт

    5

    ПереводКредита

    pay

    -

    -

    0

    1.00

    53

    1

    0

    530000.00 P

    6

    ЗапретВыдачи

    term

    -

    -

    7

    1.86

    53

    0

    0

    открыт

    7

    ПлатаПоставщика

    pay

    -

    -

    0

    1.00

    53

    1

    0

    530000.00 P

    8

    ОчередьЗаказов |

    queue

    -

    %= 40.7

    0

    37.51

    51

    1

    0

    открыт

    9

    ВыполнениеЗаказ

    serv

    -

    -

    13

    0.10

    51

    2

    1

    открыт

    10

    Развилка_2

    creat |

    -

    -

    0

    1.00

    50

    0

    0

    открыт

    11

    ВозвратКредита

    pay

    -

    -

    0

    1.0

    50

    1

    0

    500000.00 P

    12

    РазрешВыдачи

    term

    -

    -

    15

    0.58

    49

    0

    0

    открыт

    13

    ЗаказВыполнен

    term

    -

    -

    24

    0.20

    50

    0

    0

    открыт

    14

    Клиенты

    ag

    -

    - |

    7

    0.12

    104

    1

    1

    открыт

    15

    СкладГотПродукц

    attach

    -

    %= 3.7

    0

    43.13

    103

    1

    0

    1057 S































    0 D

    16

    ОтпускТовара

    manage

    -

    -

    0

    1.00

    103

    1

    0

    открыт

    17

    ОплатаПокупки

    pay

    -

    -

    0

    1.00

    103

    1

    0

    476910.00 P

    18

    ТоварОплачен

    term

    -

    -

    0

    43.13

    103

    0

    0

    открыт

    19

    Банк_90

    send

    -

    -

    0

    88.67

    53

    1

    0

    9960000.00 S































    0.00 D

    20

    РасчСчет_51

    send

    -

    -

    13

    0.68

    103

    1

    0

    6910.00 S































    30000.00 D

    21

    Клиент 62

    send

    -

    - |

    0

    125.10

    103

    1

    0

    9523090.00 S


































    0.00 D

    22




    send

    -

    -

    0

    1.0




    0

    0

    510000.00 S































    0.00 D

    23

    Бухгалтерия

    direct

    -

    -

    0

    1.00

    256

    1

    0

    открыт


    Рис. 44. Отчет запуска модели бизнес-процесса

    Выводы:

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

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

    3. В случаях, когда необходимо обеспечить концептуальную декомпозицию описания, используется узел
    1   ...   18   19   20   21   22   23   24   25   ...   31


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