MPetrovich 7 June 30 Posted June 30 · Report post Всех приветствую. Написал свою первую программу FOC для трёхфазного асинхронного двигателя (ACIM). Угол поворота определяется без датчиков путём интегрирования ЭДС. Довольно долго с этим провозился, но сейчас эта часть работает исправно почти от нулевой скорости. Проверял запуская двигатель в вентиляторном режиме и выводил значение угла на ЦАП в градусах. Вдел четкую пилу с немного неровной восходящей частью. Теперь настал черед самой петли FOC по оборотам. Обороты снимаются с вала энкодером и в программу заводятся в рад/сек. Далее от разницы оборотов считаю уставку iq_ref=kp*omega_err+ki*omegs_err*Tsample; где omega_err=omega_ref - omega_meas; Уставку id_ref беру пока директивно равной 0,1*Inom мотора по паспорту. Далее получаю ошибки по iq_err=iq_ref - iq; и id_err= id_ref - id; Следующий этап - вычисление Vq=(kp*Rs*iq_err+ki*Rs*iq_err*Tsample)+(Rs*iq_ref)+(omegs_meas*Ls*id); где первое выражение в скобках - ПИ-регулятор, второе выражение в скобках - компенсация падения на сопротивлении статора и третье - компенсация перекрёстных связей токов id и iq. Для Vd формула такая же, за исключением того, что последнее слагаемое вычитается. Потом производится обратное преобразование Парка для перехода из d-q в alpha-beta координаты и из полученных Valpha, Vbeta считаем рабочие циклы для ШИМ. Крутить двигатель начинаю в вентиляторном режиме и через какое-то время переключаюсь на FOC. Вот с этого момента начинается неуверенная работа двигателя и опрокидывание при резком добавлении оборотов. Очень надеюсь, что сведущие участники подскажут мне где есть ошибки и поделятся опытом в настройке FOC. Quote Share this post Link to post Share on other sites More sharing options...