Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

petrovitch
Сообщения: 111
Зарегистрирован: 15 фев 2017, 18:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Необходимо для STM-подобного микроконтроллера. А если использовать эмуляцию CAN?
Помнится я сам пользовался в MotorControl и обмен шёл по UART (пусть и медленнее). Есть же такая опция?
Аватара пользователя
Лашкевич
Сообщения: 379
Зарегистрирован: 13 май 2015, 12:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич »

Да, мы тоже таким баловались в STM, работой через UART. Но там будет куча ограничений - нет прошивки по такому интерфейсу, медленная скорость обновления параметров и загрузки графиков, невозможность соединить несколько устройств в одну сеть. Но опять же это кастомная сборка драйвера под конкретный проц должна быть.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 111
Зарегистрирован: 15 фев 2017, 18:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Максим, перехожу по теме MotorControl в эту ветку.

Пытаюсь запустить привод с контуром положения (режим 10). Пока ничего на получилось.
Привод, только пытается дёрнуться и возникает авария (превышение тока по фазе...).
Датчик обратной связи он же датчик положения ротора - абсолютный энкодер - работает. Контур скорости отлажен.
Вот что заметил: UniCon в группе параметров контура положения нет реакции на вращения вала двигателя.
Параметр "обратная связь" [5103.03] к какой переменной привязан? На что обратить внимание в коде для режима 10?
Аватара пользователя
Лашкевич
Сообщения: 379
Зарегистрирован: 13 май 2015, 12:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич »

"Параметр "обратная связь" [5103.03] к какой переменной привязан?" открываете либо CoodEdit, либо файл cood.c, там смотрите к какой переменной привязан параметр.
2023-11-29_17-10-18.png
2023-11-29_17-10-18.png (74.07 КБ) 1153 просмотра

Если происходит авария превышения тока, значит контур тока не отлажен, либо защита стоит очень близко к заданию. В любом случае, нужна осциллограмма процесса пуска. Токи d,q, скорость, задание по q. Для начала. Из этого будет понятно, что делать дальше.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 111
Зарегистрирован: 15 фев 2017, 18:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Проверил настройки и работу контуров по d и q, а также контура скорости.
При запуске режима 10 с абсолютным энкодером (доделал код) всё равно возникает авария.
Вот итоги измерений:
Фазные токи (режим 2)
Фазные токи режима 2.png
Фазные токи режима 2.png (10.07 КБ) 1120 просмотров
; токи d и q
Режим 2.png
Режим 2.png (9.07 КБ) 1120 просмотров
Контур скорости при аварии
Контур скорости.png
Контур скорости.png (45.82 КБ) 1120 просмотров
petrovitch
Сообщения: 111
Зарегистрирован: 15 фев 2017, 18:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

... и момент аварии
Авария 3.png
Авария 3.png (67.02 КБ) 1120 просмотров
Что я не предусмотрел в настройках? Может ошибка в определении положения с абсолютного энкодера?
Аватара пользователя
Лашкевич
Сообщения: 379
Зарегистрирован: 13 май 2015, 12:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич »

Просьбы:
1. Ставить курсоры в осциллографе в характерных местах - в начале развития проблемы, перед самой аварией. По клеточкам сложно ориентироваться.
2. Ставить одинаковые масштабы для одинаковых величин (на последней осце токи масштаб то 2А, то 10А).
3. На последнюю осцу вместо задания тока d, которое ноль, вывести угол с ДПР. Расставить курсоры и можно думать дальше.
4. Режим 5 у вас с абсолютным энкодером работает? Который просто с контуром скорости. Он попроще.

интуитивно кажется, что вы токи поворачиваете на один угол, а напряжения на другой (park и ipark получают разные углы). И векторка разваливается.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 111
Зарегистрирован: 15 фев 2017, 18:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

1. Ставить курсоры в осциллографе в характерных местах - в начале развития проблемы, перед самой аварией. По клеточкам сложно ориентироваться.
Видимо я как-то неправильно настраиваю dlog. Слегка запутался. Поэтому либо останавливаю непрерывный поток осциллограмм, либо после аварии просто вывожу выборку. Какой бит dlog следует поставить в 1?
Режим 5 у вас с абсолютным энкодером работает? Который просто с контуром скорости. Он попроще.
Да, режим 5 с абсолютным энкодером.
интуитивно кажется, что вы токи поворачиваете на один угол, а напряжения на другой. И векторка разваливается.
Единственное, где я дописывал код - это в файле датчика SSI, чтобы получить значение скорости. Остальной код оригинальный из Demo. (Кстати с инкрементальным энкодером контур положения работал правильно!). Посмотрю код в файлах для park и ipark.
Аватара пользователя
Лашкевич
Сообщения: 379
Зарегистрирован: 13 май 2015, 12:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич »

В оригинальном MotorControlDemo при аварии осц останавливается сам, никакие битики не нужны. Вот код:
2023-12-12_12-11-51.png
2023-12-12_12-11-51.png (26.41 КБ) 1009 просмотров
так что просто добавляете в осц переменные, ставите предысторию 90%, делитель 1, нажимаете Обновить (чтобы это всё прописалось один раз в контроллер), потом делаете Пуск, у вас вылезает авария. Нажимаете Обновить, юникон говорит, что записаны данные, соглашаетесь отобразить. Проверяйте угол.
Режим 10 по-умолчанию на SSI энкодер не сделан, там используется напрямую угол с инкрементального. Нужно руками поменять на SSI в park.ang и ipark.ang. Покажите код вашего стейта режима 10.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 111
Зарегистрирован: 15 фев 2017, 18:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Максим!
В своём ответе от 8 числа Вы обратили внимание на возможную причину аварии.
Перепроверил код в реализации режима 10. Действительно, в одном месте забыл изменить
источник информации о текущем положении вала с учётом применения абсолютного энкодера.
Всё заработало!
Спасибо!
Ответить

Вернуться в «32-разрядные микроконтроллеры»