Genom & Factorio
Genom Genom
Я изучал время цикла твоей конвейерной линии и обнаружил небольшую неточность, которая может увеличить производительность примерно на три процента. Это тебе было бы интересно разобраться?
Factorio Factorio
Вот именно то, что не дает мне уснуть, так что да, давай разбираться. Подъем в три процента – задачка, которая стоит того, чтобы ее решить. Просто пришли мне данные, и я начну копаться в них.
Genom Genom
Отлично, пришли данные по скорости конвейера, показания нагрузки с метками времени и график обслуживания, чтобы я мог провести регрессию и найти причину отклонения.
Factorio Factorio
Конечно, вот, что ты просил: Журнал скорости конвейера (м/с) 00:00 – 0,5 00:01 – 0,52 00:02 – 0,51 00:03 – 0,53 00:04 – 0,52 … Показания нагрузки с метками времени (ед.) 00:00 – 120 00:01 – 122 00:02 – 121 00:03 – 123 00:04 – 122 … График обслуживания 00:02 – проверка выравнивания конвейера (5 мин) 00:07 – смазка двигателя (3 мин) 00:12 – калибровка датчиков (4 мин) … Прогони свою регрессию, скажи, что выйдет.
Genom Genom
Я быстро прогнал линейную регрессию между скоростью и нагрузкой в первые несколько минут. Коэффициент где-то 0.02, то есть нагрузка увеличивается примерно на 0.02 метра в секунду с каждой дополнительной единицей, но это мелочи по сравнению с колебаниями в 0.03 метра в секунду, которые ты видишь. Настоящая странность проявляется сразу после плановой проверки на 00:02: скорость падает до 0.51 метра в секунду и остается там до следующей корректировки на 00:04. Именно в этот пятиминутный период пропускная способность падает. Если во время проверок поддерживать скорость константой – 0.52 метра в секунду, например, приостановив подачу нагрузки или отрегулировав мотор – эти 3 процента можно будет выжать. Что-нибудь еще?
Factorio Factorio
Отличный захват. Судя по падению, там какая-то мелочь с контроллером двигателя во время проверки. Если держать скорость на уровне 0.52 м/с в течение пяти минут, дополнительные 3 % должны выровняться. Может, добавь небольшой предварительный буфер перед проверкой, чтобы конвейер успокоился, или подстрой PID-регулятор двигателя для стабилизации. Прогони быструю симуляцию с новыми настройками и посмотри, как останется пропускная способность.
Genom Genom
Я смоделирую контроллер двигателя дискретным ПИД-регулятором, добавлю 30-секундный предварительный буфер и симулирую профиль скорости в интервале с 00:02 до 00:07. Регулятор будет использовать Kp = 2.5, Ki = 0.5, Kd = 0.1, что позволит поддерживать скорость на уровне 0.52 м/с с отклонением не более ±0.001 м/с. Моделируемая пропускная способность остаётся стабильной, с незначительным разбросом в 0.0003 м/с. Это должно обеспечить стабильность прироста в 3%. Какие-нибудь ещё параметры нужно подкрутить?
Factorio Factorio
Звучит неплохо, но следи за нарастанием энергии в цепи индуктивности – эти тридцать секунд могут дать Ки-терму накапливаться и вызвать задержку, когда нагрузка снова возрастёт. Ещё раз проверь задержку датчика; сто миллисекунд – и PID полетит, получишь микро-колебания скорости. И убедись, что интервал обслуживания совпадает с естественным циклом ремня, чтобы не бороться постоянно с одной и той же фазой. Если всё это сходится, эти 3% будут гарантированы.
Genom Genom
Хорошо подмечено насчёт раскрутки. Добавлю зажим на 0.3 для интегральной части и анти-раскручивающий переключатель. Задержка датчика – 95 миллисекунд, поэтому введу компенсирующий член для её устранения. Плюс, сдвину окно обслуживания на старт в 00:01:30, чтобы оно не совпадало с естественным 60-секундным циклом. Это должно стабилизировать прирост в 3%. Давай запущу обновлённую симуляцию. Нам нужно будет это реализовать. Я обновил симуляцию: добавил зажим интегральной части на 0.3, компенсацию задержки в 95 миллисекунд и сдвинул время начала обслуживания на 00:01:30. Скорость остаётся стабильной, 0.52 метра в секунду, с дисперсией всего в 0.0002 метра в секунду, так что прирост в 3% должен быть устойчивым.
Factorio Factorio
Отличная работа с подгонкой, эта дисперсия в 0.0002 м/с – практически шум, эти 3% должны держаться стабильно. Просто следи за дрейфом датчика при более длительной работе; если задержка в 95 мс изменится, нужно будет немного подкорректировать ПИД-регулятор. Иначе лента будет продолжать работать на оптимальной частоте.