реклама на сайте
подробности

 
 
> Помогите выбрать микроконтроллер, Для управления тремя двигателями постоянного тока
haker_fox
сообщение Jun 20 2008, 23:04
Сообщение #1


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Здравствуйте!
Уже длительное время мучаюсь вопросом: какой МК выбрать? Старшие ATmega64(128) или LPC2468.
Но для начала расскажу суть дела.
Требуется организовать управление тремя двигателями постоянного тока ДПМ-35-Н2-02. Под управлением подразумевается плавный разгон за короткое время (0.1 - 0.5 с) для исключения ударов в кинематике механизма и резких бросков пускового тока движков. Далее идет стабилизация по скорости через энкодеры. При приближении к заданной координате двигатель плавно сбрасывает скорость и стабилизируется в заданном положении. Для исключения аварийных ситуаций, связанных с потерей счета от энкодеров, предусмотрены оптические концевики, которые видимо надо завести на внешние IRQ МК. Энкодеры также заведены на внешние прерывания. Одновременно МК следит за током потребления каждого двигателя через датчик тока. Если ток достигнет максимального (задается программно) - происходит выключение двигателя и т.д.
Стабилизация по скорости осуществляется через ПИ регулятор.
Стаблизицация по положению пока через нечто самодельное.
Максимальная частота с каждого канала энкодера (всего два канала на один энкодер и три энкодера на три двигателя) около 4 КГц. В качестве энкодеров пока выступают датчики от мыши.
Стенд с одним двигателем собран на базе ATmega16 и работает довольно таки стабильно. Но когда кол-во двжиков, датчиков, возрастет в три раза, я не знаю, справится ли МК с нагрузкой. "Одновременно" МК должен контролировать три двигателя, используя выше описанные датчики, поддерживать связь с компьютером по RS-232, с пультом ручного управления по протоколу RS-232, опрашивать еще около 10 концевиков с реакцией на срабатывание не более 100мс и в ответ управлять несколькими пневмоприводами примерно с такой же быстротой.
С такого масштаба задачами я еще не сталкивался. И незнаю, как выбрать МК...( AVR знаю, ARM на примере LPC2468 осваиваю уже с 1 июня сего года. Вроде поддается))))
Но сделать систему на базе AVR для меня легкче, если он будет единственным МК в системе, я его знаю довольно не плохо, но не знаю, потянет ли он все это, особенно когда на него будут поступать прерывания с частотой 4 КГц (ну пусть в среднем 2КГц) с шести каналов, + крутиться три ПИ регулятора + ... все что описано выше...
С другой стороны ARM должен справиться, но я его пока плохо знаю. Да и "понравятся" ли ему эти же прервывания, не будут ли "прибивать" его быстродействия.
Была идея сделать управление на базе нескольких AVR, но ИМХО это удорожит систему и тогда уж проще поставить один ARM МК.
Простите, если сумбурно изложил мысли, но мне очень непонятно, что делать...
Спасибо!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Jun 21 2008, 21:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Мне кажется, надо смотреть в сторону 4-ёх ядерного пентиума с кэшем 2Мб на ядро и с частотой не менее 3ГГц и по альтере на каждый двигатель.

Ну а если отдать эту задачу начинающему программисту имеющему начальные познания в программировании и общее представления о понятии ШИМ, то он справится ну скажем на меге8 с частотой 8МГц, при этом она будет спать процентов 60 времени.

Так я, к примеру управляю 6 шаговыми двигателями (по 3 канала ШИМ 8кГц на 8МГц) и читаю 6 каналов АЦП. Дроблю шаг на 16, делаю разгон/тормажение, цифровую фильтрацию. Естественно устраняю нелинейность датчиков.

И хвалиться тут совершенно нечем, так как задача данная - примитивна до безобразия. Скомпилированная программа (Си) ~ 3kb + 3kb таблиц.
Невижу никаких сложностей с энкодерами. Я смогбы управлять таким количеством всей этой ботвы - сколько у меня только ног бы было. То есть на 640 меге думаю двигателей 40 я бы потянул. Во взаимосвязи.
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Jun 22 2008, 10:27
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(SasaVitebsk @ Jun 22 2008, 01:53) *
Мне кажется, надо смотреть в сторону 4-ёх ядерного пентиума с кэшем 2Мб на ядро и с частотой не менее 3ГГц и по альтере на каждый двигатель.

Так я, к примеру управляю 6 шаговыми двигателями (по 3 канала ШИМ 8кГц на 8МГц) и читаю 6 каналов АЦП. Дроблю шаг на 16, делаю разгон/тормажение, цифровую фильтрацию. Естественно устраняю нелинейность датчиков.

И хвалиться тут совершенно нечем, так как задача данная - примитивна до безобразия. Скомпилированная программа (Си) ~ 3kb + 3kb таблиц.
Невижу никаких сложностей с энкодерами. Я смогбы управлять таким количеством всей этой ботвы - сколько у меня только ног бы было. То есть на 640 меге думаю двигателей 40 я бы потянул. Во взаимосвязи.


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

Во-вторых, причем тут АЦП - сигнал для управления мы получаем с энкодера. Очен интересно, как Вы сможите управлять десятком вдигателей на одной меге, если с каждого из них будет поступать сигнал с частотой 4кГц (как у автора) - по 400 тактов между прерываниями, маловато будет...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- haker_fox   Помогите выбрать микроконтроллер   Jun 20 2008, 23:04
- - _Pasha   Тут единственное узкое место - работа с АЦП. Чем-т...   Jun 21 2008, 07:40
- - MrYuran   Я бы выбрал LPC. При сравнимой цене круче на поряд...   Jun 21 2008, 07:49
- - 733259   10 концевиков не получится завести на внешние прер...   Jun 21 2008, 08:05
- - mdmitry   У Freescale есть специализированные микроконтролле...   Jun 21 2008, 10:06
- - Aesthete Animus   Цитата(haker_fox @ Jun 21 2008, 03:04) Дл...   Jun 21 2008, 10:44
|- - _Pasha   Цитата(Aesthete Animus @ Jun 21 2008, 13...   Jun 21 2008, 11:54
- - ZLOI   Цитата(haker_fox @ Jun 21 2008, 08:04) Ст...   Jun 21 2008, 15:13
|- - haker_fox   Цитата(ZLOI @ Jun 22 2008, 00:13) Помоему...   Jun 22 2008, 23:55
- - Stas   Посмотрите в сторону Microchip dsPIC30F2020 - все...   Jun 21 2008, 17:13
|- - ZLOI   Цитата(SasaVitebsk @ Jun 22 2008, 06:53) ...   Jun 22 2008, 04:28
|- - _Pasha   Цитата(SasaVitebsk @ Jun 22 2008, 00:53) ...   Jun 22 2008, 06:11
||- - PhX   Очень советую посмотреть в сторону TI 320F28xxx эт...   Jun 22 2008, 06:56
|- - _Pasha   Цитата(Aesthete Animus @ Jun 22 2008, 13...   Jun 22 2008, 10:57
|- - Aesthete Animus   Цитата(_Pasha @ Jun 22 2008, 14:57) *) по...   Jun 22 2008, 11:17
- - _Pasha   Понятно, сморозил я, но решение для энкодеров лучш...   Jun 22 2008, 11:27
|- - Aesthete Animus   Цитата(_Pasha @ Jun 22 2008, 15:27) Понят...   Jun 22 2008, 11:55
|- - _Pasha   Цитата(Aesthete Animus @ Jun 22 2008, 14...   Jun 22 2008, 12:26
- - SasaVitebsk   Тем не менее по 4000 тактов. Какой смысл обрабатыв...   Jun 22 2008, 19:44
|- - _Pasha   Цитата(SasaVitebsk @ Jun 22 2008, 22:44) ...   Jun 22 2008, 20:36
- - SasaVitebsk   В ветке AVR сейчас развернулась тема по опросу энк...   Jun 23 2008, 16:40


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 10:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016