- •Лекция 1
- •Тема 1.1 Исторический обзор. Понятие системы. Особенности цифрового управления процессами
- •Понятие системы
- •Примеры типичных приложений цифрового управления
- •Особенности цифрового управления процессами Управление процессом в реальном времени
- •Пример: Пресс для пластика
- •Лекция 2
- •Тема 1.2 Управление на основе последовательного программирования. Управление на основе прерываний. Управление последовательностью событий и бинарное управление
- •Управление на основе прерываний
- •Примеры задач управления процессами
- •Лекция 3
- •Системы, содержащие несколько контуров управления
- •Взаимосвязанные системы
- •Критичные по времени процессы
- •Свойства процессов, усложняющие управление
- •Особенности систем цифрового управления
- •Отображение развития процесса во времени
- •Сбор данных измерений и обработка сигналов
- •Уровень сложности системы
- •Топология информационных потоков
- •Интерфейс оператора
- •Системная интеграция и надежность управления
- •Лекция 4
- •Типы моделей
- •Масштаб времени динамических моделей
- •Моделирование динамических систем
- •Непрерывные модели динамических систем. Уравнения состояния
- •Область применения линейных моделей
- •Ограничения сигнала
- •Нелинейные системы
- •Численное моделирование динамических систем
- •Проблема слишком большого шага
- •Дискретные модели динамических систем
- •Описание в пространстве состояний
- •Управляемость, оценка и наблюдаемость
- •Оценка состояния на основе измерений
- •Лекция 5
- •Датчики
- •Исполнительные устройства (механизмы)
- •Передача измерительных сигналов
- •Характеристики датчиков
- •Погрешность и точность
- •Динамические характеристики датчиков
- •Статические характеристики датчиков
- •Влияние нелинейности
- •Характеристики импедансов
- •Бинарные и цифровые датчики
- •Цифровые и информационно-цифровые датчики
- •Аналоговые датчики
Лекция 2
Тема 1.2 Управление на основе последовательного программирования. Управление на основе прерываний. Управление последовательностью событий и бинарное управление
Попытаемся проанализировать следующую проблему: могут ли задачи управления в реальном времени решаться с помощью последовательного программирования. Блок-схема регулирования температуры представлена на рис. 2.3. Программа считывает температуру пластика каждые 10 секунд, определяет необходимое время нагрева (переменная heatjtime), включает нагреватель и затем переходит в цикл занятого ожидания {busy loop) обновления счетчика времени (переменная С), во время которого компьютер не может выполнять никакие другие операции. Очевидно, что это не самое эффективное использование компьютера.
Рис.1.4 Блок-схема регулирования температуры пластика
Алгоритм управления перемещением поршня показан на рис. 1.4. Компьютер выдает команду начать движение вправо, затем непрерывно контролирует информацию от датчика конечного положения до тех пор, пока не получит сигнал о том, что оно достигнуто. Затем начинается обратное движение поршня влево, при этом компьютер должен в цикле занятого ожидания ждать очередного импульса и суммировать их (счетчик импульсов обозначен п). Цикл считается завершенным при достижении заданного числа импульсов (переменная pulse_ref). Затем весь цикл повторяется сначала. Так же как и при регулировании температуры, компьютер не может выполнять других операций, пока он находится в цикле ожидания очередного импульса
Каждую из двух задач можно решить непосредственно с помощью последовательного кода. Но объединить их в одной программе непросто. Циклы взаимного ожидания использовать нельзя, так как управляемый процесс не позволяет длительных задержек, а исполнение одной задачи не должно быть связано с другой. В принципе, можно обойтись и без циклов ожидания. Однако программа при этом будет все время переключаться между двумя задачами и проверять, какая задача должна исполняться следующей, станет громоздкой и сложной для анализа. Попытка последовательного расположения блоков инструкций, исполнение которых фактически должно быть параллельным, порождает взаимосвязи между практически независимыми функциями
Рис.1.5 Блок-схема управления движением поршня пресса
Управление на основе прерываний
Главная сложность программы управления прессом — необходимость организации переключения между задачами. На практике проблема решается с помощью двух независимых программ, выполняемых на одной машине: одна — регулирует температуру, а другая — управляет перемещением поршня.
Метод сигнализации, называемый прерыванием, используется для переключения ЦП с исполнения одной задачи на другую. С помощью прерываний циклы ожидания можно заменить на ожидание прерывания
Фактически прерывание представляет собой внешний сигнал, извещающий ЦП о наступлении некоторого события. События отслеживаются датчиками и заставляют ЦП прервать исполнение текущей программы и перейти к другой. Таким образом, внешние сигналы могут влиять на исполнение того или иного программного модуля. Особый вид прерывания связан со временем. Электронный таймер выдает сигнал прерывания при наступлении определенного момента времени или по истечении некоторого интервала. Этот таймер не является частью ЦП, однако конструктивно располагается на той же плате. Он освобождает ЦП от необходимости контролировать время.
С использованием прерываний задача регулирования температуры решается проще. Прерывание по времени связано с переменной heat_time. После включения нагревателя программа устанавливает таймер на величину времени нагрева (значение переменной heatjtime) и ждет сигнала прерывания для продолжения работы (инструкция wait_time(heat_time) на рис. 2.5)
Рис.1.6 Использование прерываний от таймера для регулирования температуры
Аналогично, программа управления поршнем ожидает два прерывания: одно — от датчика крайнего правого положения, другое — от импульсного датчика, контролирующего перемещение поршня. Прерываниям соответствуют инструкции вида wait_interrupt(x), где х обозначает канал поступления сигнала прерывания. Оператор wait_interrupt приостанавливает исполнение программы, которое возобновляется только при поступлении соответствующего сигнала внешнего прерывания
Система прерываний обеспечивает переключение ЦП с исполнения одной программы на другую как следствие внешних событий. В результате решение задачи управления получается прозрачным и элегантным. Если каждый программный модуль является независимым, то добавить новые блоки к системе можно без нарушения существующей структуры