КАК НАЙТИ УГОЛ МЕЖДУ ВЕКТОРАМИ


В процессе проектирования систем векторного управления двигателем переменного тока может возникнуть необходимость в информации об угле между наблюдаемым и реальным вектором. Эта информация может служить как сигнал ошибки и по ней можно корректировать расчет.

Рассмотрим два вектора:

ugol mejdu vectorami КАК НАЙТИ УГОЛ МЕЖДУ ВЕКТОРАМИ

Видим что у каждого вектора есть свои проекции на оси координат. Если нарисовать два вектора на бумаге, то угол между векторами можно найти транспортиром или радиусомером.  Устройство радиусомеров такое что может измерить и выпуклый и впуклый угол. Принцип действия и примеры радиусомеров.

Построим наблюдатель угла между векторами в системе MATLAB Simulink.

Угол между векторами находится по следующим формулам: 

ab = |a|*|b|*cos (α);

ab = a1*b1 + a2*b2;

Видим что левые части уравнений равны,следовательно равны и правые:

|a|*|b|*cos (α) = a1*b1 + a2*b2;

Отсюда косинус угла равен:

cos (α) = a1*b1 + a2*b2 / (|a|*|b|);

Для расчета необходимо знать модуль векторов |a| и |b|, который находится по следующим формулам:

|a| = sqrt (a1*a1 + a2*a2);

|b| = sqrt (b1*b1 + b2*b2);

где sqrt — вычисление квадратного корня.

Угол можно выразить через арккосинус:

α = arccos (a1*b1 + a2*b2 / (|a|*|b|));

Теперь по последней формуле построим модель наблюдателя угла между векторами:

vichisleneie ploshadi 1 КАК НАЙТИ УГОЛ МЕЖДУ ВЕКТОРАМИКак видим модель очень простая и содержит в своей структуре:

1. 7 Блоков Product (умножение);
2. 1 Блок Divide (деление);
3. 2 Блока вычисления квадратного корня;
4. 1 Блок вычисления арккосинуса;
5. 1 Блок Gain для перевода радиан в градусы;
6. Для исключения деления на ноль в частное добавляется маленькая константа.

Объединим модель в один блок и назовем его наблюдатель угла:

vichisleneie ploshadi 2 КАК НАЙТИ УГОЛ МЕЖДУ ВЕКТОРАМИ

Скачать модель наблюдателя угла между векторами в системе MATLAB Simulink