Применение средств логики предикатов для структурирования результатов диагностики автомобиля

УПРАВЛЕНИЕ, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И ИНФОРМАТИКА

УДК 004.415.28

ПРИМЕНЕНИЕ СРЕДСТВ ЛОГИКИ ПРЕДИКАТОВ ДЛЯ СТРУКТУРИРОВАНИЯ РЕЗУЛЬТАТОВ ДИАГНОСТИКИ АВТОМОБИЛЯ

© 2010 г. Д.В. Сергеев, ЮА. Шапошников

Алтайский государственный технический Altaic State Technological

университет, г. Барнаул University, Barnaul

Рассмотрены бортовые информационно-советующие системы на основе теории логического вывода, применение которых позволит расширить возможности использования электронных компонентов автомобиля для таких целей, как автоматизированная компьютерная диагностика по сети Интернет и интеллектуальное управление автомобилем.

Ключевые слова: автомобиль; бортовые информационно-советующие системы; компьютерная диагностика.

In modern cars a number of automatic control systems on the basis of the onboard computer are created. There is an objective requirement in expensive specialised hardware and the software with which only highly skilled experts of the service centres can work. Creation and introduction of onboard information-advising systems based on the theory of a logic conclusion will allow to expand possibilities of the car electronic components using for such purposes, as automated computer diagnostics with the Internet and intellectual control.

Keywords: the car; systems on the basis of the onboard computer are created; computer diagnostics.

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

Одним из направлений расширения возможностей «умной» электроники автомобиля можно считать внедрение бортовых информационно-советующих систем на основе теории логического вывода, базирующейся на специальных разделах математической логики.

Создание и внедрение такой системы управления позволяет расширить возможности использования электронных компонентов автомобиля для таких целей, как автоматизированная компьютерная диагностика по сети Интернет и управление исполнительными механизмами автомобиля.

Задачами исследования на начальном этапе являются:

- сбор данных, считываемых с датчиков бортовой вычислительной сети;

- разработка методики формализации собранных данных с помощью логики предикатов первого порядка;

- формирование базы фактов как основы для процедур логического вывода.

Предметная область «диагностика и управление автомобилем» обладает следующими особенностями. С одной стороны, отказ автомобиля (узла, агрегата) как любой механической системы всегда происходит по какой-либо причине (следствие поломки детали, у которой истек срок эксплуатации). С другой стороны, сама по себе наработка на отказ автомобиля или агрегата является случайной величиной и зависит от ряда факторов: первоначального качества материала, точности обработки, качества сборки, условий эксплуатации.

В связи с этими особенностями для задания исчисления высказываний (формальной теории), имеющего интерпретацию в данной предметной области, необходима информация о закономерностях изменения технического состояния: изменение технического состояния автомобиля, агрегата, детали по времени работы или пробегу; вариация параметров технического состояния и других случайных величин (продолжительность выполнения ремонтных и профилактических работ); формирование суммарного потока отказов за весь срок службы автомобиля (группы автомобилей).

Любая интеллектуальная система (ИС) содержит следующие элементы (рис. 1):

- решатель задач;

- информационная среда;

- интеллектуальный интерфейс.

Решатель задач состоит из рассуждателя, вычислителя и синтезатора. Информационная среда - это объединение базы фактов (БФ) и базы знаний (БЗ). Интеллектуальный интерфейс состоит из средств представления результатов (в том числе графического), диалога на естественном языке и научения работе с компьютерной системой [1].

Рис. 1. Структура интеллектуальной системы

Существенной особенностью ИС является реализация в рассуждателе КПЭ-рассуждений (когнитивных правдоподобных эмпирических рассуждений) в интерактивном режиме с целью соответствующего пополнения БФ для формирования информативности представлений изучаемых эффектов и подбора посылок, релевантных цели рассуждения.

Структура данных, используемая для представления фактов в БФ, должна быть пригодна для формализации структурного сходства фактов. Это обстоятельство делает возможным реализацию условия: сходство фактов влечет сходство эффектов и их повторяемость (это условие лежит в основе формализованного качественного анализа данных) [1].

Для осуществления диагностики электронной системы управления двигателем (ЭСУД) автомобилей было разработано программное обеспечение (ПО), в котором полностью реализован протокол обмена данными с электронным блоком управления (ЭБУ) KWP2000 [2], поддерживаемый следующими контроллерами: «Motronic Bosh 1.5.4(N)» и отечественным аналогом «Январь 5.1 .х».

Для подключения персонального компьютера, на котором установлено данное ПО, к автомобилю было использовано следующее аппаратное обеспечение:

- K-Line адаптер (подключается к диагностической колодке автомобиля);

- переходник RS232(DB9M) - USB.

Подключение адаптера производилось к диагностическому разъему, который на тестируемом автомобиле ВАЗ 2112 расположен внизу справа от рулевой колонки (рис. 2).

Рис. 2. Расположение колодки диагностики в автомобиле

Так как K-Line адаптер рассчитан на обмен данными с компьютером по протоколу RS-232 (через COM-порт), а последовательный интерфейс на современных ПК отсутствует, то для подключения адаптера к компьютеру был использован переходник USB-COM и специальный драйвер, обеспечивающий возможность установки параметров работы переходника в соответствии со спецификацией протокола KWP2000.

Таким образом, физически соединение «компьютер - автомобиль» выглядит следующим образом (рис. 3).

Сам процесс диагностики ЭСУД автомобиля на уровне обмена данными представляет собой передачу запросов и прием ответов в формате, указанном в спецификации протокола KWP2000. Каждый запрос (ответ) называется сообщением и представляет собой непрерывную последовательность байт. Сообщения отделяются друг от друга временными интервалами, в течение которых передача данных по каналу связи запрещена.

Поток байтов от компьютера к автомобилю и обратно, возникающий в процессе диагностики, можно сохранить в файл, получив таким образом протокол обмена, который и будем считать исходными данными для создания базы фактов. Визуально данный поток можно наблюдать с помощью программы-монитора (например, Advanced serial port monitor). Фрагмент потока байтов представлен на рис. 4.

В разработанном ПО имеются средства интерпретации получаемых от ЭБУ сообщений в соответствии с KWP2000, а также средства визуализации данных, передаваемых в этих сообщениях. Также разработан графический интерфейс пользователя, облегчающий процесс обмена сообщениями с ЭБУ автомобиля.

Чтобы сохранить факты в базе для последующей автоматизированной обработки с помощью алгоритмов логического вывода, их необходимо формализовать. Для этой цели была использована логика предикатов первого порядка.

Являясь формализованым аналогом обычной логики, логика предикатов первого порядка [3] дает возможность строго рассуждать об истинности и ложности утверждений и об их взаимосвязи, в частности о логическом следовании одного утверждения из другого, или, например, об их эквивалентности. Выражение, в котором опущены знаки операций вида

A1,A2,...,An ^ B1,B2,...,Bm

где А¡, Bj - предикаты первого порядка, есть клауза.

При n = 1 из (1) получается формула, называемая клаузой Хорна (definite clause): A^B1, B2,..., Bm.

Чтобы формализовать тот или иной факт, используя логику предикатов первого порядка, необходимо выполнить следующие шаги:

1. Сформулировать предложение, исключив из него несущественные слова.

2. Преобразовать это предложение, поставив на первое место отношение, а после него - сгруппированные объекты.

3. Записать на языке логики предикатов фразу, в которой объекты являются аргументами выделенных в приложении отношений. При этом сходные факты должны быть формализованы в одной и той же форме.

Компьютер USB-COM K-Line адаптер Автомобиль

н ш

*

Рис. 3. Физическая цепь «компьютер - автомобиль»

НМЙенТы £3

-Г"

и 12

13

14

15

16

22 23 21

25

26 21

33

34

35

36

37

r<DLE>cI4ETX>

r<DLE>cr<ETX>rc<DLE>ElcU?

r<DLE>c<DLE>r<LFXÜS>

r<DLE>c<DLE>r<LFXDS>, c<DLE>PrT

r <DLE>CXSTX>r

,<DLE>CX5TX>r

, <DLE>C<SDB>KGS>

,<ОЬЕ>а5\Ш>Ъ<аЗ>Ъс<аШ>агЪяяяяяяяяяяяяяяяяяяя2112 -1411020-71NOISUPPQRT1411010-71SAHÜRil-1.5L, 16ЧЯЯЯЯЯЯЯ2 7-07-2000 J5D07G2 91

,<DLE>CX5TX>r

,<DLE>CXSTX>r

,<DLE>c!<SOH>r

,<DLE>C I<SOH>fl.c<DLE>"a<SOH> (U<5TX>,<KÜLXHÜLXNÜLXHDL>0 (<NÜLX5DB>g93S <HDL>-er<STX>€<HÜL>b<:5TX>J<NDL>HHl j-

,<DLE>CX5IX>r

,<DLE>CXSTX>r

„<DLE>c<CÄNXNULxmLXNUL>k

„<DLE>c<CÄNXNULXHULXNUL>k, c< DLE >X<NUL >Ы

,<DLE>CXSTX>r

,<DLE>CXSTX>r

„<DLE>cO-iLFXACKXHUL>E

„<DLE>cO<LFXACKXHÜL>Ex,c<DLE>p<LFXACKXNÜLXENQ> r<DLE>cO<LFXNÜL>s

r<DLE>cO<LFXNUL>s„c<DLE>p<LFXHULXNÜL>a

,<DLE>CXSTX>r

,<DLE>CX5TX>r

„< DLE >c 0<VT XACKX SOH>3

„<DLE >c 0<VT XACKX SOH>3 „C<DLE >p<VT X ACKXS OHXEE L >

,<DLE>CXSTX>r

,<DLE>CXSTX>r

r<DLE>cO<VTXNUL>i

r<DLE>co<VTxmL>i„c-iDLE>p<VTXNULXHULXHUL>

,<DLE>CXSTX>r

,<DLE>CXSTX>r

f<D!E>c y

f<DH>c уГс<Е'11>'Е

f<DLE>c,<EOI>

Рис. 4. Фрагмент потока байтов «автомобиль -

Таким образом, факт - это отношение между объектами, либо свойство объекта, записанное на языке логики предикатов первого порядка. Факт является простейшим предикатом, значение которого всегда истинно. Например, мы считали из ЭБУ модель автомобиля: К4721083-0000010-20. Сформулированное в соответствии с шагом 1 предложение будет иметь вид: «идентификатор автомобиля равен V4Z21083-0000010-20».

Выделив отношение «идентификатор автомобиля равен», обозначим его предикатом P(x). Таким образом, факт, который мы запишем в базу будет выглядеть следующим образом: P(« VAZ21083-0000010-20»).

Если нам понадобится сохранить дату проведения диагностики конкретного автомобиля, можно изменить P(x), добавив еще одну предикатную константу: P(x, у) - «автомобиль, идентификатор которого равен x, проходил диагностику в день - у».

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

В соответствии со спецификацией протокола KWP2000 возможны четыре типа предложений, из

компьютер» во время сеанса диагностики ЭСУД

которых можно извлечь факты. Такими предложениями являются сообщения, посылаемые ЭБУ в ответ на следующие запросы:

- readEcuIdentiflcation (считать таблицу основных идентификаторов);

- readDataByLocalIdentifler (считать показания датчиков ЭСУД);

- readDiagnosticTroubleCodesByStatus (считать коды неисправностей из памяти контроллера);

- clearDiagnosticInformation (очистить память контроллера).

Примером ответа на сообщение readEcuIdenti-flcation является следующая последовательность байтов: ^ 80, 56, 41, 5A, 32, 31, 30, 38, 33, 2D, 30, 30, 30, 30, 30, 31, 30, 2D, 32, 30, 32, 31, 31, 32, 20, 2D, 31,

34, 31, 31, 30, 32, 30, 2D, 36, 30, 30, 32, 36, 31, 31, 32, 33, 34, 35, 36, 31, 34, 31, 30, 30, 30, 2D, 30, 30, 53, 41, 4D, 41, 52, 41, 2D, 31, 2Е, 35, 6С, 2С, 20, 38, 26, 32, 38,

35, 30, 33, 35, 38, 30, 35, 2D, 30, 37, 2D, 31, 39, 39, 36, 4D, 31, 56, 31, 33, 46, 30, 34}.

Каждый байт данной последовательности представлен шестнадцатеричным числом. В соответствии со спецификацией протокола обмена, в этой последовательности байтов имеются данные, представленные в табл. 1.

Таблица 1

Данные, содержащиеся в сообщении-ответе на запрос readEcuIdentification

Наименование параметра Значение

VIN(Vehicle Identification Number) VAZ21083-0000010-20

VehicleManufacturerECU HardwareNumber 2112 -1411020-40

SystemSupplierECUHardware Number 0261123456

SystemSupplierECUSoftware Number 1411000-00

SystemNameOrEngineType SAMARA -1.5L, 8V

RepairShopCode 2850358

ProgrammingDate (ДД-ММ-ГГГГ) 05-07-1996

VehicleManufacturerECUI dentifier M1V05E02

Согласно первому шагу, имеем четыре предложения:

1. «Автомобиль имеет идентификатор, равный V4Z21083 -0000010-20».

2. «Автомобиль имеет ECU с идентификатором производителя аппаратной части 2112-1411020-40, идентификатором M1V05E02, идентификатором поставщика 0261123456, идентификатором ПО поставщика 1411000-00, с датой прошивки 05-07-1996».

3. «Автомобиль имеет двигатель типа SAMARA -1.5L, 8V».

4. «Автомобиль имеет код запасных частей 2850358».

В результате выполнения следующих двух шагов получаем четыре предиката:

1. vin(x) - «автомобиль имеет идентификатор x».

2. ecu(id,id_mh,id_sh,id_ss,id_pd) - «автомобиль имеет ECU с идентификатором id, идентификатором производителя аппаратной части id_mh, идентификатором поставщика аппаратной части id_sh, идентификатором поставщика ПО id_ss, датой программирования id_pd».

3. engine(x) - «Автомобиль имеет двигатель x».

4. repaired(x) - «Автомобиль имеет код запчастей x».

Таким образом, чтобы идентифицировать автомобиль в базе фактов, используем следующую формулу, записанную в виде клаузы Хорна (фразы Хорна):

vin(id) ^ ecu(id,idmh,idsh,idss,idpd) л

Aengine

Подставив данные из примера, получим факт: vin (" VAZ21083-0000010-20") ^ ^ ecu("M1V05E02","2112 -1411020-40", "0261123456","1411000-00","05-07-1996") л лengine("SAMARA-1.5L, 8V") л repaired("2850358").

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

Аналогично, из ответа на сообщение readDataBy Localldentifier извлекаем факт, который формализуем следующим предикатом:

vin

Конкретные значения предикатных констант idi и термов vali (в общем случае зависящих от времени) формируются в результате интерпретации байтового сообщения, полученного от ЭБУ автомобиля.

Если необходимо сохранить изменение некоторого параметра (параметров) во времени, то используется следующая формула:

process(pid, vinid, Time) ^

^ currentvalues(val1(Time),..., val20 (Time)),

где pid - идентификатор эксперимента; vinid - идентификатор автомобиля; Time - предикатная переменная: момент времени.

Из ответа на сообщение readDiagnosticTrouble CodesByStatus извлекаем факты, которые опишем предикатом: error (error _ code, er _ status).

Используя формулу

n

errors

i =1

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

Идея логического программирования заключается в использовании компьютера для получения выводов из декларативного описания предметной области (базы фактов и правил вывода). Основой этой идеи является раздел математической логики, получивший название автоматизация доказательства теорем.

С целью повышения эффективности метода резолюций, используемого в качестве метода автоматизации доказательства теорем в программах на Prolog [4], применяются формулы вида (1) при n < 1. За основу декларативного описания предметной области берутся факты и правила. При m > 0 эта формула описывает правило, при m = 0 - факт. При n = 0, m > 0 формула описывает целевое утверждение.

Таким образом, используя предложенную методику, можно осуществлять постоянное пополнение базы фактов с помощью протоколов обмена данными между автомобилем и компьютером, на котором установлено разработанное ПО. Приведем связь между фрагментом потока байтов «машина - компьютер», зарегистрированным с помощью программы Advanced serial port monitor (рис. 4) и базой фактов, записанной в синтаксисте языка Prolog с учетом формул (2), (3) и (4). Соответствие строк протокола обмена фрагментам базы фактов Prolog представлено в табл. 2.

Таблица 2

Соответствие строк протокола обмена данными фрагментам базы фактов на языке Prolog

Номер строки Фраза Хорна, формализующая факт Фрагмент базы фактов на языке Prolog

10 Формула (2) vin("VAZ21083-0000010-20"):-ecu("J5D07G29 ", "2112-1411020-71", "NOTSUPPORT", "1411010-71", " 27-07-2000"), engine("SAMARA-1.5L, 16V"), repaired("2850358 ").

14 Формула (3) vin("VAZ21083-0000010-20"):-complectfalse, false, false, true, false, false, true, true, false, false, false, true, false, true, true), workmode(true, false, false, false, false, false, false, false, true, false), malfuncfalse, false, false, false, false, false, false, false, false, false, false, false, false, false), currentvalues(0,9.65,0,1,0,12.05, 0,0,0,0,1310,212,0,0,0,120,120,25).

18 Формула (4) errors("VAZ21083-0000010-20 "):-error(0,0).

Дополнением к автоматически собираемым в процессе диагностики ЭСУД фактам являются факты, формализующие результаты диагностики автомобиля неавтоматизированными методами (данные газоанализатора, износ узлов и агрегатов, результаты визуального осмотра, данные о неисправностях, которые невозможно выявить при диагностике ЭСУД).

Конечной целью исследования является создание формальной теории (прикладного исчисления высказываний для предметной области «диагностика и управление автомобилем»), которую можно задать упорядоченной тройкой: Q = (М, А,Щ , где М - язык,

определяющий алфавит и множество правил построения формул (синтаксис) формальной теории, А - множество аксиом, включающее аксиомы классического

Поступила в редакцию

исчисления высказываний и аксиомы предметной области; К - множество правил вывода (множество отношений между формулами).

Выводы

Предложенная методика позволяет получить базу фактов, в которой хранятся данные о состоянии элементов ЭСУД удаленного автомобиля. Формализация базы фактов на языке логики предикатов первого порядка делает возможным последующий интеллектуальный анализ данных с помощью таких средств, как метод резолюции, ДСМ-метод порождения гипотез.

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

Литература

1. Арский Ю.М. , Финн В.К. Принципы конструирования

интеллектуальных систем // Информационные технологии и вычислительные системы. 2008. Вып. 4. С. 4 - 37.

2. Дударь Д.Б. Keyword Protocol 2000. Спецификация канала

связи с диагностическим оборудованием. Уровень обмена данными / АО «АвтоВАЗ», Генеральный департамент развития, 2000. 41 с.

3. Адаменко А.Н., Кучуков А.М. Логическое программиро-

вание и Visual Prolog. СПб., 2003. 992 с.

4. Ин Ц., Соломон Д. Использование Турбо-Пролога : пер. с англ. М., 1990.

22 апреля 2010 г.

Сергеев Денис Владимирович - аспирант, кафедра «Автомобили и автомобильное хозяйство», Алтайский государственный технический университет. Тел. +79236413035. E-mail: s_denis@pisem.net

Шапошников Юрий Андреевич - д-р техн. наук, профессор, кафедра «Автомобили и автомобильное хозяйство», Алтайский государственный технический университет. Тел. (8-3852)36-84-87. E-mail:frris@mail.ru

Sergeyev Denis Vladimirovich - post-graduate student, department «Automobile and Automobile Economy», Altaic State Technological University. Ph. +79236413035. E-mail: s_denis@pisem.net

Shaposhnikov Yuriy Andreevich - Doctor of Technical Sciences, professor, department «Automobile and Automobile Economy», Altaic State Technological University. Ph. (8-3852)36-84-87. E-mail:frris@mail.ru