Вопрос темы уже отвечен несколько раз В простом примитивном варианте ШИМом апроксимация с RC цепочкой на выходе. При апроксимации 10 битным шимом частота дискредитации должна быть в 1024 раза выше максимальной частоты синуса. RC цепочка настраивается на частоту дискредитации, которая есть константа В лучшем варианте апроксимация используя внешний DAC, частота так же в столько раз выше какова битность DAC, но RC цепочка как таковая уже не нужна
novarobotix, Таблица синусов в памяти. По прерыванию переполнения таймера - загружаем новое значение в OCRxx. Дошли до конца таблицы - все сначала. При изменении частоты прореживаем таблицу. У Атмела есть неплохие апликухи (AVR449,AVR494, AVR495) на эту тему. Там все доступно описано с примерами кода.
Делал очень давно. Еще на 8031. Правда не синус, а просто треугольник. Работал сильно тише, чем при управлении шаг-полушаг. Но крутящий момент, к сожалению, был меньше. А привод для асинхронника на 400 Гц делал именно с таблицей синусов.
вы что вообще от драйвера хотите - если только плавность хода то синус пойдет если точность - то калибровать шаговик - оттуда и таблицу получить
синус не пойдёт. вы пробовали крутить вал шаговика без питания? каким образом эта нелинейность усилия будет скомпенсирована? о точности речь не идёт, у шаговика точности выше крыши
mrFox писал(а):
интересно чем обмотка + паралельно ей кондесатор отличается от LC фильтра
тем что это силовая обмотка и там большие токи. сглаживание надо делать до силовых цепей.
vdavid писал(а):
Делал очень давно. Еще на 8031. Правда не синус, а просто треугольник. Работал сильно тише, чем при управлении шаг-полушаг. Но крутящий момент, к сожалению, был меньше. А привод для асинхронника на 400 Гц делал именно с таблицей синусов.
я думаю это сделать с помощью обратной связи, к примеру круглий лист бумаги с рисками на валу и оптопара - фиксировать перемещение - делать его постоянноускоренным с помощью коррекции тока через обмотку в реалтайме, и другой вариант то же самое но использовать измерительный резистор в цепи обмотки - но тут я сильно плаваю - как делать незнаю
_________________ Глупый не задает вопросы. Глупый и так все знает.
novarobotix Вы напрасно переживаете о питании обмоток прямоугольными импульсами. ШД споректирован именно для такого питания. Наоборот все стараются сделать фронт импульса тока максимально крутым. Для этого раньше ставили баластные резисторы и питали двигатель сильно завышенным напряжением. Затем стали применять обратную связь по току. Еще раз повторюсь, что при питании ШИМом резких перепадов тока просто не будет, поскольку нарастанию тока будет препятствовать индуктивность обмотки (и не только, но и противоЭДС). Поэтому питание чистым синусом выходного усилителя не даст ничего, кроме очень низкого КПД. Позиционная же обратная связь для ШД бессмысленна по определению. Если уж ставить энкодер, то использовать двигатель постоянного тока.
у меня шаговик на 24 шага, поэтому синусоиду стоит попробовать. вообще многошаговые шаговики - да там проблема с плавным микрошагом. поэтому и визжат. чем больше переключений тем более крутой фронт нужен. а у железа предел по частоте вот и проблемы. потыкаю в реале посмотрю что по чём.
_________________ Глупый не задает вопросы. Глупый и так все знает.
рано ещё нагрузку цеплять. сначало надо принципы движения на различных частотах отработать. да и на одной пока не всё гладко. так что поле пока не паханное рано сеять.
а вот и первая задача которую нужно решить. http://my-files.ru/Download/4uxx9s/SDC12930.avi из за того что сила воздействия на магнит сильно меняется от расстояния его до обмотки, то при линейном изменении напряжения получаем нелинейное движение. надо сделать изменения напряжение по закону обратно пропорциональному чтобы всё было ровно и гладко.
в аттачменте код который шевелит валом тудым сюдым между двумя соседними обмотками.
http://my-files.ru/Download/see1lx/SDC12932.avi а вот на очень малой скорости с 2-х лучевым осциллографом. с 32 секунды видно как плавно включается одна обмотка и выключается другая и насколько это нелинейно происходит если сравнивать с реальным движением.
всплыла задачка. оказывается если просто выставить ногу МК в 1 то на выходе одно напряжение, а если послать туда кучу импульсов и проинтегрировать, то примерно в 2 раза ниже за счёт того что в импульсе 1 чередуется с нулём. и к примеру когда после плавного увеличения амплитуды на ноге импульсами до максимума на ногу выставляется статическая 1, чтобы импульсами увеличивать следующую ногу, то переход от импульсов к статической еденице образует ступеньку и мотор дёргается в этом месте плавного хода.
решил решить эту задачу следующим образом:
1. написал код который поочерёдно выводит сначала на одну ногу очень широкий импульс(аналог статической еденицы) а потом на другую ногу пачку из 1000 импульсов и на конденсатор.всё это суммируется с помощью диодов, резисторов в одну точку - и на базу управляющего транзистора и осциллограф. там где статика(относительная) поставлен переменный резистор, и с помощью него подгоняется уровень когда импульсы и когда статика, чтоб не было ступеньки при переходе.
for (;;) { my_us_delay(10000);PORTC.0=1;my_us_delay(10000);PORTC.0=0;my_us_delay(10000); //**************
////////////////// for (k=0; k < 1000; k++) { PORTD.7=1; my_us_delay(w); PORTD.7=0; my_us_delay(delay); } ///////////////// } ///**************************
ну а сделать итоговое перемещение ещё более равномерным думаю делать с помощью коррекции той функции что приходит с ЦАП. сейчас там треугольник. и получилось действительно бесшумно. с шимом подвизгивалоо с переменной частотой визга.
_________________ Глупый не задает вопросы. Глупый и так все знает.
так как шаговик у меня трёхфазный вместо 3- цапов решил поставить коомутатор который выход одного цап будет переключать между обмотками. есть под рукой микросхема 561КТ3 http://www.rlocman.ru/comp/koz/cd/cdh60.htm набросал схемку. когда напряжение ацп достигает максимума, МК переключает выход ацп на базу следующего транзистора, а на базе предыдущего транзистора через диод устанавливается еденица.
561КТ3 не заработал. поставил кр590кн6(то что было под рукой) запитал от 5 вольт вроде коммутирует, дособираю схему посмотрю как в реале будет происходить коммутация.
оказалось сильно неравномерное движение ротора при линейном увеличении напряжения на обмотке. это из за того что чем ближе магнит к обмотке тем сильнее притяжение и зависимость экспоненциальная. поэтому в результате движение волнами получилось. посему теперь буду ваять датчик линейного перемещения, вычислять функцию необходимую для линейного перемещения вала мотора, заносить её в память МК и двигать мотором с её помощью.
датчик перемещения думаю сделать из оптопары и фольги с узкими щелями по 0.3 мм примерно,штук 256 щелей , и нацепить этот кусок фольги с помощью рычага на вал мотора и делать плавно шаг по микрошагам и тем же МК снимать показания с оптопары, вычислять функцию и заносить готовые отсчёты в память чтобы потом юзать для плавного движения.
мне в голову пришла мысль сделать всё таки на 3-х цапах. сейчас сделано на одном + коммутатор. если будут 3 цапа то можно будет легко делать уменьшение тока обмоток во время отсуствия движения. минус в том что нужно много ног и портировать на МК илиПики у которых мало ног будет невозможно.
на одну обмотку подано полное напряжение, на вторую плавно возрастающе-убывающее - 255 шагов туда и 255 обратно. чётко видна нелинейность хода и за счёт рычага увеличен ход примерно до 9 см, что соответствует длине сеточки с 128 рисками.http://my-files.ru/Download/o9p6dg/SDC12965.avi
_________________ Глупый не задает вопросы. Глупый и так все знает.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения