Форум сайта python.su
Все сигналы – битовые (True / False)
Есть устройство, контроллер. На него приходят сигналы с внешних датчиков (230 датчиков) и сигналы о состояниях реле (1350 реле). Контроллер после получения сигналов от датчиков и реле должен обработать их, выдать сигнал Reset и завершить цикл работы.
Бывает, что от одного из реле приходит сигнал об ошибке, который контроллер не может корректно обработать. В этом случае контроллер выдает комбинацию из 35 сигналов. 1-й этап цикла работы окончен.
На втором этапе с внешних датчиков приходят другие 230 сигналов. Опять как-то взаимодействуют с сигналом об ошибки с единственного реле и контроллер пытается корректно обработать их. В случае успешной обработки выдается Reset, ошибки сбрасываются и цикл работы завершается. Иначе контроллер опять выдает новые 35 сигналов и на этом завершается второй этап цикла работы.
Таких этапов пять.
Если за пять этапов контроллер не смог корректно обработать ошибку реле, то в конце он дает номер реле (один из 1350), в котором произошла ошибка.
Но это слишком поздно. Это нужно мчаться на нужный участок и искать нужное реле, а система стоит.
У нас работает Дмитрий Васильевич ), человек, который участвовал в монтаже всей системы в 1980 году. Вот он как-то по входным сигналам понимает, какова вероятность корректного срабатывания контроллера на следующем этапе и выдача желанного сигнала Reset. А если этого не происходит, то по сочетанию входных сигналов, искомого неизвестного номера реле и выходных сигналов способен локализовать диапазон, в котором находится реле с ошибкой. И от этапа к этапу этот диапазон номеров реле уменьшает, что ОЧЕНЬ помогает в скорости устранения неисправности.
В голове у него происходит примерно так:
1. Контроллер не выдал Reset. Смотрим на входные сигналы, смотрим на выходные.
Реле всего 1350. Ошибка в диапазоне примерно с 550-го по 1200-ой реле.
2. Смотрим входные сигналы второго этапа. Вероятность выдачи Reset с такими сигналами около 30%. Reset не выдался и смотрим выходные сигналы контроллера.
Сужаем диапазон ошибки. Ошибка в диапазоне реле с 825-го по 1100-е реле.
3. Смотрим входные сигналы третьего этапа. Вероятность выдачи Reset с такими сигналами около 50%. Reset не выдался и смотрим выходные сигналы контроллера.
Сужаем диапазон ошибки. Ошибка в диапазоне реле с 900-го по 1100-реле.
И.т.д.
И мы, еще не имея точной информации о номере неисправного реле, но примерно знаем куда ехать и где будет найдена неисправное реле.
Но Дмитрий Васильевич скоро уходит на пенсию.
Хотелось бы попробовать заменить его нейронной сетью. О работе нейронных сетей имеется общее представление. Есть навыки работы с python`ом.
Нужен человек, который подскажет какую питоновскую библиотечку использовать для генерации нейронки и чуть поможет с этим.
Цель: 1. предсказывать вероятность генерации сигнала Reset перед каждым этапом на основании известных предыдущих входных сигналов с датчиков и выходных сигналов контроллера.
2. На основании предыдущих сигналов на каждом цикле предсказывать диапазон, в котором находится неисправное реле. А лучше несколько более мелких диапазонов с вычисляемым процентом вероятности нахождения в нем неисправного реле.
Есть задокументированная выборка примерно из 50 000 циклов работы системы. Из них в 80% случаев контроллер на каком либо этапе выдавал Reset. В 20% случаев после последнего этапа имеется информация о неисправном реле.
Офлайн
> Бывает, что от одного из реле приходит сигнал об ошибке, который контроллер не может корректно обработать. В этом случае контроллер выдает комбинацию из 35 сигналов.
Это как “не может”? Тебе с работой контролёров разбираться надо, а не с нейронкой.
Офлайн
Да с такого описания ничего дельного не посоветуешь.
Но интуиция подсказывает что никакие искусственные нейронные сети вам не помогут. Надо шевелить своими мозгами чтобы понять как работает система.
Начнем вот с чего. Вы хотите автоматизировать поиск. А что вы будете задавать в программу и что из нее хотите получить?
Офлайн
doza_and
Да с такого описания ничего дельного не посоветуешь.Но интуиция подсказывает что никакие искусственные нейронные сети вам не помогут. Надо шевелить своими мозгами чтобы понять как работает система.Начнем вот с чего. Вы хотите автоматизировать поиск. А что вы будете задавать в программу и что из нее хотите получить?
Отредактировано AlCat (Дек. 8, 2017 06:46:38)
Офлайн
Отлично.
1. Нужен пример лог файла с пояснением где входные сигналы где ответ контроллера.
2. хотя-бы примерная схема соединения. На ней должны быть перечисленные участники спектакля.
Реле
сигналы реле (они с основным состоянием не связаны?)
сигналы\датчики (сейчас непонятно что это такое и какая у них связь с реле)
контроллер (как он выдает команды и сколько у него входов)
3 что означает что реле неисправно. Оно не переключается? может допустимо пощелкать? Оно неисправно если датчик состояния отказал?
4 поскольку речь идет о ускорении необходимо сделать временную диаграмму и подписать на ней длительности этапов.
Офлайн
у вас 1350 проводов идет на один контроллер?
я в такой ситуации когда-то разбил систему на подгруппы и на каждую подгруппу поставил свой контроллер, формирующий сигнал групповой исправности/неисправности
Офлайн
vic57Это 80 год. Не удивлюсь если контроллер это здание с сотрудниками.
у вас 1350 проводов идет на один контроллер?
Офлайн
Я старался упростить задачу для понимания. Сейчас пытаюсь сформулировать нормальное ТЗ, но это получится не один лист непонятного текста. Все сложнее.
По этому, возможно, нужно поставить задачу еще проще.
Выходные сигналы черного ящика как-то показывают информацию о диапазоне номеров реле, в котором находится неисправное реле с определенным номером. От этапа к этапу, анализируя выходные сигналы, этот диапазон возможно уменьшать.
1й этап: 1000 входных сигналов в черный ящик - 35 выходных сигналов.
2й этап: 1000 входных сигналов в черный ящик - 35 выходных сигналов.
3й этап: 1000 входных сигналов в черный ящик - 35 выходных сигналов.
4й этап: 1000 входных сигналов в черный ящик - 35 выходных сигналов.
5й этап: 1000 входных сигналов в черный ящик - 1 выходой (с искомым номером).
Цель - написать программу, которая после каждого этапа, анализируя входные и выходные сигналы черного ящика, показывает наиболее вероятный диапазон номеров реле, в котором находится неисправное реле.
Если бы все ограничивалось одним этапом, по результатам которого имелся бы правильный ответ, то это напоминало бы задачу классификации или распознавания. Но этапов несколько. А анализ и прогноз нужен после каждого этапа. Меня это ставит в тупик. Чувствую, что решение тут есть, а найти его не могу.
Офлайн
vic57Суть решения задачи примерно такова. )
у вас 1350 проводов идет на один контроллер?я в такой ситуации когда-то разбил систему на подгруппы и на каждую подгруппу поставил свой контроллер, формирующий сигнал групповой исправности/неисправности
Офлайн
По такому объяснению трудно что то посоветовать?
Офлайн