Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Управление оборотами ДПТ


Автор: Spike 9.11.2005, 23:24
Здравствуйте, уважаемые!
Сразу прошу прощения за полную некомпетентность в вопросе.
Имеется: ПК, ДПТ (двигатель постоянного тока), счетчик числа оборотов.
Задача: реализовать управление числом оборотов ДПТ с обратной связью.

Огромная просьба: обрисуйте в общих чертах принцип построения такой системы.
С уважением Spike.

Автор: PILOT 10.11.2005, 04:42
В самых общих чертах.
Нужно:
1) датчик оборотов (я делал с помощью колеса из пленки в которой чередуются закрашенные и незакрашенные участки, стоит оптодатчик который срабатывает по появлению прозрачной области.
2) Нужно знать характеристику (в самом простом случае обороты от напряжения)
3) Строить ПИД-регулятор который бы управлял бы ключом соотвествующей мощности с помощью ШИМ.
4) любоваться и пробовать затормозить вал рукой (он не должен особо "чувствовать" это, т.е. интегратор работает), резкие изменения должны встречать ощутимое обратное сопротивление (дифф звено)...

СУВ.
ЗЫ. Больше всего времени займет п.3.

Автор: Spike 11.11.2005, 15:35
Цитата(PILOT @ 10.11.2005, 04:42)
3) Строить ПИД-регулятор
, что есть ПИД-регулятор? Нельзя ли п.3 несколько подробнее?

Возможно ли построить управление ДПТ по такой схеме:
1. предварительно рассчитывается цифровая программа управления ДПТ (имеются ввиду напряжения в каждый дискрет времени);
2. программа реализуется в аналоговый сигнал посредством АЦП, который через некий (не знаю какой, да и вообще нужен ли) усилитель управляет ключом соответствующей мощности;
3. датчик оборотов следит за оборотами и передает информацию для расчета коррекции программы (как некой функции отклонения реальных оборотов от заранее рассчитанных);
4. цифровая программа корректируется в соответствии с отклонениями и подается на АЦП, далее к п.3, пока не будет выполнена вся программа?


Автор: PILOT 11.11.2005, 19:52
Вы описали ПИД регулятор (в простом представлении)
ПИД-регулятор - ПропорциональноИнтегральноДиффиренциальный интегратор. О нем можно найти через поисковик много информации.

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

3 и 4 вытекают из устройства ПИД регулятора о котором вы пока не знаете ничего, почитайте как он устроен и все ваши вопросы отпадут сразу.

СУВ.

Автор: scapig 11.11.2005, 21:28
Вааще-то можно почитать учебники типа:

1. Теория автоматического управления.
2. Автоматизированный электропривод.
3. Электрические машины (справочник).
4. Ну и типа что-то СУЭП и т.д в туже тему (не помню уже).
Там описаны принципы построения подобных СУ.

Тут некоторые люди (типа Я ) изучали это 5 лет... А тут Вы ххотите В ОБЩИХ ЧЕРТАХ smile


А вообще-то ПИД-регулятор это уж слишком пожалуй...

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

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

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

Можно обойтись и без датчика скорости, а вычислять реальную угловую скорость вращения ротора косвенно по токам в статоре (в обмотке возбуждения если есть) и напряжению, подаваемому на статор (но для этого надо взять справочник и посмотреть там параметры ДПТ)...

А чтобы все было ПУЧКОМ (типа супер пупер круто smile ) надо запастися терпением и
вперед и с песней smile начать расчет цифрового регулятора скорости
(в конечностно-разностных уравнениях) и взятся за его реализацию либо на МК либо программно на РС... с добавлением если понадобятся различного рода устройств (типа ПДФ и т.п.)...


А вообще-то к слову все СУ (большинство) строятся по принципу подчиненного регулирования (типа с сигналами обратных связей)

так что тут имеется огромное поле для реализации своих идей... УДАЧИ
smile





Автор: PILOT 12.11.2005, 00:39
В ПИД регуляторе в исполнении на контроллере самое неприятное это дифференцирование, интегрирование и пропорциональное звено реализуются элементарно. Если представить дифференцирование через аппериодическое звено, то тоже проблем нет, главное это изучить систему и задаться характеристиками (постоянные времени, коэффециенты и т.п.)

СУВ.

Автор: scapig 12.11.2005, 01:19
Приятно "слышать" брата по разуму smile

Автор: Spike 13.11.2005, 01:06
Товарищи! Спасибо за ответы и советы.

С электроникой я не "на ты", собственно поэтому и возник сей вопрос.

Регулятор будет реализовываться именно программно, т.е. софтина самостоятельно читает данные с датчика оборотов, рассчитывает управляющее воздействие,
Цитата(PILOT @ 12.11.2005, 00:39)
на контроллере самое неприятное это дифференцирование, интегрирование и пропорциональное звено реализуются элементарно

для меня наоборот элементарнее реализовать дифференцирование, интегрирование, решение систем уравнений и пр. программно, чем на микроконтроллере.
Итак: что я могу сделать, так это прочитать число оборотов и рассчитать воздействие (какое оно должно быть? напряжение?)
Что я не знаю как сделать: как вот это воздействие в виде цифры с ПК приложить к ДПТ.

Цитата(scapig @ 11.11.2005, 21:28)
Тут некоторые люди (типа Я ) изучали это 5 лет...
, некоторые изучают и больше, но понять не могут. Кстати в бытность мою студентом изучал я системы автоматического регулирования возбуждения генераторов (только матмодели), вот вы мне и напомнили где искать регулятор! Опять же причина для программного регулятора.

[OFFTOP] P.S. просил же я не желать мне удачи... smile. Кстати, велосипед изобретать мне не впервой (иногда это проще) smile [/OFFTOP]

С уважением Spike.

Автор: PILOT 13.11.2005, 02:40
http://model.exponenta.ru/z_tf_pid.html
http://members.vicard.net/sensor/main1_10.htm
http://www.automation-drives.ru/as/download/doc/microsystems/s7_200/S72_32R.pdf

а это я писал в 2002году:
http://molod.mephi.ru/2002/Data/562.htm

А вообще, в интернете поищи, много всего... рекомендую использовать гугл, поиск по группам (FIDO).

СУВ.


Автор: Spike 13.11.2005, 15:14
PILOT, спасибо за ссылки. Почитал, понял. Проблему регулятора снимаю.

Трансформирую вопрос: как сигнал, полученный программно на выходе ЦАП подать на двигатель?

Двигатель - не какой нибудь конкретный, а примерно <100Вт

P.S Сорри за вопросы, не связанные с программированием микроконтроллеров.

С уважением Spike.

Автор: PILOT 13.11.2005, 17:13
http://gamma.spb.ru/pictures/articles/doc_30.pdf

ЦАП применять нельзя (а точнее нецелесообразно).

СУВ.

Автор: Spike 22.11.2005, 18:11
Здравствуйте!

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

"Черный ящик"
Что из себя представляет "черный ящик": это устройство одним (входным) концом подключенное к ПК, другим (выходным) к ДПТ. Что у него внутри я не знаю, в этом собственно вопрос.

Выход "черного ящика" - два контакта, непосредственно подключенные к ДПТ. Количество оборотв двигателя - есть функция напряжения на выходе "черного ящика".
Входом "черного ящика" может быть практически любой внешний интерфейс ПК, предпочтительнее это выглядело бы так: к разъему ISA, PCI подключено устройство, являющееся частью "черного ящика", лучше всего чтобы это устройство было бы заводским, с комплектом драйверов и руководством по программированию. Еще лучше чтобы это была звуковая карта, которая собственно представляет собой ЦАП, применение звуковой карты позволило бы применить для управления DirectSound.

Как бы сделать (ну или купить, или заказать) такой вот "черный ящик" smile ?

С уважением Spike.

Автор: scapig 22.11.2005, 19:54
Насчет устройства черного ящика, что к ДПТ идет - то можно просто взять
4 MOSFET (если нужен реверс) + если надо позаботится о нормальной работе этих MOSFET-ов надо еще достать м/сх драйвер силовых ключей (т.е. между компом и Mosfet-ами он и стоит)....
Дрйвер выбрать какой-нить подходящий лучше фирмы IRF .... Они по доступней и подешевле вроде.... Все зависит от движка....
MOSFET - тоже в зависимости от ДПТ (тоже IRF - а можно и какие нить другие и даже типа наших полевиков)... Питать MOSFET инвертор (4 - транзистора по мостовой схеме) - желательно напругой U=(1.5-2)Uдпт...

Сигналы управления , подаваемые на драйвер(инвертор) - можно брать с LPT порта .... Т .е. на драйвер подаются сигналы PWM...
Надо для этих целей брать 2(4) сигнала (ножки регистра данных)...
Сам алгоритм выдачи PWM - реализовать программно (быстродействия LPT должно хватить т.к. несущая PWM имеет частоту около 5-15 кГц (или самому подобрать))... Но вот насчет самой ВИНДЫ(DOS) я не уверен насчет реализации точного таймера с точностью < 1мс (в принципе можно реализовать и ns)...
Насчет принципа PWM - то доки можно в нете найти...
А насчет датчика ОС по скорости - USB - я не знаю не пробовал...

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


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


Я б порекомендовал для этих целей где-нить взять программный комплекс MATLAB v(не знаю какие щас уже версии есть- z gjkmpjdfkcz 6.0(6.1)...
В этом пакете есть такая фишка- Simulink ...
В нем есть все для моделирования СУ ЭП....

Все - что написал выше -это то - что бя я стал делать еслиб у меня была такая проблемка... smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)