-
- А я победил. Сегодня протестировал на единичных пропусках, работает. Главное было сделать правильную декомпозицию. Получилось три вложенных автомата, считая очередь. Если интересно, могу рассказать. - IBAH(02.05.2023 21:12)
- извиняюсь, а из каких глубинных соображений датчик установлен на
расстоянии С от края транспортёра? тем более без второго - датчика
скорости ленты не обойтись. расположив датчик на краю замысловатось
задачи стремится к нулю. не? - m16(20.04.2023 09:56)
- "расположив датчик на краю замысловатось задачи стремится к нулю.
не?" в этом то и смысл. IBAH(142 знак., 20.04.2023 10:03)
- Забыл указать А, В, С и точность перемещения транспортера
имеют разброс. примениние ШД не избавит от плавания скорости таранспортёра а
игнорируя её приведёт к наколению ошибки в позиционировании. не так
ли? - m16(20.04.2023 10:20)
- Не уводите проблему в сторону! Просто двигаем транспортер на заданное расстояние, ошибок позиционирования нет - IBAH(20.04.2023 10:22)
- Поскольку шаг ящиков фиксирован, то возможна самосинхронизация
(извлечение тактирования), но это вероятно уже не олимпиадное
решение. - =AlexD=(20.04.2023 10:22)
- Согласен. надо извлечь тактирование, но за один такт - IBAH(20.04.2023 10:23)
- Забыл указать А, В, С и точность перемещения транспортера
имеют разброс. примениние ШД не избавит от плавания скорости таранспортёра а
игнорируя её приведёт к наколению ошибки в позиционировании. не так
ли? - m16(20.04.2023 10:20)
- Олимпиадные задачи не должны быть логичными, они должны быть
сложными или как минимум не очевидными :-) - =AlexD=(20.04.2023 10:02)
- На самом деле, это реальная задача, которая сводится к олимпиадной. - IBAH(20.04.2023 10:04)
- "расположив датчик на краю замысловатось задачи стремится к нулю.
не?" в этом то и смысл. IBAH(142 знак., 20.04.2023 10:03)
- Заталкивать в FIFO стек "1" при проходе ящика через датчик. Или "0"
при отсутствии ящика. По команде выбирать из стека данные до "1".
Ну и число выборок вычесть из "C". - BlackMorda(16.04.2023 20:48)
- Думаю, это самый близкий ответ к задуманному авторами задачи. - Nikolay_Po(16.04.2023 22:22)
- Думал, думал, придумал как игнорировать пропуск одного ящика.
Двигаем конвейер, если ящик обнаружен, записываем в очередь длинной
целое(С/А) !0, и двигаем конвейер на С%А. Если ящик не обнаружен
двигаем на А, в очередь записываем 0. Если из очереди прочитано !0,
двигаем еще на А. - IBAH(19.04.2023 21:32)
- Блд! опять косяк! Если расстояние между пропусками С/А, работать не будет - IBAH(20.04.2023 09:15)
- Думал, думал, придумал как игнорировать пропуск одного ящика.
Двигаем конвейер, если ящик обнаружен, записываем в очередь длинной
целое(С/А) !0, и двигаем конвейер на С%А. Если ящик не обнаружен
двигаем на А, в очередь записываем 0. Если из очереди прочитано !0,
двигаем еще на А. - IBAH(19.04.2023 21:32)
- Думаю, это самый близкий ответ к задуманному авторами задачи. - Nikolay_Po(16.04.2023 22:22)
- Энкодер на валу транспортера имеется? Какой разброс выбега конвейера? Какова масса ящиков, одинакова ли она. Могут ли ящики сползать по конвейеру относительно ленты. Есть ли там лента, или это валковый конвейер. Сколько мс такт работы контроллера. Boвa(369 знак., 16.04.2023 13:03)
- Забыл указать А, В, С и точность перемещения транспортера имеют
разброс. Ошибку нельзя накапливать. Если бы не было пропусков
ящиков все было просто. Двигаем транспортер, пока не обнаружен
ящик, после продвигаем на остаток от деления С на А . - IBAH(16.04.2023 11:34)
- Это оимпиадная задача по информатике, а не инженерная задача :) Я
не уверен, что они знают, что такое разброс - symbions(16.04.2023 22:47)
- это я "своими словами" - IBAH(19.04.2023 21:49)
- Это оимпиадная задача по информатике, а не инженерная задача :) Я
не уверен, что они знают, что такое разброс - symbions(16.04.2023 22:47)
- Каков допустимый выбег? Какова чувствительность датчика? Что значит
"от края транспортера"? Ящик может упасть с ленты незамеченный
датчиком? Cкpипaч(120 знак., 16.04.2023 10:34)
- Транспортер - это модель данных IBAH(1 знак., 16.04.2023 10:42, картинка)
- Если это модель данных, то ящик это время его прибытия на конец
ленты (время прохождения датчика + задержка прохождения по ленте до
края). Раз ящиков несколько - FIFO. Или я снова не понял природу
вопроса? - Cкpипaч(16.04.2023 10:59)
- Алгоритм как двигать транспортер, чтобы всякий раз подвигать ящик к
краю - IBAH(16.04.2023 11:02)
- Взял из FIFO очередной прогноз прибытия, пересчитал с учетом
времени разгона/торможения, включил транспортер и отсчитал время.
Перед взятием следующего из FIFO откорректировал все элементы в
нем, с учетом фактического времени стояния ящика на выдаче
(+разгон/торможение). При наладке, время разгона/торможения
подобрать по-факту. Cкpипaч(326 знак., 16.04.2023 11:15)
- Нет никакого времени, разгона/торможения, просто двигаем
транспортер на расстояние Х - IBAH(16.04.2023 11:15)
- Самообман. Нужное расстояние нужно корректировать с учетом фактической ошибки двигания N-1 предыдущих ящиков. А измерить его нечем. Cкpипaч(512 знак., 16.04.2023 11:54)
- Нет никакого времени, разгона/торможения, просто двигаем
транспортер на расстояние Х - IBAH(16.04.2023 11:15)
- Взял из FIFO очередной прогноз прибытия, пересчитал с учетом
времени разгона/торможения, включил транспортер и отсчитал время.
Перед взятием следующего из FIFO откорректировал все элементы в
нем, с учетом фактического времени стояния ящика на выдаче
(+разгон/торможение). При наладке, время разгона/торможения
подобрать по-факту. Cкpипaч(326 знак., 16.04.2023 11:15)
- Алгоритм как двигать транспортер, чтобы всякий раз подвигать ящик к
краю - IBAH(16.04.2023 11:02)
- Если это модель данных, то ящик это время его прибытия на конец
ленты (время прохождения датчика + задержка прохождения по ленте до
края). Раз ящиков несколько - FIFO. Или я снова не понял природу
вопроса? - Cкpипaч(16.04.2023 10:59)
- Транспортер - это модель данных IBAH(1 знак., 16.04.2023 10:42, картинка)