Дісбаланс_вала RFo: 2 АБО AFo: 2
<Номер опори> може приймати значення:
- Передня опора.
- Задня опора.
- Задня опора в осьовому напрямку.
- Технологічні параметри.
Як і у випадку з попереднім файлом відбувається виклик функції перевірки правильності структури файлу bool SetDiagnFlle (string fname). При успішному завершенні дані зчитуються і відкривається доступ до наступної кнопці «Крок 4: Діагностика» (див. пункт 5.4).
5.3.2 Попередня обробка інформації для діагностування
Для запуску процесу діагностування необхідно попередньо переробити вводиться інформацію: перетворити сигнали віброперемещенія в спектри віброперемещенія і віброприскорення, обчислити оборотну частоту обертання валу нагнітача і розрахувати уставки, що залежать від оборотної частоти обертання вала [13]. Крім того, потрібно переконатися, що сигнали, отримані з датчиків валідниє, тобто перевірити чи було взагалі зчитування сигналу, чи не було обриву лінії на середині зчитування, не видається чи помилковий сигнал, у зв'язку з поганим кріпленням датчика до опори ЦБН. Блок-схема алгоритму попередньої обробки віброакустичних даних для виконання діагностування зображена на малюнку 5.2.
Малюнок 5.2 - Алгоритм попередньої обробки віброакустичних даних
Для розрахунку сигналів віброперемещенія використовується процедура SetSpektr (). Сигнали, виміряні з опори, перетворюються за допомогою швидкого перетворення Фур'є (ШПФ) в масив комплексних чисел. Потім отриманий масив нормалізується в масив дійсних чисел. Для використання БПФ і комплексних чисел до проекту була підключена безкоштовна математична бібліотека AlgLib.
void SetSpektr ()
{j=CountInMas / 2; fmaxFFT=(int) 4000 * 1.28; freqmax=4000; [] dd;=new Massiv (); (int i=0; i
{. Add ((i * fmaxFFT) / j);
}
/ / SI_ZOV=SI_ZOV.ToDoubleMas;=new AP.Complex [0];. fft.fftr1d (ref dd, CountInMas, ref FZOV);=Norm (FZOV);
}
Спектри віброприскорення розраховуються зі спектрів віброперемещенія c допомогою функції AP.Complex [] FillA (AP.Complex [] compMas).
AP.Complex [] FillA (AP.Complex [] compMas)
{SpecChanelPrice=1.25;. Complex [] res=new AP.Complex [CountInMas / 2]; (int i=0; i
{ymn=Math.Pow (2 * Math.PI * i * SpecChanelPrice, 2.0) / 1000000; [i]=new AP.Complex (compMas [i]. x * ymn, compMas [ i]. y * ymn);
} res;
}
Перевірка сигналу на ті чи інші несправності відбувається в наступному шматку коду.
. Text=«SI_ZOV»; (noSignal (SI_ZOV.Disp))
{. Text +=«: Немає сигналу»;. BackColor=Color.Tomato;
} if (ZeroShift (SI_ZOV.SrAr))
{. Text +=«: Зміщення нуля»;. BackColor=Color.Tomato;
} if (lineBreak (fS06FoZov, freq [1], S06FoZov, Szov_fo))
{. Text +=«: Обрив лінії»;. BackColor=Color.Tomato;