На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (54) « Первая ... 23 24 [25] 26 27 ...  53 54  ( Перейти к последнему сообщению )  
> GPSS , Вопрос для знающих
    да TEMENb мне тоже интересен этот материал ;)
      еще вопрос. Мне необходимо использовать в программе текущее значение функции. Функция - косинус. По-моему, текущее знчение определяется так: FN1.
      Вопрос: как задать косинус в FUNCTION, и как затем сделать на нее ссылку в GENERATE?
        Flames, в вверху страницы есть ссылка, даже выделена красным восклиццательным знаком!

        Добавлено
        Цитата
        Стандартные числовые атрибуты (СЧА)
        В процессе моделирования интерпретатор OpenGPSS автоматически регистрирует и корректирует информацию, касающуюся различных элементов, используемых в модели. Большая часть информации доступна только интерпретатору. Однако, к некоторым атрибутам объектов может обращаться и программист, манипулируя их значениями согласно логики модели. Такие атрибуты называются стандартными числовыми атрибутами (СЧА). Каждый объект OpenGPSS имеет свой набор СЧА. Кроме СЧА объектов существуют еще системные числовые атрибуты, к которым пользователь может обращаться в модели, но не может изменять их значение. Имя СЧА состоит из двух частей. Первая часть указывает групповое имя, идентифицирующее тип объекта и тип информации об объекте. Вторая часть идентифицирует конкретного члена группы. Групповое имя состоит из одной-двух букв, фиксированных для информации об объектах определенного типа, например, Q - ссылка на текущее значение длины очереди, QA - целая часть среднего значения очереди и т.д. Объекты OpenGPSS могут быть идентифицированы с помощью числовых или символьных имен. Если объект идентифицирован с помощью номера, то ссылка на его стандартный числовой атрибут записывается как СЧАj, где j - номер объекта (целое число). При символической идентификации объекта ссылка на его стандартный атрибут записывается как СЧА$<имя>, где <имя> - символьное имя объекта. Системные СЧА
        RN Числовые последовательности считываются из датчиков псевдослучайных чисел (ДПЧ) с помощью СЧА RNj. Все датчики генерируют последовательность равномерно распределенных случайных дробных чисел от 0 до 0,999999999999999 (пятнадцать девяток после нуля). Количество датчиков не ограничено.
        C1 Текущее значение условного времени. Автоматически изменяется программой и устанавливается в 0 управляющими операторами CLEAR или RESET.
        AC1 Текущее значение абсолютного времени. Автоматически изменяется программой. Эта величина не меняется под действием управляющего оператора RESET и устанавливается в 0 лишь под действием оператора CLEAR.
        TG1 Число, равное текущему значению счетчика завершений. Транзакты, вошедшие в блоки TERMINATE с ненулевым операндом А, уменьшают значение этого счетчика на число, равное значению операнда А.
        Z1 Размер свободной оперативной памяти в байтах.
        М1 Время пребывания в модели транзакта, обрабатываемого программой в данный момент. Эта величина может изменяться блоком MARK. Время пребывания вычисляется следующим образом: М1 равно разнице текущего значения абсолютного времени и отметки времени обрабатываемого транзакта.
        PR Приоритет обрабатываемого в данный момент транзакта. Эта величина может изменяться блоком PRIORITY. По умолчанию приоритет равен 0.
        СЧА транзактов
        XN1 Номер активного транзакта.
        Pj или *j, или *<имя>, или *$<имя> значение параметра j текущего транзакта или значение параметра с именем <имя> текущего транзакта.
        MPj Значение времени, равное разности абсолютного модельного времени и содержимого j-го параметра текущего транзакта.
        MBj Флаг синхронизации: 1, если транзакт в блоке j принадлежит тому же семейству, что и текущий транзакт; 0 - в противном случае.
        СЧА блоков
        Nj Общее число транзактов, которое должно войти в j-й блок. Подсчет ведется программой автоматически. Например, N$MET1 - счетчик числа входов в блок МЕТ1. Этот счетчик изменяется при каждом входе транзакта в блок МЕТ1.
        Wj Текущее число транзактов, которое находится в блоке j. Значение этого счетчика подсчитывается автоматически. Например, $MET2 - счетчик текущего числа транзактов в блоке МЕТ2.
        СЧА МКУ
        Sj Текущее содержимое многоканального устройства j. Содержимое многоканального устройства может изменяться блоками ENTER и LEAVE.
        Rj Число свободных единиц многоканального устройства j. Эта величина может изменяться блоками ENTER и LEAVE.
        SRj Коэффициент использования многоканального устройства j в тысячных долях, т.е., если коэффициент равен 0.65, то SRj равно 650.
        SAj Среднее содержимое многоканального устройства j (целая часть).
        SMj Максимальное содержимое многоканального устройства j.
        SCj Общее число входов в многоканальное устройство j.
        STj Среднее время пребывания транзактов в многоканальном устройстве j.
        SEj Флаг незанятости многоканального устройства j: 1 - свободно, 0 - занято.
        SFj Флаг заполненности многоканального устройства j: 1 - заполнено, 0 - не заполнено.
        SVj Флаг готовности многоканального устройства j: 1 - готово, 0 - не готово.
        SNVj Флаг неиспользуемости многоканального устройства j: 1 - неиспользуется, 0 - используется.
        СЧА устройств
        Fj Текущее состояние устройства j. Эта величина равна 0, если устройство свободно, и 1 - во всех остальных случаях. Этот атрибут изменяется блоками SEIZE, RELEASE, PREEMPT и RETURN.
        FIj Флаг прерывания устройства: 1, если устройство находится в состоянии прерывания, 0 - в противном случае.
        FVj Флаг готовности устройства к использованию: 1, если готово, 0 - в противном случае.
        FRj Коэффициент использования устройства j в тысячных долях, т.е., если коэффициент равен 0.88, то FRj равен 880.
        FCj Общее число входов в устройство j.
        FTj Среднее время использования устройства одним транзактом.
        СЧА очередей
        Qj Длина соответствующей очереди j. Эта величина изменяется блоками QUEUE и DEPART.
        QAj Средняя длина очереди j.
        QMj Максимальная длина очереди j.
        QCj Общее число входов в очередь j.
        QZj Число нулевых входов в очередь j.
        QTj Среднее время пребывания транзакта в очереди j (включая нулевые входы).
        QXj Среднее время пребывания транзакта в очереди j (без нулевых входов).
        СЧА таблиц
        TBj Вычисленное среднее таблицы j. Для занесения в таблицу используется блок TABULATE.
        TCj Общее число включений в таблицу j.
        TDj Вычисленное среднеквадратичное отклонение для таблицы.
        СЧА сохраняемых величин
        Xj Содержимое ячейки j.
        СЧА матриц
        MXj(a,b) Содержимое элемента матрицы ячеек j, расположенного в строке a, столбце b.
        СЧА функций
        FNj Вычисленное значение функции j. От значения функции берется целая часть, за исключением тех случаев, когда это значение используется в качестве модификатора в блоках GENERATE, ADVANCE или ASSIGN или в качестве аргумента другой функции.
        СЧА переменных
        Vj Вычисленное значение переменной j. При вычислении значения переменной с фиксированной точкой получается целое число. При вычислении значения переменной с плавающей точкой дробная часть конечного результата отбрасывается.
        BVj Вычисленное значение (1 или 0) булевской переменной.
        СЧА числовых групп
        GNj Текущее число элементов в числовой группе с номером j.
        СЧА групп транзактов
        GTj Текущее число элементов в группе транзактов с номером j.
        СЧА списков пользователя
        CHj Текущее число транзактов в j-том списке пользователя.
        CAj Среднее число транзактов в j-том списке пользователя.
        CMj Максимальное число транзактов в j-м списке пользователя.
        CCj Число входов в j-й список пользователя.
        CTj Среднее время пребывания транзакта в j-том списке пользователя.
        СЧА логических переключателей
        LSj Возвращает состояние логического переключателя j: 1 - установлен, 0 - не установлен.
        LRj Возвращает инверсное состояние логического переключателя j: 0 - установлен, 1 - не установлен.


        Добавлено
        Цитата tigreg @
        еще вопрос. Мне необходимо использовать в программе текущее значение функции. Функция - косинус. По-моему, текущее знчение определяется так: FN1.
        Вопрос: как задать косинус в FUNCTION, и как затем сделать на нее ссылку в GENERATE?

        Вопервых, что бы обратиться к функции по числовому имени - надо задать функцию по числовому имени. Это сделать возможно.. желаю вам удачи :D
        Вовторых, берете случайным образом выбираете на графике стук пиццот (25 точек вполне хватит) точек и записываете
        FCOS FUNCTION RN1,C25 ;25 ТОЧЕК
        а далее записываете полученные точки. абсцысу и ординату. координаты точек пишете через запятую, сами точки отделяете значком деления. точки должны быть расставлены так, что бы абсцыса возрастала.

        З.Ы.: пользуйтесь встроенной plus функцией COS и не иите мозги ни себе ни людям.
        З.З.Ы.:надоело отвечать по 7 раз на один и тот же вопрос на одной странице форума..

        Добавлено
        З.З.З.Ы: вырезка из жпссного хелпа (так ведь сложно глянуть почитать..)
        Цитата
        COS( Expression ) - Cosine. Expression must be in radians.
        что в переводе означает, что аргумент коссинуса должен быть в радианах. надеюсь ненадо обьяснять как градусы в радианы переводить? :D
          за ответ спасибо. со всем остальным... :) согласна. исправлюсь :)
            tigreg, и еще, если вы будете использовать косинус в качестве параметра - есть один маленький ньюанс.
            В качетсве параметров жпсс адекватно воспринимает числа, символьные константы, СЧА и выражения, заключенные в скобки. Так вот Puls-функции - это выражения. обязательно нужно заключать в скобки.

            Например
            ExpandedWrap disabled
              GENERATE (COS(3.14))
              Цитата TEMENb @
              Цитата Figaro-serg @
              advance первое_число, второе_число

              ExpandedWrap disabled
                ADVANCE (80/91),(24/91) ;Если моделируете в часах

              (80/91),(24/91) - не знал что так можно! клево :-)

              если пересчитать в минуты, то (80/91)±(24/91)часов = (80/91)*60 ± (24/91)*60 минут = 52.74±15.82 минут.

              до этого получил аналогичные результаты: 52±16 мин, только вот округление конечно здесь было не корректным.
              получается что я чисто интуитивно рассчитал интервалы правильно, не зная формул 8-). Теперь запишу дробью и все будет вери гуд! :D Спасибо!


              TEMENb, еще раз огромнейшее человеческое спасибо за оказанную помошь!
                Имеется 5 входных накопителей (емкость -1 сообщение), и 5 выходных очередей. При определенном условии необходимо освободить эти 5 накопителей и 5 выходных очередей только от заявок 2 и 3 типов, заявки же первого типа не трогать(всего в системе 3 типа заявок). Какими глаголами это можно сделать?
                  h4_jester, что ты подразумеваешь под словом "накопитель"?
                  варианты ответов:
                  1 queue/depart
                  2 enter/leave
                  3 seize/release

                  Добавлено
                  Цитата
                  ..................
                  queue nakopitel
                  Test e ((f$yst=0)|(p$type=2)|(p$type=3)),1
                  Test e f$yst,0,osvobodit
                  seize yst
                  ...................
                    накопитель - enter/leave.
                      h4_jester, ну такой вариант немного сложнее.
                      Тут вообщем есть два пути.
                      первый - сохранить время пребывания в накопителе в параметр.....
                      ExpandedWrap disabled
                        ..................
                        assign tim,(duniform(1,10,14))
                        queue och
                        enter nak
                        depart och
                        advance 1
                        assign tim-,1
                        Test e ((p$tim<=0)|((x$del=1)&((p$type=2)|(p$type=3)))),1
                        Test le p$tim,0,osvobodit
                        leave nak
                        ...................
                        osvobodit leave nak
                        ...................

                      ну и второй вариант - пользоваться пользовательскими списками. удалить транзакты нужного типа будет очень просто, а вот организовать правильное время выхода алгебраически сложнее (модель не усложниться, но подумать над цыфрами прийдеться)
                      Сообщение отредактировано: TEMENb -
                        Здравствуйте! Скажите пожалуйста, если к одноканальному устройству ограничен накопитель, это устройство в программе как память записывать(с фазами выделения и освобождения памяти) или как устройство? Если как устройство, то как показать что ограничен накопитель?
                        Если возможно, ответьте сегодня. до вечере нужно сделать.
                          inna, вы взрываете мой мозг!

                          думаю вам надо что то типа
                          ExpandedWrap disabled
                                TEST L  Q$och,10,OTK    ;если очередь короче 10, то дальше, иначе на метку (отказ)
                                QUEUE   och
                                SEIZE   ND
                                DEPART  och ;покинуть очередь
                                ADVANCE 120,25  
                                RELEASE ND  ;


                          В следующий раз потрудитель изъяснятся попонятней.
                            Спасибо большое!! Но как я понимаю, мне надо задать сначали емкость накопителя (или очереди) . Подскажите пожалуйста, где это указать.
                              Цитата TEMENb @
                              ExpandedWrap disabled
                                TEST L  Q$och,10,OTK    ;если очередь короче 10, то дальше, иначе на метку
                              (отказ)

                              в данном примере размер очереди ограничен десяткой.
                                огромное спасибо! Вы мне очень помогли :)
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (54) « Первая ... 23 24 [25] 26 27 ...  53 54


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0537 ]   [ 15 queries used ]   [ Generated: 20.06.25, 10:15 GMT ]