Изобретение относится к области транспорта и может быть использовано для определения детонации двигателя внутреннего сгорания на основе формы волны вибрации двигателя внутреннего сгорания. Техническим результатом является создания устройства и способа определения детонации, с помощью которого можно точно определить возникла или нет детонация. Электронный блок управления (ECU) двигателя выполняет программу, включающую в себя этапы: детектирования величины вибрации двигателя (этап S102); детектирования формы волны вибрации двигателя на основе величины (этап S104); вычисления коэффициента К корреляции в случае, где частота NE вращения двигателя меньше порогового значения NE (1), с использованием суммы значений, каждое из которых определено путем вычитания положительного опорного значения из величины в модели формы ударной волны, в качестве площади S модели формы ударной волны, и вычисления коэффициента К корреляции в случае, где частота NE вращения двигателя не меньше порогового значения NE (1), с использованием площади S всей модели формы ударной волны (этап S114); и определения, возникла или нет детонация, с использованием коэффициента К корреляции (этапы S120, S124). Коэффициент К корреляции вычисляется путем деления на площадь S суммы разностей, каждая из которых является разностью между величиной на форме волны вибрации и величиной на модели формы ударной волны. 3 н. и 21 з.п. ф-лы, 28 ил.