Перейти к содержанию

Arseniy22

Members
  • Постов

    6
  • Зарегистрирован

  • Посещение

Весь контент Arseniy22

  1. Добрый день всем! Вопрос у меня следующий: попытался я для BLDC-мотора реализовать алгоритм непрерывного векторного управления, с регулированием токов в подвижной СК. Цель - снизить энергопотребление этого самого двигателя. Успех есть, но возникла проблема: двигатель при низких значениях тока хотя и способен сдвинуться с места, но один из постоянных магнитов примагничивается к сердечнику, ротор заметно колеблется, но не вращается. Если ротор в принципе сдвинуться может - значит, в теории можно ещё снизить потребление. Вопрос: допускаю ли я ошибку в том, что BLDC-движки не предназначены для управления синусоидой? Может быть, надо просто упростить алгоритм, получая на выходе трапецеидальную ЭДС? Верно ли, что технически проблема в неоднородности магнитного поля? Заранее благодарю всех за помощь! Фото двигателя - в прикреплённом изображении.
  2. Да, попробую поработать с регистрами. Про вечный цикл: я и добавлял в цикл строки, и выкосил функцию из цикла - остановка строго на HAL-е была. Так что спасибо, попробую на низком уровне поработать.
  3. Микроконтроллер stm32f105RB, на плате Core205R. Отладчик ST-Link, среда Atollic TrueStudio. Нажатием F6 прогоняю программу по шагам. На функции HAL_I2C_Master_Transmit характерное выделение строки отладчиком пропадает. Дальше сдвинуть с места на шаг программу не получается, ни на какие действия контроллер не реагирует, только перезапуск. Как-то так
  4. Здравствуйте. Проблема следующая: при работе с отладчиком программа останавливается на строке HAL_I2C_Master_Transmit(&hi2c1, (I2C_ADDRESS << 1), (uint8_t*)0x10, 1, I2C_TIMEOUT) ; Признаков жизни программа после этого не подаёт. Аналогичный эффект случался и при работе с HAL_ADC... и HAL_Delay. Сталкивался ли кто-то с такой проблемой? Код main() как бы вот(конфигурировал всё в Cube): int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_I2C1_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while(1) { HAL_I2C_Master_Transmit(&hi2c1, (I2C_ADDRESS << 1), (uint8_t*)0x10, 1, I2C_TIMEOUT) ; /* USER CODE END WHILE * /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } И не могли бы кто-то из присутствующих подсказать, как тут код нормально вставить, чтобы я мог загрузить его целиком, с конфигурацией и всем прочим? Заранее благодарю.
  5. Вас понял. А существуют ли какие-либо альтернативные готовые варианты реализации бездатчиковой FOC? Опыта у меня очень мало. С другой стороны, можно синтезировать алгоритм из мат. модели в Simulink, например. Под конкретный двигатель и с конкретными запросами это мб проще, чем освоение более-менее универсальной библиотеки. Но это тоже очень длинный путь получается, без гарантий на успех.
  6. Здравствуйте. Возникла необходимость реализовать векторное управление на плате Stm32f205. Соответственно, сначала скачал и установил software development kit. Вопросы следующие: 1) Можно ли добыть библиотеку stm32 FOC в чистом виде, или с ней можно работать только через софт? 2) Глупый вопрос: почему в распакованном архиве отсутствует часть заголовочных файлов в папках с примерами? Заранее благодарю за помощь.
×
×
  • Создать...