MotorControlDemo

Аватара пользователя
Лашкевич Максим
Сообщения: 224
Зарегистрирован: 30 дек 2015, 10:38

Re: MotorControlDemo

Сообщение Лашкевич Максим » 06 дек 2019, 18:11

Потому что снятые на текущем такте токи - это обычно токи с предыдущего такта, так как пока датчики тока измерят ток, пока аналоговый тракт контроллера отработает, пока АЦП, пока программа дойдет до их считывания... Всё условно, конечно.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

petrovitch
Сообщения: 17
Зарегистрирован: 20 фев 2017, 18:39

Re: MotorControlDemo

Сообщение petrovitch » 05 фев 2020, 16:20

Настраиваю регуляторы тока согласно описанию на ПО (п. 6.1.2.).
Заданный ток удержания 1А.
Хотя параметры ПИД-регулятора и влияют на результат, но при всех
настройках осциллограммы токов фаз В и С имеют форму как на картинке:
Oscill_Ifabc.jpg
Oscill_Ifabc.jpg (137.6 КБ) 3623 просмотра
В чём может быть проблема?

Аватара пользователя
Лашкевич Максим
Сообщения: 224
Зарегистрирован: 30 дек 2015, 10:38

Re: MotorControlDemo

Сообщение Лашкевич Максим » 13 фев 2020, 17:36

Да, есть такой эффект, связан, насколько я помню, с влиянием мёртвого времени при попытке приложить околонулевое напряжение вдоль одной из осей. Попробуйте сменить тип ШИМ на другой. Также попробуйте поменять частоту ШИМ - попробуйте 10кГц, 15кГц, посмотрите как влияет.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Rine
Сообщения: 32
Зарегистрирован: 28 апр 2017, 09:25

Re: MotorControlDemo

Сообщение Rine » 13 мар 2020, 12:12

Добрый день проект Motor control demo под контроллер 1921ВК035 выполнен полностью на данном микроконтроллере, без участия внешней памяти? Просто на отладочной плате я обратил внимание на DD2 (24LC256)...

Аватара пользователя
Лашкевич Максим
Сообщения: 224
Зарегистрирован: 30 дек 2015, 10:38

Re: MotorControlDemo

Сообщение Лашкевич Максим » 13 мар 2020, 12:32

Добрый день, в данном микроконтроллере нет встроенной отдельной флеш памяти для сохранения настроек привода. Поэтому для сохранения стоит внешний чип. Можно отключить возможность сохранения параметров в драйвере CANOpen, тогда внешний чип использоваться не будет.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Rine
Сообщения: 32
Зарегистрирован: 28 апр 2017, 09:25

Re: MotorControlDemo

Сообщение Rine » 13 мар 2020, 12:51

Спасибо! Тогда алгоритм работы такой, если нет внешней памяти- все настройки, например, регуляторов писать "влоб", ввиде констант внутри приекта?
Просто нет возможности использовать внешнюю память

Аватара пользователя
Лашкевич Максим
Сообщения: 224
Зарегистрирован: 30 дек 2015, 10:38

Re: MotorControlDemo

Сообщение Лашкевич Максим » 13 мар 2020, 13:31

Для того, чтобы задавать Си-кодом "в лоб", все переменные надо удалить из словаря CANOpen, иначе он загрузить им значения по-умолчанию при инициализации. Поэтому лучше, при сохранении CANOpen, менять дефолты параметрам в COODEdit и перегенерить словарь.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Илья!
Сообщения: 57
Зарегистрирован: 09 ноя 2018, 16:55

Re: MotorControlDemo

Сообщение Илья! » 30 июл 2020, 01:21

В продолжение темы по проекту ПО для контроллера 1921ВК035.
Правильно ли я понимаю, что и программу и данные вы размещаете во внутренней флэш памяти программ, откуда они загружаются во внутреннее ОЗУ память программ или программа выполняется из флэш? А во внешней флэш памяти данных храните отредактированные значения параметров, которые потом при загрузке программы и данных из флэщ ПП присваиваются переменным? А дефолтные значения переменных из кудэдита хранятся во внутренней флэш памяти программ?

Если это так, то подскажите пожалуйста как отключить возможность сохранения параметров в драйвере CANOpen, для того, чтобы работать без внешнего чипа флэщ памяти.
И еще, подскажите пожалуйста, как оценить объем занимаемой памяти проектом, чтобы понять впишется ли разработанное ПО в 64 кБ? В файле Debug/*.map есть строчки .debug_frame .... - это оно?

Благодарю.

Аватара пользователя
Disona
Сообщения: 25
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: MotorControlDemo

Сообщение Disona » 30 июл 2020, 11:08

Илья! писал(а):
30 июл 2020, 01:21
В продолжение темы по проекту ПО для контроллера 1921ВК035.
Правильно ли я понимаю, что и программу и данные вы размещаете во внутренней флэш памяти программ, откуда они загружаются во внутреннее ОЗУ память программ или программа выполняется из флэш? А во внешней флэш памяти данных храните отредактированные значения параметров, которые потом при загрузке программы и данных из флэщ ПП присваиваются переменным? А дефолтные значения переменных из кудэдита хранятся во внутренней флэш памяти программ?

Если это так, то подскажите пожалуйста как отключить возможность сохранения параметров в драйвере CANOpen, для того, чтобы работать без внешнего чипа флэщ памяти.
И еще, подскажите пожалуйста, как оценить объем занимаемой памяти проектом, чтобы понять впишется ли разработанное ПО в 64 кБ? В файле Debug/*.map есть строчки .debug_frame .... - это оно?

Благодарю.
Здравствуйте.
Если я правильно понял, вы говорите про проект MotorControlDemo для 035.
Вы всё описали верно:
1. Программа хранится во внутренней Flash, и оттуда же выполняется, так как ОЗУ очень мало для хранения функций. В принципе есть возможность разместить часть функций в RAM и копировать их туда из Flash, но опыт показывает, что смысла в этом особо нет. Программа из Flash выполняется в большинстве случаем так же быстро, как и из RAM. Это связано с архитектурой микроконтроллера.

2. Значения параметров словаря CANopen "по умолчанию" хранятся во внутренней флеш.
3. Значений параметров словаря, которые пользователь изменил и хочет сохранить, хранятся во внешней памяти.
Логика загрузки этих параметров такая: при инициализации, драйвер CANopen считывает значения из внешней памяти. Помимо самих значений хранится ещё и контрольная сумма. Если количество требуемых для словаря значений и их контрольная сумма сходятся, то драйвер записывает в параметры эти загруженные значения. Если нет - либо изменился словарь и количество параметров в словаре теперь не такое, как в памяти, или память пуста и не сходится контрольная сумма - драйвер загружает значения по умолчанию из внутренней Flash.

4. Если вы хотите работать без внешней памяти, то нужно в файле "SM_NET.c" найти в функции "SM_NET_Init" строки для инициализации CANopen драйвера и присвоить переменной " co1_vars.settings.LoadParamsFromUserMemory_ena" значение "0". Тогда значения параметров всегда будут загружаться "по-умолчанию".

Вы также можете подчистить всё, что связано с модулем "UserMemory", если у вас сильно не достаёт памяти под ваш проект. Это файл для работы с I2C памятью на плате MotorControlBoard035. Но на внешнюю память ещё кое-что завязано, например ведение логов аварий. Если у вас внешней памяти нет, то и смысла в этом модуле тоже нет, но придётся повозиться, чтобы аккуратно всё подчистить. Возможно проще будет просто закомментировать содержимое некоторых функций.

5. Что касается размера программы, то он печатается в консоли после окончания сборки:
Развернуть

Код: Выделить всё

Invoking: GNU ARM Cross Print Size
arm-none-eabi-size --format=berkeley "K1921VK035_MCD.elf"
   text	   data	    bss	    dec	    hex	filename
  56008	   9304	   1832	  67144	  10648	K1921VK035_MCD.elf
Finished building: K1921VK035_MCD.siz
Нужно сложить значения для секций .text и .data - получите размер вашего проекта. Bss, если я правильно помню, во Flash памяти не занимает, но лучше это проверить. Вот в примере под спойлером во flash занято 56008 + 9304 = 65312 байт, или 0xFF20.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

Илья!
Сообщения: 57
Зарегистрирован: 09 ноя 2018, 16:55

Re: MotorControlDemo

Сообщение Илья! » 30 июл 2020, 15:31

спасибо за развернутый ответ.
уточните пожалуйста, весь проект Motor Control Demo 035 входит во внутреннюю 64кБ флэш? Или все же вы используете часть внешней памяти для хранения программы?

Благодарю

Ответить