Аннотация 2
Введение 5
1 Принцип работы шины CAN 6
2 Диагностика шины CAN 10
2.1 Нормальное состояние шины CAN 12
2.2 Аварийные ситуации на шине CAN 13
2.3 Определение состояния шины CAN и диагностирование неисправности с помощью алгоритмов машинного обучения 21
3 Разработка программы для диагностики шины CAN 27
3.1 Набор данных для обучения 27
3.2 Подготовка набора данных для машинного обучения 27
3.3 Разработка программы на языке Python 34
4 Тестирование алгоритма и сравнительный анализ 44
4.1 Тестирование машинного обучения 44
4.2 Сравнительный анализ алгоритмов машинного обучения 45
Заключение 54
Список используемых источников 56
Приложение А Код программы на языке Python 59
Данная работа посвящена решению вопроса диагностики CAN шины. Необходимо определить сопротивления утечки каждой линии шины на общий провод, либо на шину питания бортовой сети автомобиля. Решение о значении сопротивления утечки принимается на основании токов вытекающего CurrentHigh и втекающего CurrentLow в драйвер CAN шины. Значения этих токов фиксируется в процессе измерения дифференциального сопротивления CAN шины. С помощью внешней цепи возможно имитировать различные варианты замыкания линий шины как на общий провод, так и на шину питания, имеются следующие варианты сопротивления утечки: 100 Ом, 1 кОм, 10 кОм, 100 кОм.
На основании полученных данных предполагается разработать алгоритм и ПО для определения сопротивления утечки линий шины если таковые имеются.
Целью работы является разработка скрипта на основании проведенных исследований, который выполнит подготовку данных и создаст модель для определения токов (сопротивления) утечек по входным данным.
Объектом исследования является выбор и проработка программных оптимальных решений для обработки входных данных и выбор модели для определения тока(сопротивления) утечек.
Предметом исследования работы является поиск подходов к обработке входных данных и способов построения модели для определения тока утечки или сопротивления утечки.
Данный алгоритм и ПО предполагается внедрить в устройство диагностики, что позволит снизить затраты времени на диагностику CAN шины и необходимость дополнительного измерительного оборудования для выполнения этой задачи.
В ходе выполнения выпускной квалификационной работы на тему «Разработка методики диагностики токов утечки CAN-шины по току потребления драйвера» были рассмотрены теоретические основы поиска подходов к обработке входных данных и способов построения модели для определения тока утечки или сопротивления утечки.
Во время выполнения данной работы было произведено тестирование шины CAN на различные аварийные реакции. Полученные данные были использованы как входные данные для машинного обучения.
Таким образом, были рассмотрены теоретические сведения по исследуемому объекту, рассмотрены и протестированы различные алгоритмы машинного обучения, выбран наиболее подходящий, а также разработано ПО для определения неисправностей на шине.
Для разработки программы с применением технологии машинного обучения был выбран язык Python и среда разработки PyCharm, которая имеет большой набор библиотек с реализацией алгоритмов машинного обучения. Этот выбор предоставляет возможность реализовать программу с наименьшими затратами.
Как показал анализ эффективности алгоритмов машинного обучения, наиболее эффективным являются алгоритм логистической регрессии. Однако после более глубокого анализа эффективности стало ясно, что существуют алгоритмы, которые, справляются с поставленной задачей с аналогичной эффективностью.
В ходе разработки была произведена предобработка данных методом к- средних, благодаря чему были найдены ключевые точки и по ним были построены кривые зависимости сопротивления утечки от входного тока. Далее по этим кривым были созданы данные для реакции модели - результирующий столбец, благодаря которому были сопоставлены входной ток и реакция. Также была построена модель, которая по двум токам совершает прогноз о том, на какой из линий есть сопротивление утечки. После получения реакции по зависимости сопротивления утечки от входного тока было получено значение сопротивления утечки.
Таким образом, в данной выпускной квалификационной работе были отображены все основные моменты диагностики шины CAN, а также разработаны и программно реализованы алгоритмы определения неисправности с помощью методов машинного обучения.
Благодаря проведенным тестам была доказана высокая эффективность используемых алгоритмов для определения неисправностей на шине. И хотя в работе имеется всего две таблицы входных данных, разработанный подход позволяет расширить определение других подобных реакций.
1. B.Lubanovic. Introducing Python: Modern Computing in Simple Packages. O'Reilly Media, 2015. ISBN 978-1-449-35936-2.
2. J.VanderPlas. Python Data Science Handbook: Essential Tools for Working with Data. O'Reilly Media, 2016, 541 pp. ISBN 978-1-491-91205-8.
3. K.Funahashi. On the Approximate Realization of Continuous Mappings by Neural Networks. Neural Networks, 1989, v. 2, № 3, pp.183-191.
4. K.Hornick, M.Stinchcombe, H.White. Multilayer Feedforward Networks are Universal Approximators. Neural Networks, 1989, v. 2, № 5, pp.359-366.
5. M.Dawson. Python Programming for the Absolute Beginner. 3rd Edition. Course Technology, 2010. ISBN 978-1-435-45500-9.
6. M.Lutz. Python Pocket Reference: Python In Your Pocket. 5th Edition. O'Reilly Media, 2014. 258 pp. ISBN 978-1-449-35701-6.
7. Mohamad H.Hassoun. Fundamentals of Artificial Neural Networks. MIT Press, Cambridge, Massachusetts, 1995.
8. А.Н.Васильев, Д.А.Тархов. Нейростевое моделирование. Принципы. Алгоритмы. Приложения. СПб.: Изд-во Политехн. Ун-та, 2009. ISBN 978-57422-2272-9
9. Гэддис Т. Начинаем программировать на Python. - 4-е изд.: Пер. с англ. - СПб.: БХВ-Петербург, 2019. - 768 с.
10. Златопольский Д.М. Основы программирования на языке Python. - М.: ДМК Пресс, 2017. - 284 с.
11. Лутц М. Изучаем Python, 4-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2011. - 1280 с.
12. Лутц М. Программирование на Python, том I, 4-е издание. - Пер. с англ. - СПб.: Символ-Плюс, 2011. - 992 с.
13. Лутц М. Программирование на Python, том II, 4-е издание. - Пер. с англ. - СПб.: Символ-Плюс, 2011. - 992 с.
14. Лучано Рамальо Python. К вершинам мастерства. - М.: ДМК Пресс, 2016. - 768 с.
15. Любанович Билл Простой Python. Современный стиль программирования. - СПб.: Питер, 2016. - 480 с.: - (Серия «Бестсепперы O’Reilly»).
...