Мехатронная система для изготовления печатных плат

Описание технологии изготовления платы управления станком. Выбор двигателя и энергетический расчёт. Построение модулей драйвера и управления, а также разработка управляющих программ. Анализ особенностей конструкции платы управления мехатронной системой.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык русский
Дата добавления 01.10.2017
Размер файла 5,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

2.6 Резонанс ШД и борьба с ним

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

Итак определим частоты, на которых ШД ведёт себя неустойчиво. Для этого используем ранее полученную модель ШД (Steping motor) и подадим на одну из его обмоток постоянный номинальный ток, а на другую синусоидальный источник тока с плавно меняющейся частотой и амплитудой равной также номинальному току.

Прогонять сигнал через драйвер нецелесообразно, поскольку потребуется очень много времени на вычисления. К примеру: 0.01 секунда симуляции всей модели требует 10 секунд машинного времени (процессор Intel Core 2 Duo P750). А для прохождения частотного диапазона потребует 20 секунд симуляции модели и в 1000 раз больше машинного времени. Это 5 часов работы компьютера. Поэтому модель драйвера не используем. Но напряжение следует оставить прежним 24 вольта. Для стабилизации тока используем добавочное сопротивление. Нужно увеличить его сопротивление до такого уровня, чтобы ток не поднимался выше номинального:

[Ом] добавочное сопротивление(21)

Рис 2.6.1

Блок с названием Chirp Signal, он подаёт сигнал с амплитудой равной 1 и частотой, которая линейно увеличивается с 0 до 200 Гц в течение 20 сек. Блок Gain2 переводит размерность [рад] в шаги, где каждый шаг равен 1.8 градуса (смотрите паспорт ШД). Запустим симуляцию:

Рис 2.6.2

Этот график как никак лучше отображает каким образом резонанс может повлиять на устойчивость двигателя. На низких частотах всё происходит так как задумано (частоты до 15 Гц) двигатель колеблется от 0.5 шага до -0.5 не выходя за рамки этих частот. Смотрите рисунок рис 2.3.3 чтобы свериться с теорией. Далее скорость ротора увеличивается и инерция системы даёт о себе знать: ротор словно раскачивается, выходит за пределы дозволенной амплитуды. Затем амплитуда несколько снижается (частоты около 40 Гц), из-за силы трения. Но дальше и она не может воспрепятствовать увеличению амплитуды. Как только амплитуда превышает 1.5 шага, сила, возвращяющая ротор к нулевому положению начинает действовать в противоположном направлении и ротор продолжает вращаться, превышая 1 оборот. Далее он ведёт себя непредсказуемо. Здесь нет отдельно взятой резонансной частоты, здесь целая область частот с неустойчивой работой двигателя, а именно частоты от 58 до 120 Гц. Как только мы выходим за область неустойчивости, ротор может оказаться где угодно - нередко на 20-40 шагов от начального положения. На рис. 2.5.8 выбран вариант когда ротор вернулся в нулевое положение - это большое везение.

Итак, какой способ следует выбрать для борьбы с резонансом. Способы:

1. применение эластичных материалов при выполнении механических муфт связи с нагрузкой. Эластичный материал способствует поглощению энергии в резонансной системе, что приводит к затуханию паразитных колебаний.

2. применение вязкого трения. Выпускаются специальные демпферы, где внутри полого цилиндра, заполненного вязкой кремнийорганической смазкой, может вращаться металлический диск. При вращении этой системы с ускорением диск испытывает вязкое трение, что эффективно демпфирует систему.

3. электрические методы борьбы с резонансом. Колеблющийся ротор приводит к возникновению в обмотках статора ЭДС. Если закоротить обмотки, которые на данном шаге не используются, это приведет к демпфированию резонанса.

4. существуют методы борьбы с резонансом на уровне алгоритма работы драйвера. Например, можно использовать тот факт, что при работе с двумя включенными фазами резонансная частота примерно на 20% выше, чем с одной включенной фазой. Если резонансная частота точно известна, то ее можно проходить, меняя режим работы.

5. при старте и остановке нужно использовать частоты выше резонансной. Увеличение момента инерции системы ротор-нагрузка уменьшает резонансную частоту.

6. самой эффективной мерой для борьбы с резонансом является применение микрошагового режима.

Все способы связанные с конструктивными доработками системы нам не подходят, поскольку это увеличит сложность системы, а следовательно её надёжность. Будем бороться с резонансом программными методами. Например использование микрошагового режима. Нам в любом случае придётся вводить этот режим, чтобы увеличить точность системы. Таким образом убьём 2-х зайцем одним ударом.

Когда используется не микрошаговый режим, основной причиной появления колебаний является прерывистое вращение ротора. При осуществлении шага ротору толчком сообщается некоторая энергия. Этот толчок возбуждает колебания. Энергия, которая сообщается ротору в полушаговом режиме, составляет около 30% от энергии полного шага. Поэтому в полушаговом режиме амплитуда колебаний существенно меньше. В микрошаговом режиме с шагом 1/32 основного при каждом микрошаге сообщается всего около 0.1% от энергии полного шага. Поэтому в микрошаговом режиме явление резонанса практически незаметно.

Сразу можно привести пример, подтверждающий эффективность использования резонанса, на нашей модели:

Рис 2.6.3 (полношаговый режим)

Рис 2.6.4 (деление шага на 2)

Рис 2.6.5 (деление шага на 4)

Здесь используются следующие настройки: частота f=15 Гц и деление шага k от 1 до 3. На рис 2.6.3-2.6.5 изображены графики требуемых углов поворота (задаётся микроконтроллером) и получаемых в результате углов поворота на выходе из модели ШД. Видно что ошибка довольно сильно уменьшается с каждым делением шага. Для получения этих графиков использовалась модель на рис 2.6.3 (сохранена в файле steping_motors_v8_1_1). Для анализа резонанса будем очень часто обращяться к этой заготовке. Модель отличается от модели на рис 2.6.1 добавлением микроконтроллера, осцилографа для измерения ошибки по углу (единица измерения шаг) с соответствующей цепью и добавлением к осцилографу для измерения угла мультиплексированной шины с требуемым угом от микроконтроллера (для удобного сравнения как на рис 2.6.3-рис 2.6.5).

Рис 2.6.3

Для наиболее полного анализа резонанса проведём следующие измерения (с помощью модели, изображённой на рис 2.6.3). Требуется построить график зависимости частоты подаваемого сигнала с микроконтроллера от максимальной ошибки по углу положения ротора. Причём получить эту зависимость для каждого режима: полношагового, с делением шага на 2, с делением шага на 4, и если потребуется на 8. Следует заметить тот факт, что автоматизировать процесс нельзя, потому что в некоторых случаях из-за резонанса двигатель теряет устойчивость и пропускает шаги в некоторых случаях на сотни шагов. Кроме того в начале работы ШД стоит на месте, ему нужно набрать скорость, при этом ошибка также ведёт себя каждый раз по разному. Приходиться вручную задавать частоту, моделировать процесс (что занимает в среднем около 10 сек.) и смотреть ошибку на выходе системы, и так точку за точкой записывать в таблицу эксель (смотрите Таблицу 2.6.1). В графической форме эти данные представлены на листе А1, поскольку здесь не было бы видно деталей.

Таблица 2.6.1

полношаговый режим

деление шага на 2

деление шага на 4

частота [Гц]

ошибка [шаг]

частота [Гц]

ошибка [шаг]

частота [Гц]

ошибка [шаг]

1

0,900

1

0,500

1

0,250

2

0,900

2

0,500

2

0,300

5

0,900

5

0,410

5

0,250

10

1,100

10

0,440

7

0,170

15

1,150

15

0,950

8

0,500

16

1,100

17

0,450

9

0,170

17

0,650

20

0,330

10

0,160

20

0,900

25

0,590

11

0,230

25

1,000

30

0,280

15

0,145

30

1,300

35

0,310

20

0,195

35

1,000

38

0,350

21

0,280

37

0,510

39

0,380

22

0,930

38

0,550

40

2,000

23

0,800

39

2,000

41

1,200

24

0,660

44

2,000

45

1,000

25

0,530

45

2,000

50

0,770

26

0,420

46

2,000

55

0,540

30

0,215

47

2,000

60

0,400

40

0,135

48

1,100

70

0,300

50

0,135

49

0,950

80

0,270

75

0,148

50

0,900

90

0,260

100

0,159

51

0,850

100

0,270

120

0,167

52

0,750

120

0,280

150

0,180

55

0,720

150

0,300

200

0,198

60

0,720

180

0,310

250

0,217

65

0,550

200

0,320

300

0,235

66

0,520

250

0,340

400

0,273

67

2,000

300

0,360

500

0,310

68

2,000

400

0,400

700

0,381

69

2,000

500

0,435

737

0,394

70

2,000

700

0,505

738

2,000

75

2,000

726

0,515

80

2,000

727

2,000

90

2,000

95

2,000

98

2,000

99

2,000

100

2,000

105

2,000

110

2,000

111

2,000

112

2,000

113

2,000

114

2,000

115

2,000

116

1,400

120

1,200

130

0,630

140

0,570

150

0,550

200

0,550

250

0,560

300

0,590

400

0,640

500

0,680

600

0,720

679

0,750

680

2,000

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

Результаты измерений частотного анализа для различных режимов:

1. Полношаговый режим: потеря устойчивости на частотах 39-47 Гц и 67-115 Гц (2 области неустойчивасти). Самая высокая точность на частотах, после резонанса 0,55 шага. Максимальная частота вращения без плавного разгона 679 шагов в секунду.

2. Полушаговый режим: потеря устойчивости на частоте 40 Гц. Самая высокая точность на частотах, после резонанса 0,26 шага. Максимальная частота вращения без плавного разгона 727 шагов в секунду.

3. Полушаговый режим: потеря устойчивости отсутствует, есть пик с ошибкой 0,93шага на частоте 22 Гц. Самая высокая точность на частотах, после резонанса 0,14 шага. Максимальная частота вращения без плавного разгона 738 шагов в секунду.

Выводы (по резонансу в ШД):

При работе двигателя с номинальными токам наблюдается потеря устойчивости из-за резонанса на широкой полосе частот (39-47 Гц и 67-115 Гц). Для борьбы с резонансом был выбран метод: использование микрошагового режима, по следующим причинам:

1. Метод считается наиболее эффективным в решении проблемы резонанса в ШД.

2. При дроблении шага одновременно получаем более точное позиционирование ротора - что увеличивает точность системы.

3. Не требуется вносить каких-либо конструктивных изменений.

Анализ показал, что в ј-шаговом режиме исчезает зона неустойчивости, влияние резонанса сильно уменьшилось, по сравнению с полношаговым режимом. Но наблюдается потеря точности на частоте 22-24 Гц, поэтому следует избегать подачу управляющего сигнала на ШД с этой частой.

Примечание: для ускорения вычислений к обмоткам был подключён добавочный резистор, чтобы стабилизировать ток в обмотках без использования ШИМ. Поэтому требуется дополнительно провести анализ динамики изменения тока в обмотках.

2.7 Форсирование тока в обмотках

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

Рис. 2.7.1. Форма тока в обмотках двигателя на разных скоростях работы.

Для того, чтобы момент падал как можно меньше, необходимо обеспечить высокую скорость нарастания тока в обмотках двигателя, что достигается различными методами при использовании ШИМ:

1. Подключение добавочного сопротивления к обмоткам. При этом нужно увеличивать максимальный уровень ШИМа. При полном увеличении добавочного сопротивления до уровня ШИМ равным 100% источник напряжения практически превращается в источник тока и скорость изменения тока в обмотках значительно увеличивается, ценой падения КПД.

2. Программные методы. Эти методы предполагаю сохранение КПД, а вся корректировка управляющего сигнала находиться в микроконтроллере. Здесь возможны 2 подметода:

2.1 Проводиться синтез корректирующего устройства, которое в дискретной форме вноситься в микроконтроллер.

2.2 Импульсное форсирование. В начале каждого шага подаётся 100% - шим того или иного знака, иначе говоря импульс напряжения (в дальнейшем будем называть его форсирующий импульс), который приводит к быстрому изменению тока.

Следует рассмотреть все эти методы, чтобы выявить наилучший.

Для полноценного анализа создадим модель, которая будет иметь обмотку со всеми её параметрами, и логической схемой которая будет выводить время, когда ток достигнет уровня Inom с 5%-й погрешностью. Данную модель вы можете посмотреть в файле steping_motors_v8_p, сохраненный на диске:

Рис. 2.7.2

Желаемый результат.

Какое время нарастания мы будем считать приемлемым. По проведённому ранее анализу было решено использовать режим микрошага с делением шага 1/4 . (Далее 1/4-шаговый режим). Требуемая скорость по техническому заданию 70 мм/сек. С запасом возьмём 75 мм/сек. Переведём в шаги за секунду (из расчёта того что один шаг соответствует 0.236мм): получаем 75/0.236 = 318 шагов в секунду. Следовательно частота изменений тока в процессе работы будет в 4 раза больше: 318*4 = 1272 импульсов в секунду. Период изменения тока 1/1272 = 786 мкс. Это минимальное время, за которое ток должен достичь требуемого уровня (с некоторой погрешностью разумеется), потому что в противном случае момент ШД начнёт сильно снижаться. На практике даже уложиться в это время недостаточно, нужно в несколько раз быстрее делать спад/нарастание тока. Поэтому формируется следующее требование к скорости измения тока: чем быстрее тем лучше, но не менее 780 мкс.

Время нарастания без коррекции.

На вход обмотки подаём ШИМ с такой скважностью (Kd), чтобы получить установившееся значение тока 2.8 ампер:

Рис. 2.7.3

В результате получаем время возрастания тока 7121 мкс. Что крайне неудовлетворительно, применительно к тем требованиям, которые были сформулированы ранее.

Рис. 2.7.4.

Необходима коррекция, для увеличения скорости изменения тока в обмотке.

Использование добавочного сопротивления.

Посмотрим, каких результатов можно добиться подключив добавочное сопротивление. Возьмём крайний случай, использовав максимальное значение сопротивления для номинального тока. Оно вычисляется по формуле (21) и было получено во время исследования резонанса (7.67 Ом). Кроме того само это исследование базировалось на этом методе форсирования токов добавочным сопротивлением.

Рис. 2.7.5.

Схема заметно упростилась, потому что уровень ШИМа равен 100%, и поэтому драйвер не нужен вовсе. Время нарастания составляет теперь 870 мкс, что на порядок больше прошлого результата, но не подходит по требованиям к системе. На графике масштабирование шкалы времени осталось прежним, чтобы можно было сравнить с Рис. 2.7.4.

Рис. 2.7.6.

Следует заметить, что метод весьма неэкономичен. Поскольку на каждом двигателе находиться по 2 резистора с сопротивлением 7,67 Ома. И по каждому течёт ток 2.8 ампера. Следовательно тепловые потери на резисторах огромны: 2*7,67*2.8*2.8 = 120 Вт. Это сравнимо с мощным паяльником или среднестатистическим феном для волос. Причём данная мощность выделяется при питании одного двигателя, который сам потребляет около 60 Вт.

Корректирующие устройство в форме передаточной функции.

Требуется провести синтез системы, с целью добиться быстродействия. В начале построим ЛАЧХ неизменяемой части, то есть обмотки. У неё передаточная функция:

Для построения ЛАЧХ делаем входы и выходы из передаточной функции:

Далее заходим в меню Tools -> Control Design -> Linear Analysis… и производим линеаризацию модели:

Рис. 2.7.7.

Здесь нужно поднять амплитуду на средних частотах, когда отставание по фазе составляет 45 градусов. Для этого была подобрана следующая передаточная функция корректирующего устройства:

Руководствуясь данными из Рис 2.7.7 взяты приближённые коэффициенты, а затем, методом подбора они были уточнены.

Рис. 2.7.7.

Здесь время возрастания тока почти такое же как при использовании добавочного сопротивления 810 мкс. Чего по прежнему недостаточно. Далее приведены временные графики возрастания тока, и управляющие сигналы, что даёт наглядное представление того, как работает корректирующие устройство:

Рис. 2.7.8.

Корректирующее устройство проще всего реализовать в микроконтроллере. Кроме того цифровая или дискретная коррекция весьма интересна с практической точки зрения в силу конструктивной универсальности устройств и гибкости настройки. Чтобы перейти от непрерывной ПФ корректирующего устройства Wк(s) к эквивалентной дискретной Wк(z) необходимо сделать замену:

где: Tц - период выполнения программы касательно корректирующего устройства.

В результате получим следующую передаточную функцию:

(22)

Чтобы зашить эту функцию в микроконтроллере, нужно реализовать в нём следующий алгоритм (Рис 2.7.9), выполнение которого займёт около 50-ти тактов работы микроконтроллера.

Рис. 2.7.9.

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

Использование форсирующего импульса.

В начале каждого шага подаётся 100% - шим того или иного знака, иначе говоря форсирующий импульс, который приводит к быстрому изменению тока. Здесь важно точно рассчитать длительность этого импульса, потому что, если он превысит допустимые пределы ток может вырасти выше номинального в несколько раз, что приведёт к перегоранию обмоток.

Выведем формулу для расчета длительности форсирующего импульса от напряжения питания (U = 24 в) и от тока, который следует получить в результате. В самом общем случае, это не ток, а разность токов между нынешним и будущим током после воздействия импульса. Поэтому обозначим его dI, чтобы подчеркнуть что эта переменная может использоваться как разница токов.

Начнём вывод с общеизвестной функции тока от времени в катушке индуктивности при подключении к источнику напряжения:

(23)

Далее выводим из формулы время t:

(24)

Вносим полученную формулу и m-файл и реализуем метод на математической модели.

Tf = L*log(U/(U-Inom*(Rd+r)))/(Rd+r)

%время форсирующего импульса [с]

Рис. 2.7.9.

В модели на Рис. 2.7.9 блок FORS формирует форсирующий импульс, требуемой длины. И далее этот сигнал поступает на драйвер. Результаты полученные в результате моделирования:

Рис. 2.7.10.

Здесь сигнал, который называется - управляющий сигнал на выходе корректирующего устройства назван так, потому что формирователь форсирующего звена по сути и есть корректирующее звено. Оно может находиться в микроконтроллере в виде затабулированной таблицы. В ней указанны длительности форсирующих импульсов для каждого такта. В результате (см. Рис 2.7.10.) Получаем время нарастания тока 296 мкс, что более чем в 2 раза выше требуемой величины и в несколько раз превышает раннее полученные результаты.

В этой главе было проделано большое количество анализов для различный методов форсирования токов, подведём итоги:

Выводы по выбору способов форсирования токов.

Осветим численные результаты для различных методов. В качестве тестовой задачи требуется увеличить ток в обмотке ШД с нуля до Inom = 2.8 А, имея в наличии источник напряжения 24 в.

1. Без коррекции. Время нарастания тока: 7121 мкс.

2. С использованием добавочного сопротивления. Время нарастания тока: 870 мкс. Недостатком метода являются большие тепловые потери: 120 Вт для одного двигателя.

3. С использованием корректирующего устройства в виде передаточной функции. Время нарастания тока: 810 мкс. Недостатки метода: высокая загруженность микроконтроллера.

4. С использованием форсирующего импульса напряжения. Время нарастания тока: 296 мкс. Явных недостатков нет.

Из предложенных методов только последний показал удовлетворительные результаты: время нарастания 296 мкс. по сравнению с требуемым значением 780 мкс.

Реализация метода форсирующих импульсов в микрошаге (MATLAB).

В микрошаговом режиме существуют переходы между уровнями токов, но они меньше чем в полношаговом режиме. Например для выбранного ј-шагового режима самый большой переход равен 0.39*Inom. Поэтому и форсирующие импульсы будут заметно меньше. Микроконтроллер способен очень быстро извлекать данные из стека (около 2 МГц), поэтому длительность импульсов можно задать с точностью 0.5 мкс.

Для каждого такта (а их 16) требуется вычислить длительность импульса. Если это делать в MATLAB потребуется 2 матрицы:

1. Ms(16,4) - амлитудные точки: для каждого такта их 4.

2. Mt(16,4) - временные точки: для каждого такта их также 4.

Освещаем алгоритм вычисления точек:

Ms=ones(16,4);

Mt=ones(16,4);

for i=1:16

Ms(i,1)=1;

Ms(i,2)=1;

Ms(i,3)=Kd*sin((i-1)*pi/8);

Ms(i,4)=Kd*sin((i-1)*pi/8);

if i>1

if Ms(i,3)>Ms(i-1,3)

Ms(i,1)=1;

Ms(i,2)=1;

else

Ms(i,1)=-1;

Ms(i,2)=-1;

end;

else

Ms(i,1)=1;

Ms(i,2)=1;

end;

t1=L*log(1/(1-(sin((i-2)*pi/8)-sin((i-1)*pi/8))*Kd))/(Rd+r)

t1=abs(t1);

Mt(i,1)=(i-1)*Tt+Tvt;

Mt(i,2)=(i-1)*Tt+t1;

Mt(i,3)=(i-1)*Tt+t1+Tvt;

Mt(i,4)=i*Tt;

end;

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

Таблица: “точки для форсирующих импульсов”

Ms =

1.0000 1.0000 0 0

1.0000 1.0000 0.0491 0.0491

1.0000 1.0000 0.0907 0.0907

1.0000 1.0000 0.1186 0.1186

1.0000 1.0000 0.1283 0.1283

-1.0000 -1.0000 0.1186 0.1186

-1.0000 -1.0000 0.0907 0.0907

-1.0000 -1.0000 0.0491 0.0491

-1.0000 -1.0000 0.0000 0.0000

-1.0000 -1.0000 -0.0491 -0.0491

-1.0000 -1.0000 -0.0907 -0.0907

-1.0000 -1.0000 -0.1186 -0.1186

-1.0000 -1.0000 -0.1283 -0.1283

1.0000 1.0000 -0.1186 -0.1186

1.0000 1.0000 -0.0907 -0.0907

1.0000 1.0000 -0.0491 -0.0491

Mt =

0.0000 0.0001 0.0001 0.0042

0.0042 0.0043 0.0043 0.0083

0.0083 0.0084 0.0084 0.0125

0.0125 0.0126 0.0126 0.0167

0.0167 0.0167 0.0167 0.0208

0.0208 0.0209 0.0209 0.0250

0.0250 0.0251 0.0251 0.0292

0.0292 0.0293 0.0293 0.0333

0.0333 0.0334 0.0334 0.0375

0.0375 0.0376 0.0376 0.0417

0.0417 0.0418 0.0418 0.0458

0.0458 0.0459 0.0459 0.0500

0.0500 0.0500 0.0500 0.0542

0.0542 0.0542 0.0542 0.0583

0.0583 0.0584 0.0584 0.0625

0.0625 0.0626 0.0626 0.0667

В MATLAB используем блок Repeating Sequence Interpolated1. В нем есть специальные поля для массивов имплитудных и отдельно для временных точек. Заносим туда данные из выше выведенной таблицы, и получаем:

Рис. 2.7.11.

Это управляющий сигнал для обмотки A, аналогичным образом строиться сигнал для обмотки B с той разницей что он сдвинут по фазе на 90 градусов. Теперь блок микроконтроллера пополнился корректирующим устройством:

Рис. 2.7.12.

Для анализа данных будем использовать общую модель всей системы, где задействованные все устройства:

Рис. 2.7.12.

Сейчас нас интересуют следующие осциллографы: control signal (управляющие сигналы), pwm signal (сигнал ШИМ-а с драйвера) и current (ток в обмотках).

Требуемая скорость по техническому заданию составляет 70 мм/сек, что в переводе примерно равно 300 шагам в секунду. Сравним графики токов с форсированием и без него, на этой скорости. (см. на чертеже). Видно что без форсирования ток отстаёт по фазе на примерно 30 градусов, при этом ошибка может составлять до 50% от требуемой величины. С применением форсирующего импульса ошибка не превышает 5% - что вполне допустимо.

2.8 Выводы к исследовательской части

Обратимся к одноимённому листу А1, где изображены графики отклонений положения ротора по углу и по линейному перемещению. Замер произведён на довольно продолжительном участке времени 0.2 сек, чтобы оценить устоявшуюся ошибку. Фаза разгона не применяется, для оценки возможностей системы. Ротор набирает требуемую скорость вращения буквально за 100 мс, при этом ошибка по углу заметно выше той, которая наблюдается при равномерном вращении ротора. Поочерёдно был сделан замер при полношаговом режиме работы ШД, микрошаговом и микрошаговом с коррекцией. Результаты:

1. Полношаговый режим без коррекции: ошибка при постоянной скорости вращения составляет 0.26 мм. Что не удовлетворяет требованиям к системе.

2. Микрошаговый режим (дробление шага 1/4) без коррекции: ошибка при постоянной скорости вращения составляет 0.118 мм. Что не удовлетворяет требованиям к системе. Тем не менее удалось избавиться от зоны неустойчивости на низких частотах.

3. Микрошаговый режим (дробление шага 1/4) с коррекцией: ошибка при постоянной скорости вращения составляет 0.045 мм. Что удовлетворяет требованиям к системе (точность линейного перемещения 0.1 мм на скорости 70 мм/сек.). В качестве коррекции использовалась: форсирование тока кратковременными импульсами расчётной длительности.

Таким образом благодаря совместному использованию микрошага и форсирования токов в обмотках удалось избавиться от резонанса и повысить точность до требуемой величины.

3. Конструкторская часть

3.1 Построение модуля драйвера

Требуется менять полярность на обмотках двигателя, и управлять током посредством ШИМ. Для это необходим Н-мост и логика управления. Как вариант можно использовать отдельные силовые ключи и драйвера для их управления. Но схема получится очень сложной, появится множество ошибок при пайке. Поэтому я остановился на интеллектуальном мосте IR3220 компании International Rectifier. Также я рассматривал ещё несколько вариантов такого рода микросхем, но этот драйвер опережает их по всем параметрам. Следует заметить, что данный драйвер предназначен для управления двигателем постоянного тока, но 2 таких драйвера вполне способный полноценно управлять шаговым двигателем (то есть 2-мя обмотками), для этого следует написать соответствующую программу на микроконтроллере.

Для работы моста используется микросхема IR3220 (с 2-мя ключами верхнего уровня и логикой управления) и 2 транзистора-компаньона (транзисторы нижнего уровня) IRF7474.

Основные параметры из документации:

Рис 3.1. Особенность архитектуры:

Блок-схема IR3220 имеет следующие особенности:

каждая ветвь («стойка» Н-мос-та) независима от другой и имеет собственные схемы защиты;

входные сигналы (IN1 и IN2) являются логическими;

входные сигналы управляют коммутацией таким образом, чтобы исключить одновременное замыкание ключей верхнего и нижнего уровня одной ветви;

управление Н-мостом осуществляется с помощью формирователя ШИМ, сигналы которого поступают на драйверы обоих ключей нижнего уровня без учета того, которая из ветвей Н-моста активирована;

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

Реализация указанных принципов обеспечивает надежность ИС без применения каких-либо внешних логических схем управления Н-мостом, а также расширяет ее функциональные возможности.

Рис 3.2

Ключи верхнего уровня относятся к семейству интеллектуальных силовых ключей (intelligence power switches). Они имеют защиту отключающего типа при перегрузке по току, защиту от перегрева и ограничение напряжения между стоком и истоком (active clamp). Вне зависимости от того, какая ветвь Н-моста активна, оба ключа верхнего уровня участвуют в рассеивании энергии в течение периода ШИМ-сигнала. Тепловая защита инициирует отключение, как только температура перехода любого из верхних ключей превысит установленный порог, независимо от того, которая ветвь является активной.

Схема включения которая предлагается из документации (рис 15)

Рис 3.3

Здесь все резисторы имеющие сопротивление 10 кОм будут заменены на 500 Ом, потому что входы у микросхемы имеют достаточно большое сопротивление. Для защиты от замыканий достаточно, резисторов на 500 Ом, и схема будет меньше подвержена помехам. Вход DG нужен для того чтобы указать драйверу значение 5-ти вольт, а не для питания. Резисторы на 56 Ом нужны для того чтобы сберечь затворы транзисторов от скачков тока. Конденсаторы на 22 мкФ - электролитический - для избавления от скачков тока и керамический на 0.1 мкФ для быстродействия.

В состав микросхемы входит блок, формирующий ШИМ-сигнал. Он состоит из генератора напряжения пилообразной формы с частотой около 20 кГц и компаратора напряжения. Пилообразный сигнал сравнивается с напряжением на выводе SS, в результате чего формируется ШИМ-сигнал, который поступает на ключи нижнего уровня. Пилообразный сигнал изменяется в пределах 1...4 В, а коэффициент заполнения1 ШИМ-сигнала (K3) -- пропорционально напряжению Vss, от 0 (Vss < 1 В) до 100% (Vss > 4 В).

Общая схема подключения к микроконтроллеру:

Рис 3.4

Вместо DC Motor у нас обмотка шагового двигателя. Получается для управления этим драйвером нужно 3 ножки контроллера: 2 (In1 и In2) логических для задания направления и остановки, 1 аналоговый (ss) для задания уровня ШИМ в драйвере. См. режимы работы моста:

Рис 3.5

Обоснование выбора резисторов для схемы драйвера.

Смотрите одноименный чертёж принципиальной схемы драйвера. На сигнальных цепях конденсаторы и резисторы используются в корпусах 0402, поскольку занимают минимум места на печатной платы, и имеют относительно высокую допустимую мощность рассеиваемого тепла 0,062 Вт. Рассмотрим все компоненты схемы, и то по каким причинами были выбраны их номиналы:

1. Резисторы R1-R4, по 56 Ом, в корпусе 0402, 0,062 Вт. Номинальное сопротивление строго из документации, для того чтобы сберечь затворы транзисторов от скачков тока.

2. Резисторы R6, R8, по 6,2 кОм, в корпусе 0402, 0,062 Вт. Эти резисторы подключаются к входу драйвера DG. Поскольку используется 2 драйвера, значит используем вдвое меньший номинал, по отношению к тому что рекомендуется в документации, чтобы сохранить помехоустойчивость.

3. Резисторы R5, R7, R9, R10 по 270 кОм, в корпусе 0402, 0,062 Вт. Ставятся перед логическими входами драйвера. Поскольку эти входы имеют большое входное сопротивления (порядка 1 мегаома) значение номинала не слишком критично. Выбирается оно из соображения безопасности, если провода сомкнуться, резисторы могут быть выбраны из интервала от 500 до 200 Ом.

4. Резисторы перед входами SS драйвера (эти входы имеют также высокое входное сопротивление) не ставятся, для увеличения быстродействия, поскольку на них подаётся ШИМ от микроконтроллера с частотой 20 кГц.

5. Конденсатор С1, электролитический 47 мкФ, 63в. Ёмкость выбирается в 2 раза выше рекомендуемого, поскольку используется 2 драйвера. Напряжение взято с 2-хкратным запасом в случае перепадов напряжения.

6. Конденсатор С2, керамический 1 мкф, 50 в. Минимальный корпус для такого конденсатора в чип исполнении: 1206. Взят с ёмкостью, в 10 раз превышающую рекомендуемую в документации, на тот случай, если нужно будет увеличивать частоту ШИМ.

Гнездо для платы выбрано стандартного числа жил для данной системы (10 штук). Исполнения: гнездо на плату выбрано из соображения низкой цены и надёжности.

Клеммник 305-021-12 современное решение для силовой электроники. Надёжное закрепление единичных проводников толщины от 0.5 мм до 2.0 мм.

Разводка платы драйвера.

Разводку будем осуществлять в программе Sprint-Layout 5.0 поскольку, этот программный продукт открыт для свободного скачивания (бесплатная). К тому же у неё приятный интерфейс, и богатая библиотека современных электронных компонентов. Единственным недостатком можно считать отсутствие автотарасировки, поэтому разводку платы придётся осуществлять вручную.

Выбираем сетку 1.27 мм, шаг между выводами у драйвера IR3220 и у транзисторов. Толщина сигнальных дорожек: 0.5 мм. Это оптимальный вариант для данного типа сетки. Толщина силовых дорожек, здесь уместно произвести расчёт в самой трассировочной программе. При клике на дорожке, она выдаёт ток, который она может выдержать. Возьмём номинальный ток 7 ампер по паспарту драйвера, для неё толщина дорожки окажется равной 2,13 мм, что вполне приемленно.

В качестве крепления сделаем 2 отверстия для болтов диаметром 3 мм. Распределим также компоненты так, чтобы управляющие сигналы подходили к плате с одной стороны, а клеммы были на другой стороне, а на плате сигнальные и силовые дорожки были как можно дальше друг от друга.

Входы платы драйвера для управления драйверами:

1. D1P1 - вход P1, 1-го драйвера.

2. D2P1 - вход P1, 2-го драйвера.

3. D1P2 - вход P2, 1-го драйвера.

4. D2P2 - вход P2, 2-го драйвера.

5. D1Ps - вход ss, 1-го драйвера (сюда подаётся ШИМ с МК).

6. D2Ps - вход ss, 2-го драйвера (сюда подаётся ШИМ с МК).

7. +5v - вход DG обоих драйверов.

8. GND - логическая земля обоих драйверов.

Рис 3.6

На рис 3.6 изображён выбранный порядок расположения этих проводников. Поскольку все линии для передачи сигналов между схемами в системе выбраны десятижильными, следовательно получилось 3 провода GND. Эти заземлённые провода ставятся рядом с линиями, по которым передаётся сигнал ШИМ, и подальше от логических информационных линий, чтобы снизить их взаимное электромагнитое влияние.

3.2 Построение модуля управления

Для управления 3-мя шаговыми двигателями требуется 12 логических управляющих выводов и 6 каналов ШИМ (3 платы драйвера на каждый двигатель, плата имеет 4 логических входа и 2 аналоговых входа). Кроме этого нужно обрабатывать входные сигналы от концевых переключателей, а их 5 штук. У компьютера есть LPT-порт, с 17-ю контактами, которые можно использовать как логические входы/выходы, но их недостаточно. Поэтому в этом случает нужно использовать микроконтроллер.

Используем контроллеры AVR. AVR -- семейство восьмибитных микроконтроллеров фирмы Atmel. Год разработки -- 1996. Система команд микроконтроллеров AVR весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций. Большинство команд занимает только 1 ячейку памяти (16 бит). Большинство команд выполняется за 1 такт.

Минимальное требуемое количество ножек микроконтроллера. Помимо тех что были подсчитаны раннее (23 ножки для управления драйверами и принятия сигналов с концевиков) прибавим сюда пины для программирования по SPI-интерфейсу ( 4 вывода) и пины для принятия сигналов с компьютера. Предполагается, что для управления шаговым двигателем на более высоком уровне компьютер будет посылать логический импульс по одному проводу (не считая земли) для проворачивания ротора на один шаг, потребуется второй провод для указания направления вращения. Итак 6 пинов для принятия сигналов с компьютера, плюс ещё 2 резервных, если нужно будет послать некую информацию обратно. Назовём разъём LiLn (название будет обоснованно в описании программы), выводы разъёма.

Итого, получаем 35 выводов - минимальное число пинов микроконтроллера, которые будут входить в состав портов.

Больше всего подходит микроконтроллер ATMega128, по следующим параметрам:

1. Общее число ножек: 64. Число ножек, которые можно использовать в качестве входов/выходов: 54, чего с запасом достаточно (требуется 35).

2. Количество каналов ШИМ, которые можно включить на аппаратном уровне одновременно: 7. (требуется 6).

3. Оптимальная тактовая частота 8 МГц, большинство команд выполняются за 1 такт, значит одна команда выполниться за 0.125 мкс, что приемлемо для нашей математической модели.

Настройка уровней ШИМ.

При расчёте уровня ШИМ для конкретного тока в обмотке ШД нужно учитывать множество параметров электрической цепи: блок питания - драйвер - ШД, что достаточно сложно. Ток не пропорционален уровню ШИМ, в силу действия очень многих факторов. Есть очень простое решение этой проблемы: внести значение уровня ШИМ в энергонезависимую память микроконтроллера для каждого тока из круговой диаграммы. Используем EEPROM (англ. Electrically Erasable Programmable Read-Only Memory) -- электрически стираемое перепрограммируемое ПЗУ (ЭСППЗУ), один из видов энергонезависимой памяти (таких как PROM и EPROM). Память такого типа может стираться и заполняться данными несколько десятков тысяч раз. Для настройки достаточно кнопки и 2-светодиодов (один светодиод для индикации текущего двигателя, другой для текущего тока), а также программы-сценария для структурированное внесения данных.

В качестве разъёмов используем для информационных входов/выходов DIP10, в который будет втыкаться вилка со шлейфом. Для питания 5-ю вольтами - клеммник 305-021-12.

В итоге, какие разъёмы и для чего следует предусматреть на плате управления:

1. Разъём DIP10 управления 1-м ШД.

2. Разъём DIP10 управления 2-м ШД.

3. Разъём DIP10 управления 3-м ШД.

4. Разъём DIP10 для программирования МК по SPI.

5. Разъём DIP10 для приёма команд от компьютера.

6. Разъём DIP10 для приёма сигналов от концевиков.

7. Клеммник для питания 5-ю вольтами.

Выше указанной информации достаточно для составления принципиальной схемы и разводки печатной платы для модуля управления.

После разводки ПП выводы разъёмов приняли следующее расположение:

Разъём для связи с компьютером:

1. MzLi - шаг ШД на оси Z.

2. MyLi - шаг ШД на оси Y.

3. MyLn - направление вращения ШД на оси Y.

4. MxLi - шаг ШД на оси X.

5. MxLn - направление вращения ШД на оси X.

6. GND - логическая земля.

7. GND - логическая земля.

8. Lt - резервный вывод.

9. Lk - резервный вывод.

10. MzLn - направление вращения ШД на оси Z.

Разъём для принятия сигналов с концевых переключателей:

1. MzK1 - 1-й концевик на оси Z.

2. MyK2 - 2-й концевик на оси Y.

3. MyK1 - 1-й концевик на оси Y.

4. MxK2 - 2-й концевик на оси X.

5. MxK1 - 1-й концевик на оси X.

6. GND - логическая земля.

7. GND - логическая земля.

8. GND - логическая земля.

9. GND - логическая земля.

10. GND - логическая земля.

3.3 Управляющая программа микроконтроллера

Постановка задачи: требуется написать программу для микроконтроллера ATMega128, выполняющую следующие функции:

1. Контроль функционирования модуля управления.

2. Приём сигналов с ПК через его LPT-порт.

3. Управление драйверами, по построенной ранее математической модели.

4. Обработка сигналов с концевых переключателей.

5. Возможность настройки уровней ШИМ для соответствующих уровней токов.

Общую блок схему можно посмотреть на одноимённом чертеже. Программа писалась в компиляторе AVR Studio 4 на языке Assembler. (см рис 3.3.1) Используя этот язык можно составить более оптимизированный код и более быстродействующий, по сравнению с быстродействием того же алгоритма, написанного на С.

Рис 3.3.1

Кроме того AVR Studio 4 - отличный симулятор работы микроконтроллера, в нём можно сразу же после написания кода, проверить правильность его работы. Исходный код программы находиться в одноимённом приложении. Он представляет собой 880 строчек кода. После преобразования в 16-тиричный, код будет иметь размер 5336 байт памяти (или 5,21 КБ). Далее его загружаем с помощью программы PonyProg2000 (рис 3.3.2) во Флеш-память микроконтроллера. (Флеш-память (англ. flash memory) -- разновидность твердотельной полупроводниковой энергонезависимой перезаписываемой памяти (ПППЗУ).)

Рис 3.3.2

Микроконтроллер ATMega128 имеет 128 КБ флеш-памяти для программ (видно из названия), поэтому написанная программа займёт всего 4,1% от всего объёма памяти.

3.3.1 Контроль функционирования модуля управления

После сборки модуля управления требуется провести контроль функционирования. Для этого решено было предусмотреть автоматический контроль по программе, записанной в МК. ATMega128 имеет 64 вывода, из-за чего существует достаточно большая вероятность того что хотя бы один вывод соприкасается с землёй, или с другим выводом, что может привести к перегоранию полевых транзисторов на соответствующем пине. Поэтому при запуске МК, срабатывает прерывание RESET, по которому запускается подпрограмма контроля функционирования. Эта подпрограмма не изображена на чертеже, поскольку слишком проста. Работа программы:

1. Все выводы портов делаются входами, c подтяжкой pull-up (подтяжка 40 кОм на +5 вольт напряжения питания).

2. PORT@0.@1 = 1;

3. DDR@0.@1 = 0;

4. Если вывод не соединён с землёй, значит его PIN@0.@1 должен равняться единице. Поэтому дальше запускаем проверку всех битов регистров PIN. Если хотя бы один равен нулю, перезагружаем микроконтроллер.

5. Далее делаем вывод выходом, устанавливаем на его выходе напряжение 0 вольт, логический ноль:

6. PORT@0.@1 = 0;

7. DDR@0.@1 = 1;

8. Два соседних выхода также как в пункте 2 проверяем на контакт с землёй. В случае контакта, также перезагружаем микроконтроллер.

9. Повторяем пункт 3 для всех выводов.

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

3.3.2 Основная программа микроконтроллера

При запуске микроконтроллера сначала выполняется подпрограмма контроля функционирования, и только потом настраиваются выводы и таймеры (Рис 3.3.3):

Рис 3.3.3

После завершения всех настроек запускается бесконечный цикл, который работает непрерывно, во время приёма сигналов от ПК, и отправки управляющих сигналов драйверам (Рис 3.3.4):

Рис 3.3.4

Прерывания в этой части программы не используются, поскольку в МК предусмотрены только 2 вектора прерываний по низкому уровню на выводах. (а нам требуется как минимум 3). Ещё одна причина, почему не используются прерывания: в случае их использования время простоя будет не столь большим, чтобы выполнить какие-либо другие операции, к тому же дополнительные операции отсутствуют, в конце концов бОльшую часть времени (во время выполнения подпрограммы ветвления) флаг прерывания будет сброшен.

Как было ранее решено, для инкремента микро-шага ШД, ПК посылает импульс (длительностью около 0,1 мс) на ножку MxLi. Для примера взят X-двигатель, общее обозначение: Mx. Также ПК может задать направление вращение подав логический ноль, либо логическую единицу на ножку MxLn. Для принятия импульса используется флаг Rf, чтобы определить его передний фронт.

Итак, если посмотреть на рис 3.3.4, то можно увидеть 3 одинаковых алгоритма, следующие друг за другом. Каждый из этих алгоритмов опрашивают соответствующие своему двигателю выводы, на предмет наличия переднего фронта на ножке Li. Если это событие происходит: запускается подпрограмма ветвления для текущего двигателя.

Программа ветвления: это алгоритм, по которому выбирается один из 16-ти комбинаций управляющих сигналов для требуемого такта и текущего двигателя. Он начинается с инкремента или декримента (в зависимости от соответствующего входного сигнала от ПК) регистра, который хранит номер текущего такта. Далее начинается выбор алгоритма тактN. В Assembler нет оператора case, да и в С этот оператор не оптимизирован, для нашей задачи МК потребовалось бы около 100 тактов для выбора соответствующего алгоритма. Поэтому я написал собственный алгоритм выбора по дереву путей, посредством которого требуется всего 16 тактов для выполнения той же задачи.

В конце запускается один из 16-ти алгоритмов установки управляющих сигналов (Подпрограммы такт0..такт15). В которых устанавливаются требуемые логические сигналы и уровни ШИМ ранее заданные в процессе настройки. Кроме того в начале каждого алгоритма тактN посылается форсирующий импульс: уровень ШИМ кратковременно устанавливается на 100%. Длительность этих импульсов для каждого такта затабулированны, смотрите выводы из математической модели.

3.3.3 Настройка уровней ШИМ для соответствующих уровней токов

Эта часть программы предназначена для настройки тех величин, которые не могут быть выведены из теоретической модели, их значения можно найти только практическим путём. К ним относятся уровни ШИМ для табличных значений токов: Inom*0.38=1,06А, Inom*0.707=1,98А, Inom*0.92=2,59 А, Inom*1=2,8 А.

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

Настройка осуществляется для каждого двигателя, поскольку в общем случае они могут быть различными. В целом нужно настроить 4 тока для 3-х двигателей, итого 14 значений. И для этого на модуле управления предусмотрена кнопка и 2 светодиода. После нажатия на кнопку, выполнение основной программы останавливается, запускается следующий обработчик прерываний (Рис 3.3.5):

Рис 3.3.5

Из рисунка видно, в корневом алгоритме настраиваются по очереди токи всех 3-х двигателей. 1-й светодиод сигнализирует о номере текущего двигателя, если он потух, значит контроллер ждёт подачи команд. 2-й светодиод сигнализирует о номере текущего тока. Здесь часто используется мигание соответствующего светодиода, для информировании пользователя о текущем токе или двигателе. Также используется различная длительность нажатия кнопки, таким образом расширяя её функциональную вариативность.

3.4 Управляющая программа под DOS

Прежде чем приступить к написанию программы, следует твёрдо определиться с тем, что она должна делать. Начальными данными в нашем случае будет чертёж дорожек печатной платы, выполненной в любой из система автоматизированного проектирования электроники (например P-CAD). Далее требуется по этому чертежу изготовить печатную плату на станке.

Из технологии производства: печатная плата изготавливается путём нанесения рисунка участков платы свободных от меди путем снятия предварительно нанесенного лака в соответствующих местах.

Следовательно требуется по чертежу сгенерировать траекторию движения иглы (для снятия лака) по контуру проводника. Затем управляя ШД, обеспечить движение иглы по этой траектории.

В программе Sprint-Layout 5.0 есть функция, которая заметно упростит задачу: “изоляция дорожек”. В этой программе после разводки платы, можно создать список точек на плоскости, которые представляют собой контур проводника печатной платы на заданном расстоянии от него. Причём этот список точек представлен в виде PLT-файла.

Теперь можно более чётко представить функции управляющей программы под DOS:

1. Чтение и расшифровка PLT-файла, созданного программой Sprint-Layout 5.0.

2. Управляя ШД через модуль управления, обеспечить движение иглы по траектории, заданной в plt-файле.

Кроме этих требований, здесь как следствие, нужно предусмотреть удобный ввод и сохранение параметров станка.

Рис 3.4.1

Планируется построить программу в виде диалога в консольном окне. В качестве компилятора будем использовать Microsoft Visual C++ 6.0.( Рис 3.4.1)

3.4.1 Подготовка файлов в программе Sprint-Layout 5.0

Рис 3.4.2

Вначале создаётся рисунок печатной платы. (Рис 3.4.2) Слой с красным цветом: сторона 1, та сторона на которой преимущественно располагаются электронные компоненты “в отверстие”.

Рис 3.4.3

Далее открываем меню “фрезеровка” -> “изоляция дорожек”. Открывается меню на рис 3.4.3. Выбираем в нём слой M1, с красным цветом. Далее вводим “ширину” или отступ от проводника: 0.1мм. Далее ничего не менять. В панели “сверловка” установить “все диаметры в отдельном файле”, “для каждого слоя”. Нажать ок.

Рис 3.4.4

Сохранить в файле с именем 1-1.plt. Что означает 1-й слой и 1-й контур. Контур - это тот же самый контур, только расположенные несколько дальше от проводника. Количество контуров определяется экспериментально. Появиться белая обводка красного проводника, как на Рис 3.4.4. Далее аналогично создаём plt-файл для 2-й стороны (зелёный цвет). После чего получаем входные данные для управляющей программы под DOS. На Рис 3.4.5, слева показаны слева помещённые в папку Debug файлы 1-1.plt, 1-2.plt, 2-1.plt, 2-2.plt.

Рис 3.4.5

3.4.2 Чтение PLT-файла

На рис 3.4.5, кроме всего прочего показано начало PLT-файла (окно справа). Язык представляет собой сочетание кода из двух букв и следующих за ним дополнительных параметров. Рассмотрим значения основных кодов:

- IN - инициализация процесса черчения.

- PU - поднять инструмент.

- PD - опустить инструмент.

- PA<координата X>,<координата Y> - переместиться в точку с координатами X, Y.

Координатная система была основана на наименьших единицах, поддерживаемых их плоттерами -- 25 µm (то есть 40 единиц на миллиметр, 1016 на дюйм).

В начале управляющей программы открываются PLT-файлы как текстовые файлы, и читаются строка за строкой, с последующим преобразованием в простой массив чисел X[],Y[],Z[]. Это результат чтения plt-файла, целые числа, Z[] - бинарные числа (определяют, опущен или нет в данной точке инструмент).

Далее полученные числа масштабируются и приводятся к другой системе измерения: от 1/40 дюйма к величине микро-шага.

3.4.3 Процесс управления шаговыми двигателями

После фазы подготовки данных были получены координаты точек, по которым последовательно следует “пройти”. Но как перейти из точки с координатами (0,0) к точке (7,5)? Понятно, что как в этом так и в других случаях следует подробно расписать каждый шаг работы станка. Нужно сказать, что это самая сложная часть программы, в которой поначалу наблюдались множественные сбои.

Рис 3.4.6

Для реализации алгоритма разбиения на элементарные микро-шаги ШД, следует учесть что игла (инструмент) может двигаться в 8 направлениях, потому что шаговые двигатели X и Y осей могут работать одновременно. Вернёмся к случаю перемещения к точке (7,5). К этой точке можно прийти разбив движение на 7 элементарных команд шаговым двигателям (Рис 3.4.6). В таблице справа показаны какие команды нужно подать шаговым двигателям: “1” - инкрементировать шаг, “0” - не менять положение ротора шагового двигателя, ещё мог быть “-1” - декрементировать шаг. Причём отклонение от синей линии (желаемая траектория или требуемая траектория) составить менее половины шага в обе стороны.

Требуется создать код для составления таблицы разбиения на элементарные шаги. Для этого вычисляется тангенс от разниц в координатах dX и dY, где dX = X1(желаемое положение) - X0(текущее положение), аналогично для dY. Компьютер поэтапно формирует элементарные команды шаговым двигателя, так чтобы двигаться максимально близко к линии тангенса (синяя линия на...


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.