[ Главная · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » СИМУЛЯТОР ПУЛЬТА ДИСПЕТЧЕРСКОЙ ЦЕНТРАЛИЗАЦИИ "НЕВА" » Эксперименты в симуляторе » Пытаюсь замутить свой симулятор.
Пытаюсь замутить свой симулятор.
ilyxapd321Дата: Вторник, 19.03.2024, 18:02 | Сообщение # 101
Дежурный стрелочного поста
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
Когда можно будет поиграть? Хочется чтобы было хорошее развитие тренажера, передавать приказы и тому подобное.
 
V9Дата: Среда, 20.03.2024, 16:08 | Сообщение # 102
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
Цитата ilyxapd321 ()
Когда можно будет поиграть? Хочется чтобы было хорошее развитие тренажера, передавать приказы и тому подобное.
Сферически, когда вы удлиняете/укорачиваете поезд, вы уже отдаете приказы, так ведь?



Программировал Гауссиану. =) Кто догадается, где будет использовано? =)
Прикрепления: 9029918.png (5.0 Kb)
 
ilyxapd321Дата: Среда, 20.03.2024, 16:12 | Сообщение # 103
Дежурный стрелочного поста
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
нет я имел ввиду приказы на повышенной массы и длины, негабаритные и с вм
 
V9Дата: Среда, 20.03.2024, 16:55 | Сообщение # 104
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
Цитата ilyxapd321 ()
нет я имел ввиду приказы на повышенной массы и длины, негабаритные и с вм
Это я вас пока не понимаю никак! =)
 
olegpersh999Дата: Среда, 20.03.2024, 18:57 | Сообщение # 105
Станционный диспетчер
Группа: Пользователи
Сообщений: 94
Награды: 2
Репутация: 0
Статус: Offline
Цитата V9 ()
Программировал Гауссиану. =) Кто догадается, где будет использовано? =)
как говорится ничего не понятно, но очень интересно)
 
V9Дата: Среда, 20.03.2024, 21:15 | Сообщение # 106
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
Приветстую всех!

В посте #57 этого треда я предложил поиграть нетиповым методом: добавить внеграфиковые поезда с помощью DSim (он их случайно сгенерит) в некий график и как бы график отыграть. Отыграть можно на бумаге, я там прикладывал чертежи для печати, эл.таблицы расчтного времени участка Куть-Ях — Сургут и т.п. И там же я отметил, что это работа не Диспечтера, а Графиста. Ибо графист делает постоянный и вариантные графики, а диспетчер пытается поезда по графику провести. А что диспетеру мешает? Поломки! Поезда ломаются, стрелки не переводятся  ит.п. И суть диспетчера, в том числе - это максимально эффективно вводить в график поезда после поломок.

Прикладываю версию 0.0.1.0, где мы уже можем кое-как отыгрывать поломки поездов. В режимы запуска был добавлен Dispatcher.bat который запускает DSim как "генератор поломок". Я там захардкодил такие параметры:
1. Считается что поезд ломается один раз в 10 дней.
2. Считается, что на полигоне 100 поездов.
3. Считается что поломка поезда может быть от 5 минут до 45 минут, распределенная по графику Гаусса.

Как выглядит распредление, можно посмотреть в посте #102. Там я тестировал как бы ситуцаию "100 тысяч поломок". Распределилось что 9274 поломки будут исправлены за 27 минут, 705 за 17 минут, а одну поломку исправят за 6 минут. (Оффтоп. Гауссиану я сделал, но при последовательном запуске все поломки крутятся вокруг этих средних 27 минут, то есть у меня вопрос к читателям: может как-то по другому график поломок делать?)

Как играем? Запускаем, он начинает там крутить черточкой, показывая, что "все хорошо". Когда будет "не хорошо" он сообщит какой номер поезда поломался - от 1 до 100 - и на сколько.
а) Если играем "на бумаге", то данный поезд оформляем как поломку.
б) Если используем Pult Neva, то смотрим где наш поезд.Если поезд на перегоне, то не пускаем на станцию. Если на станции - не отправляем.

Возникнет вопрос - "а почему поездов 100, ведь у нас могут быть и 3000е, и 4000е номера и т.п.?"

Смотрим список поездов. Если в списке 50 поездов, а поломался 5й, то отсчитываем 5й сверху и именно его считаем поломавшимся. Если поломался 55й, то не учитываем вообще, у нас нет 55го поезда. 

Вот как пример. Я играю, в этот момент DSim говорит, что у меня сломался 74й поезд. У меня в списке 26, то есть я могу вообще не учитывать это сообщение. Но в качестве развлечения я поделил с остатком 74 (номер поезда) на 26 (количество поездов) и получил остаток - 22.  А вот 22й поезд в списке у меня есть. Это 3203й.

Но он уже приехал в Сургут, то есть я его не учитываю:


В симуляцию добавляется аспект, который и делает симулятор Диспетчера симулятором Диспетчера.

ps. Чтобы поделить с остатком, если не помним как, можно это сделать в OpenOffice Calc  с помощью функции MOD()
Прикрепления: dsim_0_0_1_0.zip (4.5 Kb) · 8471900.png (47.5 Kb) · 2413439.png (20.2 Kb) · 6641213.png (18.3 Kb)
 
olegpersh999Дата: Четверг, 21.03.2024, 05:28 | Сообщение # 107
Станционный диспетчер
Группа: Пользователи
Сообщений: 94
Награды: 2
Репутация: 0
Статус: Offline
Ого. Надо попробовать. Конечно же лучше чтобы сообщалось какой именно поезд сломался, а то пока найдешь какой уже можешь не успеть спланировать)
 
V9Дата: Четверг, 21.03.2024, 05:39 | Сообщение # 108
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
Цитата olegpersh999 ()
а то пока найдешь какой уже можешь не успеть спланировать)
Ставишь на симулятор на паузу и разбираешься. Там погрешность плюс-минус километр, несущественно.

Цитата olegpersh999 ()
онечно же лучше чтобы сообщалось какой именно поезд сломался,


Это будет в будущем, однозначно. Но там есть проблемы, которые я пока не знаю, как решить, буду консультироваться с Zork.
 
olegpersh999Дата: Четверг, 21.03.2024, 07:52 | Сообщение # 109
Станционный диспетчер
Группа: Пользователи
Сообщений: 94
Награды: 2
Репутация: 0
Статус: Offline
А сообщения например что он починился и поехал? или находясь на станции, он вызывает ДСП и говорит, что готов к отправлению. А то в данном случае он будет стоять, я открою ему сигнал, а он не поедет. А я например его собрался гнать впереди пассажирского, как тогда быть?
Еще вопрос немного не по этой теме. С ГИДом черным который я скидывал в группе с ним были какие-нибудь тесты? Я почему спрашиваю, как бы еще функцию ввести по замене цвета ниток. А то много слишком цветов. В реале я уже просто по цвету поезда понимаю что едет, а  здесь немного начинаю путаться
 
V9Дата: Четверг, 21.03.2024, 10:07 | Сообщение # 110
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
Попробую объяснить. Там просто сидит два генератора случайных чисел. Первый заставляет среагировать, если выпала комбинация "поезд ХХХ поломался!" В этот момент дергается второй, который по нормальному распределению делает вычисление "на сколько минут поломался?" в районе 27 минут плюс-минус 20. Дальше просто выводится сообщение пользвателю "поезд ХХХ в списке поездов поломался на YY минут!"

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

В данный момент моя прога в этом аспекте никуда не лезет, ничего  не читает, ничего не пишет. Моя прога не может лезть в запущенный Пульт Нева и пока он работает, там что-то делать. Поэтому, пока что, никакой возможности поменять графики, принудительно остановить поезд и т.п. у меня нет. Моей проге доступен только GID.txt куда оперативно пишется поездная обстановка. И доступен save.sav, который пишется если выйти из игры. При программированни совместной работы надо держать в голове, что игрок может в любой момент закрыть Пульт, открыть Пульт, переимнвоать save01.sav  в save.sav, или разархировать сохраненный ранее каталог, чтобы откатиться в прошлое, как это делаю я. И все это в момент когда прога активна.

В GID.txt тоже проблема. Да, он пишет движение, но он не пишет поступление поездов на участок и снятие с участка, именно в самом себе.

У меня очень сильно связаны руки в возможностях.

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

Добавлено (21.03.2024, 11:51)
---------------------------------------------

Цитата olegpersh999 ()
С ГИДом черным который я скидывал в группе с ним были какие-нибудь тесты?
Черный ГИД, и вообще - любой ГИД планируется позже. Сейчас в планах научить DSim показывать именно номер сломавшегося поезда.


Сообщение отредактировал
V9 - Четверг, 21.03.2024, 10:08
 
olegpersh999Дата: Четверг, 21.03.2024, 11:57 | Сообщение # 111
Станционный диспетчер
Группа: Пользователи
Сообщений: 94
Награды: 2
Репутация: 0
Статус: Offline
Цитата V9 ()
Черный ГИД, и вообще - любой ГИД планируется позже.
Здорово! ОЧень жду)
Цитата V9 ()
Сейчас в планах научить DSim показывать именно номер сломавшегося поезда.
Ну да. Так хотя бы понятнее будет
 
V9Дата: Четверг, 21.03.2024, 17:54 | Сообщение # 112
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
Версия 0.0.1.2. Отличия от предыдущей версии:
1. В save.sav Пульта Нева  хранится инфа по ускорению поезда (первая производная) и по скорости ускорения (вторая производная). Ранее в режиме удлинения/укорочения поездов правилась только первая производная. Теперь написал код, чтобы корректно правилась и вторая производная. Несущественно, но легкие поезда будут ускоряться быстрей. У Zork эти параметры выбираются в нужных рамках случайным образом, мне потребуется время, чтобы примерно прикинуть рамки случайностей. Пока что я "захардкодил" вторую производную в зависимости от веса.
2. Когда распакуете версию, в каталоге Territory\1 появится файлик dsim.dat. В нем число 864000.  Это среднее  количество секунд до поломки если на полигоне один поезд. 10 суток по 24 часа по 60 минут по 60 секунд. Вы можете подправить это число, сократив его значение. Тогда поезда будут ломаться чаще. По прежнему считается, что на полигоне 100 поездов. Если вы поставите к примеру, 2000 секунд-на-поезд, то случайным режимом будет ломаться один из ста поездов каждые (2000 / 100 = 20 секунд)
Прикрепления: dsim_0_0_1_2.zip (5.0 Kb)
 
V9Дата: Пятница, 22.03.2024, 18:20 | Сообщение # 113
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
Версия 0.0.2.0. Отличие от предыдущей версии:
Теперь оно читает GID.txt и читает оттуда поезда. Соответстенно, ломаются поезда из числа тех, что на полигоне. Возможны глюки. Чтобы адекватно работало, не забудьте активировать в Пульте Нева опцию формирования GID.txt:


В каталоге сима Territory\1\ есть файлик dsim.dat. Там число секунд до поломки типового поезда. Если ваши поезда ломаются "слишком редко", уменьшите это число, сохраните dsim.dat и рестартаните DSim.
Прикрепления: dsim_0_0_2_0.zip (6.3 Kb) · 8276150.png (11.6 Kb)
 
olegpersh999Дата: Пятница, 22.03.2024, 18:39 | Сообщение # 114
Станционный диспетчер
Группа: Пользователи
Сообщений: 94
Награды: 2
Репутация: 0
Статус: Offline
Вот эту версию попробую.))
 
V9Дата: Пятница, 22.03.2024, 19:50 | Сообщение # 115
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
V.0.0.2.1. Это был легкий провал.
а) Только сделав приблуду я понял, что Пульт Нева не пишет GID.txt оперативно. Пишет GID.txt только в момент выхода. Т.е., я рекомендую выходить из Пульта иногда, чтобы он отписал движение в GID.txt время от времени. К примеру, раз в минут 5..10..15. DSim рестартить необязательно, DSim постоянно пытается читать этот файл, найдет изменения сразу. Ну не постоянно читает, но раз в секунду - точно. =)
б) Только сделав приблуду я понял, что Пульт Нева не пишет в GID.txt события по Ингу-Ягуну и Покачевскому. Поэтому DSim был переписан таким образом, что он снимает с учета поезд, если тот прибыл/проехал/уехал по Ульт-Ягуну. Если это поезд на Вартовск, то этот поезд снова попадет в учет по Чумпасу. Если на север - то уже не попадет. Второй раз поезд снимется с учета по прибытию на Вартовск.

blink
Прикрепления: dsim_0_0_2_1.zip (6.3 Kb)
 
olegpersh999Дата: Суббота, 23.03.2024, 05:02 | Сообщение # 116
Станционный диспетчер
Группа: Пользователи
Сообщений: 94
Награды: 2
Репутация: 0
Статус: Offline
А это на случай если поезд сломается на том участке и движение остановится?
 
V9Дата: Суббота, 23.03.2024, 08:51 | Сообщение # 117
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
Цитата olegpersh999 ()
А это на случай если поезд сломается на том участке и движение остановится?

1. Триггернуло что поломался 3408й на 24 минуты. 

2. Смотрю, где он? Он стоит по Мегиону по отцепке. Я выдерживаю на стоянке на отцепке 40 минут.

3. Поезд прибыл в 2:31. Плюс 0:40 равно 3:11. В 3:11 я имел право его отправить. Дальше у нас, как игроков, вилка. Мы можем считать, что "поломка" произошла в момент события и починка будет совмещена с отцепкой. В такой ситуации, я его отправлю по графику, так как поломка в 2:43  плюс 0:24 минуты на ремонт равно 3:07, что меньше чем плановое отправление в 3:11 по отцепке. Но можем добавлять время к отцепке. В данной ситуации , я решил показать второй вариант. Закрываю Пульт и в каталоге Territory отрисовываю Paint время начало поломки (это плановое время отправления 3:11) и время когда поломка починится. Это 3:35.Это чтобы самому себе не забыть и не отправить 3408й раньше срока.
4. Пропускаю четные, выжидаю время, отправляю:

5. Отыграл поломку, едем дальше! =)


Добавлен хотфикс Dsim.0.0.2.2. Предыдущий релиз "сыпался" когда читал инфу про составы, расформированные по НВ1.

Если поезда ломаются слишком редко, правьте dsim.dat, уменьшая число. Если слишком часто - увеличивайте число в dsim.dat.
Прикрепления: 2723006.png (16.4 Kb) · 0492012.png (4.6 Kb) · 6265114.png (7.5 Kb) · dsim_0_0_2_2.zip (6.3 Kb)
 
olegpersh999Дата: Суббота, 23.03.2024, 12:46 | Сообщение # 118
Станционный диспетчер
Группа: Пользователи
Сообщений: 94
Награды: 2
Репутация: 0
Статус: Offline
Цитата V9 ()
Предыдущий релиз "сыпался" когда читал инфу про составы, расформированные по НВ1.
А ну да, пока НВ1 их не расформирует поезда так и числятся в списке

Добавлено (23.03.2024, 12:47)
---------------------------------------------
И я говорил про участок от Ульт-Ягуна до  Покачевского. Пока поезда за Покачевский не зайдут они тоже в списке. Они ломаются на том участке?

 
V9Дата: Суббота, 23.03.2024, 13:51 | Сообщение # 119
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
Цитата olegpersh999 ()
Пока поезда за Покачевский не зайдут они тоже в списке. Они ломаются на том участке?

Пульт нева не пишет сведений по северному участку в GID.txt. Т.е. пока нечетный не доедет до УЯ, DSim о нем подозревать не будет. Соответственно, DSim удаляет из своих списков любой четный, что доехал до УЯ, так как DSim не в курсе, куда этот четный поедет дальше. Если четный поехал в НВ1, он повторно попадет в список по Чумпасу.
ps. Пульт Нева оказывается пишет сведения пока работает, но жутко нестабильно. Скажем, пишет по полстроки. Тут я планирую отписать Zork'у что можно сделать чтобы нормализовать ситуацию. Возможно, он сделает.
 
ФомаДата: Суббота, 23.03.2024, 20:19 | Сообщение # 120
Поездной диспетчер
Группа: Пользователи
Сообщений: 248
Награды: 7
Репутация: 9
Статус: Offline
Цитата V9 ()
так как DSim не в курсе, куда этот четный поедет дальше

Код станции назначения в помощь - если не совпадает ни с одним из ЛП восточной ветки, значит на север.
 
Форум » СИМУЛЯТОР ПУЛЬТА ДИСПЕТЧЕРСКОЙ ЦЕНТРАЛИЗАЦИИ "НЕВА" » Эксперименты в симуляторе » Пытаюсь замутить свой симулятор.
Поиск: