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

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

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

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

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

Сообщение petrovitch »

Используя в качестве образца проект MotorControlDemo, я несколько модифицировал его, убрав все коммуникационные модули CAN, записи в UserFlash, запись аварий. Но вместе с тем появились трудности с инициализацией типа двигателя, его параметров, ДПР.
В оригинале, если я правильно понимаю, информация о параметрах двигателя и конфигурации привода приходила по CAN.

Где лучше организовать инициализацию упомянутых структур? Особенно drv_params.

Как правильно вычислить параметры двигателя в формате _IQ для массива параметров, основываясь на справочных данных моего двигателя?
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

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

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

Добрый день. Там же есть массивы с параметрами всех двигателей, типа IMDATA, SMDATA. Там всё во флоте.
Переменые model.MotorType и model.MotorParametersNum определяют номер элемента массива, откуда брать параметры двигателя. Смотрите код V_MotorModel.с и документ Описание имитационных моделей электродвигателей v8.pdf .

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

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

Сообщение petrovitch »

PS: если не секрет, а в чем смысл избавляться от CANOpen и юникона? В чем же тогда смотреть все осциллограммы и как настраивать контура токов? Вся "фишка" проекта именно в предоставлении этих инструментов..
Как ранее уже писал,запускаюсь на своём железе. Порты частично повторяют VectorCARD. Ближайшая задача - запустить программу под своё железо с самым простым алгоритмом управления вентильным двигателем. Хоть трапецеидальным.
Смотрите код V_MotorModel.с и документ Описание имитационных моделей электродвигателей v8.pdf .
Но мне хотелось бы поработать с железом.

В алгоритме управления в конечном итоге используется структура drv_params. Как она заполняется в оригинальном алгоритме и как сделать это мне? Или я что-то не понимаю?
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

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

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

Проинициализировать нужно вообще всё - не только drv_params, а все переменные, которые были "на запись" в юниконе и которые завязаны на систему управления - все кривые, регуляторы, АЦП, ШИМ и прочее.
Крайне не рекомендую пробовать что-то запускать без юникона - это будет слепая работа без возможности понять, что не так. Юникон можно подключить по CAN, USB, RS. Уверен, хотя бы пару голых пинов для RS можно найти и соединить со компьютером через свисток USB-RS на 3.3 В. Это решит 99% проблем, что вам предстоит решить с выпиленным CANOpen и без юникона. И у вас будет и осциллограф, и сохранение настроек, и параметрирование и всё прочее.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 107
Зарегистрирован: 15 фев 2017, 19:07

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

Сообщение petrovitch »

Прекрасно понимаю о чём Вы говорите. Такая инициализация всего остального (ШИМ, АЦП....) у меня есть с учётом особенностей моего железа. Я это отследил по SM_Sys_init. И обязательно дальше буду использовать для отладки Unicone.

Однако сейчас прошу помочь в определении в правильном месте и с правильными значениями необходимых структур из файла V_common напрямую, например в SM_Sys_init. Например, сопротивление фазы статора (long Rs) в каких единицах записывать? И так по всем остальным параметрам.

В конечном итоге я буду вынужден отвязаться от Unicone, поскольку параметры привода должны быть определены в программе "жёстко" и задающее воздействие придёт в процессор по SPI. К тому же в дальнейшем я постараюсь запустить на этом кристалле 2 двигателя.
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

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

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

Я не могу сказать правильные значения - Это зависит от выбранных базовых величин в файле drv_params. Могу только дать один совет - запустите проект с юниконом, задайте все значения, которые нужны, посмотрите, чему они равны в IQ (в контекстном меню Info параметра) и присвойте их в своей программе. Более того, сопротивление Rs вообще никак не учавствует в работе с реальным двигателем. Нужно настроить базовые величины drv_params.p, drv_params.U_nom, drv_params.I_nom, drv_params.Udc_nom, drv_params.speed_nom и проинитить всякие там ШИМы, АЦП и регуляторы.

По поводу того, что параметры привода должны быть определены "жестко" и принимать задание по SPI, и управлять двумя двигателями - вообще никак не влияет на использование юникона. Можно отключить работу с пользовательской флеш-памятью в CANOpenUDfuncs.c (сделав пустыми co_UserMemoryRead и co_UserMemoryWrite), драйвер CANopen будет во все параметры грузить при запуске контроллера дефолты, которые заданы в COODEdit. А можно отключить даже и это, обнулив co2_vars.settings.LoadParamsFromUserMemory_ena = 0;
И два двигателя тоже никакой проблемы нет... В общем, мое мнение, вы больше сил потратите на запуск и инициализацию пустого проекта, чем вернете юникон, даже пусть с отключенной загрузкой параметров и другим приёмом задания.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 107
Зарегистрирован: 15 фев 2017, 19:07

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

Сообщение petrovitch »

Вы правы. Буду возвращать unicone и следовать предложенным Вами путём.
petrovitch
Сообщения: 107
Зарегистрирован: 15 фев 2017, 19:07

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

Сообщение petrovitch »

1. Проверяя настройки АЦП в файле V_adc.c не могу найти в документации регистр SEQ.
По заголовочному файлу тоже трудно понять эту программную абстракцию.
Как это правильно читать или интерпретировать.

2. Для чего в этом же модуле используются компараторы АЦП?

3. В моей схеме раскладка сигналов по каналам иная. Могу ли я безболезненно перенастроить каналы
(строки 114 - 126 v_adc.c) или необходимо обратить на что-то особое внимание?
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

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

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

1. SEQ это не регистр. Это массив секвенсоров, 0-8. А вот внутри уже идут регистры MUX, CTL, OP и т.п. См. Таблица Б.2.
2. Компараторы использовались ранее для получения результатом измерения, в более старой версии ПО. Компараторы служат как регистры ADCRESULT - из них удобно вычитыывать результаты АЦП, если не нужно никакое фифо. Типа value = NT_ADC->DCVAL_bit[0].VAL;
3. Разберитесь со всем кодом демо-примера. Этих строк недостаточно. Посмотрите коммит 5456793 (Добавлена поддержка нового типа платы MOTOR CONTROL BOARD). там добавлялся новый канал, посмотрите, что менялось.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 107
Зарегистрирован: 15 фев 2017, 19:07

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

Сообщение petrovitch »

Компараторы использовались ранее для получения результатом измерения, в более старой версии ПО
...
Посмотрите коммит 5456793
Может сразу последний смотреть и править под себя?
Ответить

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