Приклади використання машини реального часу

Добрий день, шановна Аудиторія!
У своїй практиці я часто стикаюся з ситуацією, коли при згадці мною в розмові якоїсь «машини реального часу» в очах співрозмовника проскакує мільйон асоціацій, на жаль, не мають відношення до теми розмови.
У першій статті я хочу трохи пролити світло на дану тему з настільки незвично звучить для російськомовної інженерної аудиторії назвою.

Всіх, хто цікавиться запуском алгоритмів управління та фізичних моделей у вигляді моделей Simulink в режимі жорсткого реального часу з мінімальними затратами - прошу під кат!
Увага, багато зображень!

Приклади використання машини реального часу

Отже, коротке визначення:

  • Машина реального часу - це комп'ютер, який призначений для виконання широкого спектру завдань в режимі реального часу.

Пояснення до короткого визначенню:

  • Широкий спектр завдань тягне за собою деяку універсальність і надмірність в програмної та апаратної складової. Здебільшого такі ПК (промисловий комп'ютер, не плутати з персональним) мають багатий набір засобів введення-виведення у вигляді інтерфейсних плат і драйверів до них.
  • Вимога до роботи в реальному часі виливається в те, що даний ПК повинен працювати під управлінням операційної системи реального часу. Є винятки з цього правила, режим вільного рахунки ніхто не відміняв.

Є винятки - бувають складові симулятори з декількох машин, і без плат введення виведення, і не промислового виконання, і в м'якому режимі реального часу. Але, знову ж таки, найчастіше - це IBM сумісний комп'ютер з апаратними та програмними компонентами, що дозволяють йому працювати з жорсткому реальному часі.

У російськомовній літературі і побуті часто зустрічається терміни програмно-апаратний симулятор і напівнатурні моделювання. З моєї точки зору, вони не є повними. Тому як «симуляція моделей» - не єдина функція даного пристрою.

Перелік виробників таких рішень досить великий. Я прийму до розгляду вироби від Speedgoat. з якими мені пощастило досить щільно працювати.

Нижче, на основі прикладів, я постараюся розкрити суть використання таких машин.

Команда інженерів займається розробкою електричного приводу. Є модель в Simulink. в якій підсистему Controller (система управління) розробив інженер по системах управління, а підсистему Plant (модель двигуна) - інженер відділу фізичного моделювання.

Завдання: апаратного прототипу контролера ще немає, і не ясно коли буде. Прототипу двигуна теж немає, або його страшно підключати до поки ще сирий системі управління.

Рішення: Використовувати машину реального часу для швидкого прототипування системи управління. І ще одну машину, але більш продуктивну, для запуску фізичної моделі двигуна в реальному часі. Інтерфейси між такими машинами можуть і повинні бути такими ж, як між реальним двигуном і контролером. Така зв'язка називатися HIL - Hardware-In-The-Loop. По простому - програмно-апаратна симуляція. Вона дозволяє на ранніх стадіях інтегрувати і тестувати алгоритми управління в зв'язці з моделлю об'єкта управління в реальному часі з урахуванням впливу середовища передачі даних між пристроями.

На ілюстрації нижче показано схема такого процесу. Машина реального часу для системи управління може бути в захищеному виконанні для подальшого розміщенні в польових умовах. Машина ж для фізичної моделі необхідна більш продуктивна - зображена праворуч. Перенесення алгоритму і моделі в реальний світ виробляється в один клік мишею і може бути виполемо інженером без допомоги програміста і без глибокого вникання в нюанси ОСРВ.

Все та ж команда. З'явився прототип двигуна, прототип контролера ще тільки в розробці.

Завдання: Необхідно протестувати систему управління на реальному об'єкті управління.

Рішення: Система управління вже відтестувати на моделі двигуна при роботі на ПК. Потім ще більш повно в режимі HIL. Тепер же, коли з'явився реальний прототип - його вже не так страшно запускати. Тому як більшість помилок вже виловлено та необхідно лише затверджувати роботу системи.

Можливий також випадок, коли об'єкт управління був з самого початку. Тоді швидкий перехід від моделі системи керування до працюючого залізницею можна назвати швидке прототипування або Rapid Prototyping.

Приклади використання машини реального часу

Знову знайома команда. Вийшов перший зразок контролера.

Завдання: Необхідно підключити перший зразок до, можливо, многокіловатному двигуну


PLC Siemens + Speedgoat real-time machine

Фінальна стадія розробки.

Завдання: Необхідно провести 100500 тестів на реальному приводі і задокументувати результати в найкоротші терміни.

Рішення: Машина реального часу може виступати серцем випробувального стенду - генерувати тестові сценарії і вести лог необхідних параметрів. В MATLAB можна створити нелінійний сценарій тестування, який може автоматично перебудовуватися в залежності від отриманих результатів. Генератор документації же допоможе сформувати звіт в необхідному форматі автоматично.

Приклади використання машини реального часу

Як видно з прикладів, одна і та ж машина може бути перевикористати в різних варіантах використання. Але все ж повністю уніфікувати дані пристрої неможливо - є якесь розподіл по функціоналу. Лінійка Speedgoat, наприклад, має такий вигляд:

Приклади використання машини реального часу

Освітня версія - це незмірна радість для будь-якої лабораторії в технічному університеті.
Маючи таку в лабораторії, можна за фіксований період дипломування, наприклад, встигнути зробити набагато більш просунутий проект.
Машину реального часу від Speedgoat всередині має робот Гепард від MIT:

І дві таких же я відвіз в Набережні Челни на кафедру систем управління філії КФУ.

У мене є ще задум більш детально висвітлити такі питання.
А саме:

  • Генерація коду C / C ++ / Verilog / VHDL
  • Апаратне забезпечення, плати введення виведення
  • Програмне оточення, ОСРВ, BIOS
  • Налагодження в реальному часі (External mode)

Спасибі за прочитання!

Схожі статті