Миландр 1986BE9X, 1986BE1T / Таймеры |
|Си| | ||
в палитре | на схеме |
Блок используется для разработки системы управления приводом без коллекторного двигателя постоянного тока (БДПТ) и содержит алгоритм выбора ключей для управлением инвертором в зависимости от значения дискретных сигналов трех датчиков Холла. Блок можно использовать в режиме моделирования и для программирования блока управления приводом БДПТ, для этого необходимо настроить соответствующие параметры в окне свойств блока. Блок можно использовать для программирования двух типов микропроцессоров 1986BE1T и 1986BE9X. Алгоритм работы блока в режиме моделирования приведен в таблице соответствия ключей инвертора значениям дискретных датчиков Холла:
Расположение фаз двигателя и дополнительная информация приведены в работе SimInTech - моделирование в электроприводе.
Для использования блока в управление реальным электроприводом необходимо самостоятельно настроить таблицу соответствия ключей инвертора значениям дискретных датчиков Холла. Предполагается, что каждый канал таймера общего назначения соединен с одной из фаз БДПТ A, B и C, прямые каналы управляют верхними ключами S1, S3, S5, а инверсные с нижними S2, S4, S6. При работе пары ключей «шимируются» нижнии ключи, а верхнии просто открыты в течении периода ШИМ. В качестве управляющего значения на вход блока поступает сигнал «ctl_u» он меняет свои значения в диапазоне от 0 до 1 и является результатом работы ПИ регулятора.
Для управлением ШИМ используем соотношение:
Width_Out = ctl_u * PWM_Period,
где значением Width_Out инициализируем регистры инверсных выходов каналов CCR(1..4) управляющих нижними ключами инвертора (см. спецификацию 1986BE1T.pdf, 1986BE9X.pdf). Значения для настройки управляющих регистров прямых и инверсных выходов канала таймера определяются в инклуд файле «timer.h»файла main.c проекта Test_Driver (в среде разработки Keil), который создается при генерации кода проекта и содержит тексты программ алгоритма на языке СИ.
MDR_TIMER->CH(1..4)_CNTRL1 = Phase_High1_Low0; (Верхний ключ инвертора)
MDR_TIMER->CH(1..4)_CNTRL1 = Phase_LowPWM; (Нижний ключ инвертора)
Дискретные значения датчиков Холла необходимо преобразовать к цифровому формату «CBA» (три бита), где «A» расположен в позиции самого младшего бита. Для этого в свойствах блока необходимо указать выводы порта микропроцессора соответствующие дискретным значениям датчиков Холла (предполагается что для получения значения датчиков используется один из портов МК).
Перед использованием блока, необходимо настроить таймер общего вида используя соответствующие блоки библиотеки.
Название | Имя | Описание | По умолчанию |
Один из трех таймеров (TIMER1, TIMER2, TIMER3, TIMER4 (для МК 1986BE1T)) | TIMER3 | ||
Период | PWM_Period | Период ШИМ | 3600 |
Преобразование дискретных сигналов датчиков Холла к виду CBA | |||
Порт со значениями дискретных сигналов | Port | Дискретные сигналы записываются в выходы определенного порта | PORT_E |
Выход порта для A | PIN_A | Пин порта на который выведен датчик Холла A | нет |
Выход порта для B | PIN_B | Пин порта на который выведен датчик Холла B | нет |
Транслировать скрипт в код автоматически | autotranslate | В случае активизации опции autotranslate, будет сгенерован Си-код секции моделирования блока (эта опция используется при удаленной отладке проекта на целевой системе) | нет |
Таблица включения ключей в зависимости от сигналов датчиков Холла | HALL_CBA | ||
HALL_CBA_100 | Выбор диспозиции ключей инвертора для CBA 100 | ||
Закрыть фазу, номер канала | Phase_Closed_100 | Каждому каналу назначена фаза электродвигателя, все ключи этой фазы закрыты | Channel1 |
Открыть верхний ключ, номер канала | Phase_High_100 | Выбираем канал, он привязан к фазе электродвигателя и открываем верхний ключ, на инверсном выводе 0 | Channel2 |
Открыть нижний ключ, номер канала | Phase_LowPWM_100 | Выбираем канал, он привязан к фазе электродвигателя и открываем нижний ключ с шимом, а верхний прямой закрыт | Channel3 |
HALL_CBA_010 | Выбор диспозиции ключей инвертора для CBA 010 | ||
Закрыть фазу, номер канала | Phase_Closed_010 | Каждому каналу назначена фаза электродвигателя, все ключи этой фазы закрыты | Channel3 |
Открыть верхний ключ, номер канала | Phase_High_010 | Выбираем канал, он привязан к фазе электродвигателя и открываем верхний ключ, на инверсном выводе 0 | Channel1 |
Открыть нижний ключ, номер канала | Phase_LowPWM_010 | Выбираем канал, он привязан к фазе электродвигателя и открываем нижний ключ с шимом, а верхний прямой закрыт | Channel2 |
HALL_CBA_110 | Выбор диспозиции ключей инвертора для CBA 110 | ||
Закрыть фазу, номер канала | Phase_Closed_110 | Каждому каналу назначена фаза электродвигателя, все ключи этой фазы закрыты | Channel2 |
Открыть верхний ключ, номер канала | Phase_High_110 | Выбираем канал, он привязан к фазе электродвигателя и открываем верхний ключ, на инверсном выводе 0 | Channel1 |
Открыть нижний ключ, номер канала | Phase_LowPWM_110 | Выбираем канал, он привязан к фазе электродвигателя и открываем нижний ключ с шимом, а верхний прямой закрыт | Channel3 |
HALL_CBA_001 | Выбор диспозиции ключей инвертора для CBA 001 | ||
Закрыть фазу, номер канала | Phase_Closed_001 | Каждому каналу назначена фаза электродвигателя, все ключи этой фазы закрыты | Channel2 |
Открыть верхний ключ, номер канала | Phase_High_001 | Выбираем канал, он привязан к фазе электродвигателя и открываем верхний ключ, на инверсном выводе 0 | Channel3 |
Открыть нижний ключ, номер канала | Phase_LowPWM_001 | Выбираем канал, он привязан к фазе электродвигателя и открываем нижний ключ с шимом, а верхний прямой закрыт | Channel1 |
HALL_CBA_101 | Выбор диспозиции ключей инвертора для CBA 101 | ||
Закрыть фазу, номер канала | Phase_Closed_101 | Каждому каналу назначена фаза электродвигателя, все ключи этой фазы закрыты | Channel3 |
Открыть верхний ключ, номер канала | Phase_High_101 | Выбираем канал, он привязан к фазе электродвигателя и открываем верхний ключ, на инверсном выводе 0 | Channel2 |
Открыть нижний ключ, номер канала | Phase_LowPWM_101 | Выбираем канал, он привязан к фазе электродвигателя и открываем нижний ключ с шимом, а верхний прямой закрыт | Channel1 |
HALL_CBA_011 | Выбор диспозиции ключей инвертора для CBA 011 | ||
Закрыть фазу, номер канала | Phase_Closed_011 | Каждому каналу назначена фаза электродвигателя, все ключи этой фазы закрыты | Channel1 |
Открыть верхний ключ, номер канала | Phase_High_011 | Выбираем канал, он привязан к фазе электродвигателя и открываем верхний ключ, на инверсном выводе 0 | Channel3 |
Открыть нижний ключ, номер канала | Phase_LowPWM_011 | Выбираем канал, он привязан к фазе электродвигателя и открываем нижний ключ с шимом, а верхний прямой закрыт | Channel2 |
нет