реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как вычислить проекцию вектора, Помогите разобраться с геометрией
Impartial
сообщение Jan 3 2011, 17:18
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 11-06-10
Пользователь №: 57 871



Дана проекция вектора на плоскую прямоугольную систему координат X,Y.
Как вычислить проекцию этого вектора на плоскую систему координат с тремя осями А,В,С сдвинутыми на 120 градусов.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 3 2011, 17:45
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Набираете в строке запроса поисковику "векторное управление" и читаете. Вот, например, Векторное управление асинхронными двигателями. Учебное пособие. Усольцев А.А. в виде pdf.
Go to the top of the page
 
+Quote Post
Impartial
сообщение Jan 3 2011, 18:22
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 11-06-10
Пользователь №: 57 871



Я знаком с преобразованием Кларка-Парка, но там идет преобразование неподвижной системы координат во вращающуюся с привязкой к базовому вектору.
Я неправильно задал наверное вопрос.
Вот более подробно.
Есть круглая платформа угол наклона которой управляется тремя катушками расположенными под углом 120 градусов снизу платформы.
Для управление сим устройством получаем проекцию вектора на ось X,Y.
Необходимо получить проекцию этого управления на оси А,В,С.
Go to the top of the page
 
+Quote Post
Diusha
сообщение Jan 4 2011, 03:08
Сообщение #4


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Если я правильно понял вопрос (X,Y, A, B, C - в одной плоскости)

1. Считаем длину вектора: L=корень(x^2+y^2)
x,y - проекции вектора на оси Х и Y

2. Считаем угол между вектором и осью Х:
φ=arctg(y/x), при │х│>=│y│; кроме того, если x<0, то к φ надо добавить еще 180
φ=90-arctg(x/y), при │x│<│y│; кроме того, если y<0, то к φ надо добавить еще 180


3. Определяем углы между каждой из А,В,С и Х:
α≡(A ^ X)
β=α+120
γ=α+240

4. Считаем искомые проекции:
a=L*cos(φ-α)
b=L*cos(φ-β)
c=L*cos(φ-γ)

Сообщение отредактировал Diusha - Jan 4 2011, 04:25
Go to the top of the page
 
+Quote Post
SSerge
сообщение Jan 4 2011, 05:22
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Для начала предлагаю определить единичные векторы a, b и c, совпадающие по направлению с осями новых координат.
Компоненты векторов a=(ax,ay), b=(bx,by) и c=(cx,cy) в декартовой системе координат можно вычислить зная угол поворота соответствующих осей относительно оси X.
Умножаем единичный вектор i=(1,0) на матрицу поворота и получаем координаты.

Проекция одного вектора на другой считается через скалярное произведение.
Проекция вектора V = (Vx, Vy) на ось A будет V·a = Vx·ax + Vy·ay.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Impartial
сообщение Jan 4 2011, 05:44
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 11-06-10
Пользователь №: 57 871



Цитата(Diusha @ Jan 4 2011, 09:08) *
Если я правильно понял вопрос (X,Y, A, B, C - в одной плоскости)

Да, в одной.
Спасибо!
Если я правильно понял, то если если ось А не тождественна оси Х, то просто добавляем угол сдвига.

Цитата
Умножаем единичный вектор i=(1,0) на матрицу поворота и получаем координаты.


Первый раз было понятнее sm.gif

Набравшись наглости хочу спросить. А как это будет выглядеть в разрезе FPGA и Verilog?
Go to the top of the page
 
+Quote Post
Diusha
сообщение Jan 4 2011, 07:43
Сообщение #7


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Цитата(Impartial @ Jan 4 2011, 11:44) *
Если я правильно понял, то если если ось А не тождественна оси Х, то просто добавляем угол сдвига.

правильно
Go to the top of the page
 
+Quote Post
SSerge
сообщение Jan 5 2011, 12:30
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(Impartial @ Jan 4 2011, 14:44) *
Первый раз было понятнее sm.gif

Первая часть моего сообщения относилась к вопросу как вычислить векторы a, b и c.
Я почему-то решил что они тоже могут вращаться относительно осей X,Y, тогда формализм с матрицами поворота будет не лишним. Сама матрица поворота Rφ выглядит так:
cosφ -sinφ
sinφ cosφ
если вектор u получается из вектора v поворотом на угол φ, то
(ux,uy) = Rφ·(vx,vy)T
(T - это транспонирование, т.е. матрица умножается на вектор-столбец, в результате получается вектор-строка.) А то столбцы в тексте изображать не удобно sm.gif
Цитата
Набравшись наглости хочу спросить. А как это будет выглядеть в разрезе FPGA и Verilog?

Если положение осей A, B, C относительно X,Y не меняется, то компоненты векторов a, b и c постоянные и известны заранее.
Тогда всё сводится к вычислению трёх скалярных произведений V·a, V·b, V·c, всего шесть умножений на константы и три сложения.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Impartial
сообщение Jan 8 2011, 11:32
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 11-06-10
Пользователь №: 57 871



Спасибо! Разобрался
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016