Перейти к содержанию

Переходные Процессы В Шаговом Двигателе И В Системе Его Управления


Sergy

Рекомендуемые сообщения

Здраствуйте.

Читал я тут на досуге книгу одну. Автор некто Т. Кенио. Называется - Шаговые двигатели и их микропроцессорные системы управления.

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

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

С другой стороны момент на валу и скорость вращения между собой имеют некоторую связь. Единственное, что я об этом слышал - "с ростом скорости вращения вала момент понижается". Однако мы не будем забывать, что ШД это не просто двигатель постоянного тока и его скорость (в идеальном случае) не во всех местах непрерывна, что приводит нас к вопросу: Что здесь понимается под скоростью вращения, чем она задается? Ок, мы говорим, мол, от скорости вращения мы можем перейти к частоте отработки шагов. Но это только для полношаговго режима. Даже к полушаговому это вряд ли относиттся. А как насчет микрошагового режима? В этом режиме мы управляем ШД как обычным синхронным или асинхронным (путаю я их), но все равно - какая бы дискретность у нас не была мы никогда не обеспечим линейности изменения токов обмоток, а потому и линейности вращения двигателя.

Может кто знает где про это прочитать можно?

По ходу пьесы у меня, скорее всего, еще будут возникать вопросы...

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

У меня задача - регулировать скорость вращения нескольких шаговиков по заданному закону.

Схема есть (принципиальная) и как это должно быть устроено у меня уже описано.

Но вот с описанием со стороны теории управления у меня не сложилось. Я в ней понимаю так-себе.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

Ссылка на комментарий
Поделиться на другие сайты

Для проформы отвечаю - Закон изменения скорости задан в виде уравнения.

Вопрос не в том как это реализовать. С этим у меня проблем не возникло пока. Как регулировать скорость я в курсе. С аппнотами AVR466 и AND8404 я знаком. Все это у меня описано.

У меня вопросы связаны с теорией автоматического управления.

Особенно в части влияния нагрузки на вал.

Изменено пользователем Sergy
Ссылка на комментарий
Поделиться на другие сайты

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

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

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

С этим я знаком. Алгоритмы у меня составлены.

У меня вопросы касаются теории автоматического управления - передаточные функции ШД в различных его режимах.

Ссылка на комментарий
Поделиться на другие сайты

В каких режимах? Подробнее, с информацией.

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

считай так же как и в ШИМе

Это из-за ШИМ реализации задания тока обмоток? Я об этом не подумал...

В каких режимах? Подробнее, с информацией.

Микрошаг, полушаг.

UPD: Однако я нигде не находил влияния нагрузки на валу.

Изменено пользователем Sergy
Ссылка на комментарий
Поделиться на другие сайты

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

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

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

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

Вы же это не от балды взяли. Где бы про это подробнее прочитать?

Ссылка на комментарий
Поделиться на другие сайты

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

Совершенно верно. А вот где взял, не знаю. Это мои выводы из прочтения множества литературы по работе и применению ШД. Читайте, разбирайтесь. С научной точки зрения может быть упрощенная теория, но на практике работает.

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

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

Которая в свою очередь определяется величиной тока протекающим через обмотку , те если ток=const , то и крутящий момент=const во всем диапазоне скорости вращения.

А вот как вы организуете стабилизацию тока это уже другой вопрос....

Ссылка на комментарий
Поделиться на другие сайты

Нашел статью "Stepper Motor Model for Dynamic Simulation". Автор Alexandru Morar.

Никак не могу сообразить - что это за элементы такие - квадраты с точками на рисунке 3.

Ссылка на комментарий
Поделиться на другие сайты

Это квадраты с плюсиками, которые плохо отпечатались. Означают сумматоры.

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

Это квадраты с плюсиками, которые плохо отпечатались. Означают сумматоры.

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

Ссылка на комментарий
Поделиться на другие сайты

Схема иномарочная. Х.з. что они хотели этими квадратиками показать. Это предположение исходя из блок-схемы.

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

Схема иномарочная. Х.з. что они хотели этими квадратиками показать. Это предположение исходя из блок-схемы.

Даже предположение помогает. Однако, это не сумма. Это произведение. Плохо отпечатанная звездочка.

В крайнем случае я могу использовать модель (если не разберусь с передаточными функциями к ШИМ).

Ссылка на комментарий
Поделиться на другие сайты

+5! Однако оно так и есть! Главное - алгоритм придумывать не надо. Примерно есть, а схемная реализация и обкатка в образце покажет.

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

Интересно еще было бы знать как для двигателя km определить.

Конечно, для упрощения его можно взять равным единице. Но вот для реального двигателя...

Ссылка на комментарий
Поделиться на другие сайты

Km - это что? Коэффициент мощности?

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

Я вот с ним не могу сообразить что это.

Формула выглядит так:

Tmj = km * sin[ n*PHI(t) + PHI0j ] * Ij(t)

Tmj - момент создаваемый j-ой обмоткой

km - постоянная, зависящая от исполнения двигателя

n - число пар полюсов ротора (или число пар зубцов ротора)

PHI(t) -текущее положение ротора

PHI0j - положение j-ой обмотки на статоре

Ij(t) - ток j-ой обмотки как функция времени

Эта формула приведена при синусоидально изменяющемся магнитном поле в зазоре между статором и ротором.

А ЭДС инджуцируемая в обмотке при прохождении по ней тока:

E = km * sin[ n*PHI(t) + PHI0j ] * w

w - (омега) - угловая скорость вращения ротора.

UPD @ 22.03.2013:

Сообразил я что такое Km - это потокосцепление обмотки (I*L) умноженное на число пар полюсов = n*I*L

Изменено пользователем Sergy
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • #include <Wire.h> #include <Oregon_TM.h> #include <BME280I2C.h> //////////////////////////////////////////////////////////////////////////////////////////////////////////// //Скетч для устройства, передающего данные датчика BME280 в формате Oregon Scientific THGN132N //Принципиальная схема прилагается. //Для работы необходима библиотека https://github.com/finitespace/BME280/ //Устройство работает от 3-ех пальчиковых батареек, для экономии электричества заливать скетч нужно через ISP //////////////////////////////////////////////////////////////////////////////////////////////////////////// //Также возможна передача данных в формате - THP (температура, влажность, давление, напряжение батареи) //Пример с приёмником поддерживает расшифоовку THP //////////////////////////////////////////////////////////////////////////////////////////////////////////// # define THGN_SEND 1 // Передавать ли данные в формате THGN132 # define THP_SEND 0 // Передавать ли данные в формате THP # define DEVICE_LOG 1 //Писать ли лог В Serial # define DONE_PIN 15 // вывод сигнала об окончании работы на таймер # define BME_WAIT 10 // Сколько мс ожидать датчик BME # define BATTERY_THR 3.5 // Порог напряжения для выставляения флага разряда батарейки (THGN) ///////////////////////////////////////////////////////////////////////////////////////////////// //Ниблы датчика THP //Во всех полях младшие ниблы идут вперёд!!! // 1-2 - тип (55) // 3 - канал (0-7) // 4-6 - (температура от -100С) * 10. Т.е. +25.1С = 1251 = 4E3h // 7-9 - Влажность *10 Т.е. 25.1% = 251 = 0FBh // 10-12 - (давление от 500ммртст) * 10. Т.е. 765мм = 2650 = A5Ah // 13-15 - данные с АЦП (A0) // 16-17 - CheckSUM // 18-19 - CRC8 (poly 0x07 start 0x00) ///////////////////////////////////////////////////////////////////////////////////////////////// Oregon_TM transmitter(4); BME280I2C bme; bool bme_present = false; float bme_temp(NAN), bme_hum(NAN), bme_pres(NAN); ///////////////////////////////////////////////////////////////////////////////////////////////// void setup() { digitalWrite(DONE_PIN, LOW); pinMode(DONE_PIN, OUTPUT); #ifdef DEVICE_LOG Serial.begin(115200); Serial.println("Waiting for BMEsensor..."); #endif //Обмен данными с BME////////////////////////////////// Wire.begin(); while(!bme.begin()) { if (millis() > BME_WAIT) break; } if (!bme.begin()) { #ifdef DEVICE_LOG Serial.println("No BME sensor found"); #endif bme_present = false; } else { switch(bme.chipModel()) { case BME280::ChipModel_BME280: bme_present = true; bme.read(bme_pres, bme_temp, bme_hum); #ifdef DEVICE_LOG Serial.println("Found BME280 sensor! Success."); Serial.print("Temperature = "); Serial.print(bme_temp, 1); Serial.println("C"); Serial.print("Humidity = "); Serial.print(bme_hum, 1); Serial.println("%"); Serial.print("Pressure = "); Serial.print(bme_pres * 0.75, 1); Serial.println("mmHg"); #endif break; default: #ifdef DEVICE_LOG Serial.println("Found UNKNOWN sensor! Error!"); #endif bme_present = false; } } //Напряжения батареи/////////////////////////////////////////// word battvotage = (word)(((float)(1.1 * 16368) / Vbg()) * 100); #ifdef DEVICE_LOG Serial.print("Battery voltage = "); Serial.println(battvotage,HEX); #endif //Подготовка и отправка данных THGN////////////////////////////////////// transmitter.protocol == 2; if (THGN_SEND) { transmitter.setType(THGN132); transmitter.setChannel(3); transmitter.setBatteryFlag(battvotage < BATTERY_THR); if (bme_present) { if (bme_hum > 98) bme_hum = 98; if (bme_hum < 2) bme_hum = 2; if (bme_temp > 70) bme_temp = 70; if (bme_temp < -50) bme_temp = -50; transmitter.setTemperature(bme_temp); transmitter.setHumidity(bme_hum); transmitter.setComfort(bme_temp, bme_hum); } else { transmitter.setTemperature(-49.9); transmitter.setHumidity(2); transmitter.setComfort(-49.9, 2); } transmitter.SendPacket(); } // Если отправляются оба формата пакетов, межу ними надо выдержать паузу if (THP_SEND && THGN_SEND) delay(100); //Подготовка и отправка данных THP////////////////////////////////////// if (THP_SEND) { transmitter.setType(THP); transmitter.setChannelTHP(1); transmitter.setBatteryTHP( battvotage); if (bme_present) { transmitter.setTemperatureTHP(bme_temp); transmitter.setHumidityTHP(bme_hum); transmitter.setPressureTHP(bme_pres * 0.75); // перевод Pa в mmHg } else { transmitter.setErrorTHP(); } transmitter.SendPacket(); } #ifdef DEVICE_LOG Serial.println(); Serial.print(millis()); Serial.println("ms"); Serial.println(); #endif //Команда на отключение питания digitalWrite(DONE_PIN, HIGH); } ///////////////////////////////////////////////////////////////////////////////////////////////// void loop(){} ///////////////////////////////////////////////////////////////////////////////////////////////// int Vbg() { ADMUX = (1<<REFS0)|(0<<REFS1)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(0<<MUX0); long buffersamp=0; for (int n=0x0; n<=0xff; n++ ) { ADCSRA = 0xc7; while (bit_is_set(ADCSRA,ADSC)); buffersamp += ADC; } buffersamp >>=4; //16368 full scale 14bit ADCSRA &= ~(1 << ADEN); // отключаем АЦП return buffersamp; } Вот код программы. Пробовал по разному и от 5в запитывал и всю систему от 3,3 в. Причем голая ардуинка с таймером работает в нормальном режиме некоторое время, но потом все равно слетает и начинает питать мк постоянно( Причем это происходит всегда через разный промежуток времени.
    • На фото может быть название , характеристики и т.д. И по этому фото я смогу выбрать такой же в инете.. самому мне не собрать..
    • А что даст фотка? Тот же щуп, только чуть крупнее и с проводами питания.
    • Для меня наверное лучше купить готовый.. цель повысить чувствительность до 1 mV.. Наверное на Авто стоит покупать , мне бы фотку какую нить..такого активного щупа..))
    • Так на схемах обозначается подключение к сети 220 В.
    • Привет, радионарод! Вот, решил показать, рассказать и дать попробовать свою придумку, как я внешнюю синхронизацию к "ослику" прикрутил. DSO138 уже не так популярен, но кто-то пользуется, кому-то быть может пригодится. Подробной информации по таким доработкам в сети не встречал, так что делюсь, чем сам измыслился. Собственно, схема. Немного фоточек. С "ослика" не пугайтесь, не умею я делать красивые корпуса с красивыми мордами лица к ним. Двухканального функционального генератора с возможностью двигать фазу у меня нет, поэтому какая-то программа-генератор из Интернетов, звуковая карта и DSO138. Смотрим синус, т.к. меандр из звуковухи никакой. Конечно, видна погрешность в измерениях. Прибор-то - игрушка. Да и генератор не блещет точным сигналом. Полноценного аналога внешней синхронизации (как у аналоговых приборов) не получится, но даже в таком виде эта доработка расширяет функционал осциллографа и дает в некоторых случаях возможность изучать два сигнала. Как пользоваться. Из иных доработок. Как видите, дурацкие ползунковые переключатели заменены на сдвоенные галетники на три положения. Кнопки поставлены большие тактовые 12х12 мм. Подпаяны паралельно, старые удалять не нужно. Светодиод тоже в паралель. Питание батарейное, от аккумулятора старого "умнофона". Полтора ампер-часа, наверное. Плата зарядки, плюс повышайка с фильтрами по питанию. Корпус алюминиевый от "не-знаю-как-правильно-называется", там жесткий диск стоял с парой ветродуйчиков. Гетинакс, оргстекло.   Короче, удачи!
  • Похожий контент

×
×
  • Создать...