MotorControlDemo

User avatar
Лашкевич Максим
Posts: 170
Joined: 30 Dec 2015, 10:38

Re: MotorControlDemo

Post by Лашкевич Максим » 24 Apr 2019, 22:06

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

Константин!
Posts: 5
Joined: 04 Oct 2018, 10:30

Re: MotorControlDemo

Post by Константин! » 08 Jul 2019, 17:13

Добрый день!

Объясните, пожалуйста, как в ПО motorControlDemo получается значение фазного тока adc.Imeas_a в формате 8.24?

Вспомогательный коэффициент усиления тока рассчитывается следующим образом:
p->IaGainNom = _IQ16mpy(p->Imeas_a_gain, drv_params._1_I_nom) << 1;
IaGainNom - число в формате 16.0. Кстати, для чего тут нужен сдвиг на один разряд влево?


Imeas_a = IaGainNom * ((IA_temp + Imeas_a_offset));
IaGainNom - IQ16.0
IA_temp - int16.0
Imeas_a_offset - IQ16.0

Почему Imeas_a интерпретируется как IQ8.24?

User avatar
Лашкевич Максим
Posts: 170
Joined: 30 Dec 2015, 10:38

Re: MotorControlDemo

Post by Лашкевич Максим » 09 Jul 2019, 16:13

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

Post Reply