LinuxCNC Integrators Manual Глава I - Важные определения

Материал из cnc-club
Перейти к навигации Перейти к поиску


Вступительное слово

Эта статья содержит перевод LinuxCNC Integrators Manual от команды LinuxCNC.org

Оригинал книги находится здесь: http://linuxcnc.org/index.php/english/documentation

Если у Вас есть желание помочь в переводе, вы можете выбрать любую главу для перевода. Мы с удовольствием поможем ее оформить и разместить.Если Вы нашли неточности, можете смело их исправлять.

Лицензия

У Вас есть право на распространение и/или изменение этого документа в рамках GNU Free Documentation Licence версия 1.1 или любой другой более поздней версии опубликованной Free Software Foundation без неизменяемых разделов, без передней обложки и одной фразой на задней обложке "Это руководство по EMC продукт нескольких авторов пишущих для LinuxCNC.org. Если вы найдете его полезным в своей работе, мы приглашаем Вас внести свой вклад в его доработку и расширение." Копия этой лицензии включена в раздел озаглавленный "GNU Free Documentation License". Если вы не найдете лицензию, вы можете заказать копию в Free Software Foundation, Inc. По адресу 59 Temple Place, Suite 330 Boston, MA, 02111-1307.

Глава I. ВАЖНЫЕ ОПРЕДЕЛЕНИЯ

Системы с шаговыми двигателями

Base Period

BASE_PERIOD это "стук сердца" вашего компьютера с EMC. Каждый период программный генератор шагов решает, не пришло ли время для следующего импульса шага. Более короткий период позволит генерировать больше импульсов в секунду, в пределах разумного. Но если вы зайдете слишком далеко, ваш компьютер будет тратить слишком много времени генерируя импульсы шагов и все остальное будет буквально ползти или может даже заблокируется. Latency (латентность) и требования драйвера шагового двигателя влияют на кратчайший период который вы можете использовать.

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

Простейший способ избежать этих проблем - выбрать BASE_PERIOD который будет суммой самого длинного времени из требований драйвера и худшего значения latency вашего компьютера. Это не всегда лучшее решение, например, если вы работаете с двигателем с требованием 20мкс (микросекунд) времени удержания и ваш latency тест говорит, что ваша максимальная латентность 11мкс, тогда если вы установите BASE_PERIOD равным 20+11=31мкс и не такими уж хорошими 16 129 шагами в секунду.

Проблема в требовании 20мкс времени удержания. Это плюс 11мкс латентности заставляет вас использовать медленный 31мкс период. Но программный генератор шагов EMC2 имеет несколько параметров которые позволяют вам увеличить переменное время от одного периода до нескольких. Например, если steplen (длинна шага) изменена с 1 на 2, тогда будет два периода между началом и концом импульса шага. Также если dirhold (удержание сигнала направления) изменится с 1 до 3, будет как минимум три периода между импульсом шага и изменением пина направления.

Если мы сможем использовать dirhold для удовлетворения требования 20мкс, тогда следующее самое длинное время будет 4.5мкс. Добавим 11мкс латентности и получим минимальный период 15.5 мкс. Когда вы попробуете 15.5 мкс вы обнаружите, что компьютер неповоротливый, поэтому остановитесь на 16мкс. Если мы оставим dirhold на 1 (по умолчанию), тогда минимальное время между шагом и сменой направления будет 16мкс минус 11мкс латентности = 5мкс, которые недостаточны. Нам нужно еще 15 мкс. Так как период = 16мкс нам нужен еще один период. Поэтому меняем dirhold с 1 на 2. Теперь минимальное время с конца импульса шага до изменения пина направления равно 5+16=21мкс, и мы не должны беспокоится о том, что двигатель шагнет не в ту сторону из-за латентности.

Более подробно о stepgen смотрите в разделе 8.4.

Время шага

Время шага (Step Timing) и время между шагами (Step Space) на некоторых драйверах разное. В этом случае Точка шага становится важной. Если двигатель шагает на падающей фронте тогда выходной пин должен быть инвертирован.

Серво двигатели

Настройка

Серво системы должны быть отрегулированы, т.к. не так хорошо работают из коробки, как могли бы системы на шаговых двигателях. Это потому, что серводвигатели не "шагают" с определенным приращением как шаговые двигатели. PID это "Черная Магия" которая заставляет серводвигатель двигаться туда, куда вам хочется чтобы она двигалась и когда вам хочется чтобы она двигалась. PID расшифровывается как Proportional, Integral, and Derivative (Пропорциональная, Интегральная и Производная). Пропорциональное значение определяет реакцию на текущее отклонение, Интегральное значение задает реакцию основываясь на сумме недавних отклонений, а Производное значение определяет реакцию основываясь на скорости изменения отклонения. Они являются тремя общими математическими техниками которые применяются к решению задач сделать так чтобы работающий процесс следовал заданной точке. В случае EMC2 процесс который мы хотим контролировать это фактическое положение оси а заданная точка это положение оси заданное командой.

(Нужно вставить картинку...)

"Настраивая" эти три константы в алгоритме PID контроллера, контроллер сможет производить контрольные действия спроектированные для специфичных требований процесса. Ответ от контроллера может быть описан в терминах отзывчивости контроллера на ошибку, степени промаха контроллера мимо назначенной точки и степени колебания системы.

Пропорциональный член

Пропорциональный (иногда называется gain(усиление/прирост)) делает изменения выхода, которые пропорциональны текущему значению отклонения. Высокое пропорциональное усиление приводит к существенному изменению на выходе для данного изменения изменения отклонения. Если пропорциональное усиление слишком велико, система может стать нестабильной. И наоборот, маленькое усиление приводит к маленькому ответу на большое входное отклонение. Если пропорциональное усиление слишком мало, то контролирующее действие может быть слишком маленьким для реакции на возмущения системы. В отсутствие возмущений, чистое пропорциональное управление никогда не остановится на его целевом значении, он будет сохранять устойчивое состояние отклонения которое будет функцией зависящей от пропорционального усиления и усиления процесса. Несмотря на постоянное состояние отклонения, теория настройки и производственная практика указывают на то, что пропорциональный метод должен делать основной вклад в изменение вывода.

Интегральный член

Вклад интегрального метода (иногда называемого reset (восстановление)) пропорционален обоим величине отклонения и его продолжительности. Суммируя мгновенное отклонение за время (интегрируя отклонение) дает накопленный отступ который должен был быть исправлен ранее. Накопленное смещение умножается на коэффициент усиления и добавляется на выход контроллера. Интегральный член (будучи добавленным к пропорциональному) ускоряет движение процесса в сторону заданной точки и устраняет остаточные стационарные погрешности которые возникают при только пропорциональном управлении. Однако, так как интегральный метод отвечает на накопленную ошибку из прошлого, он может вызывать промахи текущего значения мимо заданной точки (прохождение мимо заданной точки и последующее создание отклонения в обратную сторону).

Дифференциальный член

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

Настройка цикла

Если параметры PID контроллера (усиления пропорционального, интегрального и производного членов) выбраны некорректно, вход контролируемого процесса может быть не стабильным, т.е. его выход будет расходиться, с или без колебаний, и будет ограничен только поглощением или механической поломкой. Настройка цикла контроллера является подгонкой параметров до оптимальных значений для желаемой реакции контроллера.

Ручная настройка

Простой метод настройки: сначала устанавливаем значения I и D (интегральный и дифференциальный члены) равные 0. Увеличиваем P до тех пор пока цикл не начнет колебаться, затем P должен быть установлен равным приблизительно половине значения для отклика с "четверть амплитудным распадом". Затем увеличивайте I до тех пор, пока любое смещение не корректируется за адекватное время для процесса. Однако, слишком большое I будет вызывать нестабильность. В конце увеличиваем D, если это необходимо, до тех пор пока цикл не будет приемлемо быстро достигать своего эталона после больших возмущений. Однако, слишком большой D будет вызывать чрезмерную реакцию и промахи. Быстрый PID цикл обычно слегка проскакивает заданную точку, чтобы достичь ее быстрее; однако, некоторые системы не допускают промахов, в этих случаях требуется "переторможенный" цикл, для которого необходима установка заметно более низкого P, меньше чем половина значения, которое вызывает колебания.

RTAI

Real Time Application Interface (RTAI, интерфейс для приложений рельного времени) используется для предоставления лучшей производительности в реальном времени. Измененное RTAI ядро позволяет вам писать приложения с точными временными рамками. RTAI дает возможность иметь вещи такие как программная генерация шагов, которые требуют точного тайминга.

ACPI

Advanced Configuration and Power Interface (ACPI, усовершенствованный интерфейс конфигурации и управления питанием) имеет много разных функций, большинство из которых влияют на RT производительность (например, управление питанием, понижение питания процессора, изменение частоты процессора, и т.д.). В ядре EMC2 (и возможно во всех модифицированных RTAI ядрах) поддержка ACPI выключена. ACPI также заботится о выключении питания системы после ее выключения (shutdown), вот почему вам нужно нажимать клавишу питания для полного выключения компьютера.


Оглавление книги LinuxCNC Integrators Manual

Глава Название
Глава 1 LinuxCNC Integrators Manual Глава I - Важные определения
Глава 2 LinuxCNC Integrators Manual Глава II - Аппаратное обеспечение (Hardware)
Глава 3 LinuxCNC Integrators Manual Глава III - Конфигурационные файлы
Глава 4 Доделать! LinuxCNC Integrators Manual Глава IV - Файл INI
Глава 5 Доделать! LinuxCNC Integrators Manual Глава V - LinuxCNC и HAL
Глава 6 Доделать! LinuxCNC Integrators Manual Глава VI - Основы HAL
Глава 7 Доделать! LinuxCNC Integrators Manual Глава VII - Настройка шаговых двигателей
Глава 8 Доделать! LinuxCNC Integrators Manual Глава VIII - Компонетны HAL
Глава 9 Забыли перевести! LinuxCNC Integrators Manual Глава IX - Параллельный порт
Глава 10 Доделать! LinuxCNC Integrators Manual Глава X - Пользовательский интерфейс HAL (Halui)
Глава 11 Доделать! LinuxCNC Integrators Manual Глава XI - Примеры HAL
Глава 12 Доделать! LinuxCNC Integrators Manual Глава XII - Virtual Control Panel - Виртуальная панель управления