По всем вопросам звоните:

+7 495 274-22-22

УДК: 621.9 DOI:10.33920/pro-2-2202-06

Программирование контрольных устройств на языке C++

Юдачев С. С., канд. техн. наук, доцент, МГТУ им. Н. Э. Баумана, Москва, 105005, Москва ул. 2‑я Бауманская, д. 5
Ситников С. С., МГТУ им. Н. Э. Баумана, Москва, 105005, Москва ул. 2‑я Бауманская, д. 5, е-mail: sitnikovss@bk.ru
Монахов П. А., МГТУ им. Н. Э. Баумана, Москва, 105005, Москва ул. 2‑я Бауманская, д. 5
Гордиенко Н. А., МГТУ им. Н. Э. Баумана, Москва, 105005, Москва ул. 2‑я Бауманская, д. 5

Аварии на нефте- и газопроводах, сопровождающиеся истечением жидкости, наносят экономический и экологический ущерб. Задача главных механиков — предотвращение аварий и контроль за работой оборудования. Необходимым условием для своевременного устранения аварий в нефтегазовой отрасли и ликвидации их последствий является оперативное определение местоположения утечек и врезок. Для решения данной задачи разработано и применяется большое количество методов, отличающихся чувствительностью, помехозащищенностью, скоростью и точностью определения координат мест утечек и врезок. При решении ряда типовых задач исследования и обработки сигналов о сбое в работе оборудования используются частотные характеристики. Предложен вариант реализации быстрого преобразования Фурье на языке программирования C++ и языке кодирования программируемой логической интегральной схемы Verilog. При выполнении работы используются программные обеспечения Visual Studio от компании Microsoft и Quartus от компании Intel (Altera). Представлено сравнение результатов обработки нескольких сигналов в приведенных выше программах. При реализации в программируемой логической интегральной схеме работа выполняется на уровне модели с использованием встроенной intellectual property core (IP функции), в то время как в C++ алгоритм реализован вручную, что повышает точность его выполнения. Практическая значимость работы —изучение и решение простейших задач в области разработки современных радиоэлектронных устройств, в том числе и для слежения за работой оборудования в нефтегазовой отрасли, быстрого реагирования на языке описания аппаратуры Verilog и сравнение с альтернативной моделью на языке программирования. Представлены выдержки кодов обеих программ. Проиллюстрированы БПФ (пошагово), а также сигналы до и после обработки. Данная работа может использоваться для обучения студентов высших учебных заведений в области разработки, отладки и кодирования электронных и радиоэлектронных устройств, а также при создании и проектировании реальных устройств на производстве. Ознакомление и изучение данного языка программирования проводятся в стенах одного из ведущих инженерных университетов Российской Федерации — Московского государственного технического университета им. Н.Э. Баумана.

Литература:

1. Цифровой синтез: практический курс / Под общ. ред. А. Ю. Романова, Ю. В. Панчула. — М.: ДМК Пресс, 2020. — 556 с.

2. Акчурин, А. Д., Юсупов, К.М. Программирование на языке Verilog: учебное пособие. — Казань, 2016. — 90 с.

3. Поляков, А. К. Языки VHDL и VERILOG в проектировании цифровой аппаратуры. — М.: СОЛОН-Пресс, 2003. — 320 с.

4. Бибило, П. Н., Авдеев, Н.А. Моделирование и верификация цифровых систем на языке VHDL. — М.: ЛЕНАНД, 2017. — 344 с.

5. Закревский, А.Д. Параллельные алгоритмы логического управления. — Минск: Ин-т техн. кибернетики НАН Беларуси, 1999. — 202 с.

6. Бибило, П.Н. Синтез логических схем с использованием языка VHDL. — М.: Солон-Р, 2002. — 384 с.

7. Бибило, П.Н. Cистемы проектирования интегральных схем на основе языка VHDL. StateCAD, ModelSim, LeonardoSpectrum. — М.: СОЛОН-Пресс, 2005. — 384 с.

8. Бибило, П. Н., Авдеев, Н.А. VHDL. Эффективное использование при проектировании цифровых систем. — М.: СОЛОН-Пресс, 2006. — 344 с.

9. Бибило, П.Н. Логическое перепроектирование схем, реализованных на FPGA, в схемы на базовых матричных кристаллах // Информационные технологии. — 2004. — №1. — С. 10–17.

10. Бибило, П.Н. Проектирование конечных автоматов в САПР WebPack ISE фирмы Xilinx // Информационные технологии. — 2004. — №3. — С. 8–13.

1. Cifrovoj sintez: prakticheskij kurs / pod obshch. red. A. YU. Romanova, YU. V. Panchula. — M.: DMK Press, 2020. — 556 s.

2. Akchurin, A. D., Yusupov, K.M. Programmirovanie na yazyke Verilog. Uchebnoe posobie. — Kazan', 2016. — 90 s.

3. Polyakov, A. K. Yazyki VHDL i VERILOG v proektirovanii cifrovoj apparatury. M.: SOLON-Press, 2003. 320 s.

4. Bibilo, P. N., Avdeev, N.A. Modelirovanie i verifikaciya cifrovyh sistem na yazyke VHDL. M.: LENAND, 2017. 344 s.

5. Zakrevskij, A. D. Parallel'nye algoritmy logicheskogo upravleniya. Mn.: In-t tekhn. kibernetiki NAN Belarusi. 1999, 202 s.

6. Bibilo, P.N. Sintez logicheskih skhem s ispol'zovaniem yazyka VHDL. — M.: Solon-R, 2002. — 384 s.

7. Bibilo, P. N. Cistemy proektirovaniya integral'nyh skhem na osnove yazyka VHDL. StateCAD, ModelSim, LeonardoSpectrum. — M.: SOLON-Press, 2005. — 384 s.

8. Bibilo, P. N., Avdeev, N.A. VHDL. Effektivnoe ispol'zovanie pri proektirovanii cifrovyh sistem. M.: SOLON-Press, 2006. — 344 s.

9. Bibilo, P. N. Logicheskoe pereproektirovanie skhem, realizovannyh na FPGA, v skhemy na bazovyh matrichnyh kristallah. //Informacionnye tekhnologii. — 2004. — № 1. — S. 10–17 10.Bibilo, P.N. Proektirovanie konechnyh avtomatov v SAPR WebPack ISE firmy Xilinx //Informacionnye tekhnologii. — 2004. — №3. — S. 8–13.

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

В современном мире сложно представить выполнение цифровой обработки сигналов без использования быстрого преобразования Фурье (БПФ).

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

БПФ представляет собой набор трех операций — сложение, вычитание и умножение. Имея на входе поток данных и правильно применяя перечисленные операции, можно с довольно большой точностью получить частотное представление сигнала.

В качестве программных функций будем использовать IP-функцию БПФ, функции ввода и вывода данных для языка Verilog, а также самостоятельно написанную функцию БПФ для C++:

fft (u0) — IP-функция БПФ в САПР Quartus;

fread — функция чтения потока данных из файла;

fwrite — функция записи выходных данных в файл;

FFT — функция, реализующая алгоритм БПФ в Visual Studio.

Также хотелось бы отметить, что для объективной оценки, а также для отображения физической сути алгоритма используется визуализация данных в виде графиков в программе Excel. На входе имеется поток данных, который следует разбить пополам. Сам алгоритм заключается, как уже было сказано, в складывании и вычитании их половин, одна из которых помножается на поворачивающий множитель. После такой обработки всех отсчетов последовательности (в данном случае их 1024) данные с выхода первой бабочки снова разделяются на две половины и отправляются на вход следующей.

Для Цитирования:
Юдачев, Ситников, Монахов, Гордиенко, Программирование контрольных устройств на языке C++. Главный механик. 2022;2.
Полная версия статьи доступна подписчикам журнала
Язык статьи:
Действия с выбранными: