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

 
 
 
Reply to this topicStart new topic
> Спираль, намотанная на бублик
Vokchap
сообщение Dec 19 2008, 20:22
Сообщение #1


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

Группа: Админы
Сообщений: 1 884
Регистрация: 15-07-06
Из: Новосибирск, Россия
Пользователь №: 18 835



Построил спираль, намотанную на тор.

t - переменная построения, меняется от 0 до 1
R1 - радиус спирали
R2 - радиус тора
N - количество витков







Прикрепленное изображение


Спираль круглого провиля, нужно получить профиль, близкий к прямоугольному. Идеально было бы контролировать радиус скругления на углах прямоугольника.
Go to the top of the page
 
+Quote Post
Самурай
сообщение Dec 19 2008, 22:46
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(Vokchap @ Dec 19 2008, 23:22) *
Построил спираль, намотанную на тор.

Спираль круглого провиля, нужно получить профиль, близкий к прямоугольному. Идеально было бы контролировать радиус скругления на углах прямоугольника.


Можно попробовать выполнить преобразование круга (как формообразующую основу тора) при помощи перехода к другим координатам, например артангенциальным (можно попробовать и другие нелинейные преобразования).

Вот например что получается из круга радиусом R=10 для параметра m от 1 до 10 (круг зажимается в пределах +-2 по осям x и y):

xc = 2*atan[(10*cos(2*pi*t))/m] / atan(10/m);
yc = 2*atan[(10*sin(2*pi*t))/m] / atan(10/m);

Прикрепленное изображение


Аналогично для трехмерного тора получаем следующие уравнения (формулы получены быстрым методом "научного тыка", так что, могут быть некоторые "неправильности" smile.gif ):

x = sin(2*pi*t) * [R1n*atan(R1*cos(2*pi*N*t)/m)/atan(R1/m) + R2];
y = cos(2*pi*t) * [R1n*atan(R1*cos(2*pi*N*t)/m)/atan(R1/m) + R2];
z = R1n*atan[R1*sin(2*pi*N*t)/m] / atan(R1/m);

Конечно, это наверно не самый идеальный вариант, но вроде немного похоже на то, что требуетсяsmile.gif

Сообщение отредактировал Самурай - Dec 19 2008, 23:03
Go to the top of the page
 
+Quote Post
Tanya
сообщение Dec 20 2008, 11:25
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Vokchap @ Dec 19 2008, 23:22) *
Построил спираль, намотанную на тор.

t - переменная построения, меняется от 0 до 1
R1 - радиус спирали
R2 - радиус тора
N - количество витков








Спираль круглого провиля, нужно получить профиль, близкий к прямоугольному. Идеально было бы контролировать радиус скругления на углах прямоугольника.

Непонятно, что Вы хотите получить.. и зачем.
Go to the top of the page
 
+Quote Post
Vokchap
сообщение Dec 20 2008, 22:26
Сообщение #4


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

Группа: Админы
Сообщений: 1 884
Регистрация: 15-07-06
Из: Новосибирск, Россия
Пользователь №: 18 835



Цитата(Самурай @ Dec 20 2008, 01:46) *
Конечно, это наверно не самый идеальный вариант, но вроде немного похоже на то, что требуетсяsmile.gif

Спасибо, то, что нужно, в принципе получается.

Прикрепленное изображение


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

Прикрепленное изображение


Пытался разворачивать спираль вокруг z через разложение меандра. Если не пытаться получить высокую "прямоугольность" профиля, то получается удовлетворительно, но с кол-вом членов в разложении более 100. При приближении к идеальному прямоугольнику спираль начинает сильно осциллировать на углах. Кол-во членов в ряде ограничено, в этом проблема.

Прикрепленное изображение

Прикрепленное изображение



Оптимально конечно точными выражениями описать. Самурай, по вашему рецепту хороший результат получается, как бы еще немного подогнуть вертикальные и радиальные сегменты у витка по направлению обхода, чтобы спираль была более плавная при малых радиусах на углах? Посоветуйте что ещё попробовать, пожалуйста. smile.gif


Цитата(Tanya @ Dec 20 2008, 14:25) *
Непонятно, что Вы хотите получить.. и зачем.

Что я хочу, вроде уже прозрачно. Требуется для проектирования обмоток импульсных трансформаторов. Думаю вы это сразу поняли, просто постеснялись признаться. smile.gif

Прикрепленное изображение
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Tanya
сообщение Dec 21 2008, 11:38
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Vokchap @ Dec 21 2008, 01:26) *
И радиуса в углах хорошо регулируются. Но при сильном уменьшении радиуса собственный поворот витка приходится полностью на углы профиля, т.к. внутренние и внешние сегменты витка становятся почти вертикальными, а верхние и нижние почти радиальными. Немного уродует, на картинке видно.


Пытался разворачивать спираль вокруг z через разложение меандра. Если не пытаться получить высокую "прямоугольность" профиля, то получается удовлетворительно, но с кол-вом членов в разложении более 100. При приближении к идеальному прямоугольнику спираль начинает сильно осциллировать на углах. Кол-во членов в ряде ограничено, в этом проблема.

Оптимально конечно точными выражениями описать. Самурай, по вашему рецепту хороший результат получается, как бы еще немного подогнуть вертикальные и радиальные сегменты у витка по направлению обхода, чтобы спираль была более плавная при малых радиусах на углах? Посоветуйте что ещё попробовать, пожалуйста. smile.gif



Что я хочу, вроде уже прозрачно. Требуется для проектирования обмоток импульсных трансформаторов. Думаю вы это сразу поняли, просто постеснялись признаться. smile.gif

Почти догадалась (Вам нужно аналитическое выражение в декартовых координатах?), но не постеснялась спросить...
А почему бы Вам не записать сначала... Типа - движение угол=константа*время, движение по ближней стенке , движение по верхней, по задней, по нижней. За это время угол должен повернуться на 360/число витков. Это не даст, конечно, аналитического выражения, но кусочки даст...
Go to the top of the page
 
+Quote Post
Самурай
сообщение Dec 23 2008, 20:48
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(Vokchap @ Dec 21 2008, 01:26) *
Оптимально конечно точными выражениями описать. Самурай, по вашему рецепту хороший результат получается, как бы еще немного подогнуть вертикальные и радиальные сегменты у витка по направлению обхода, чтобы спираль была более плавная при малых радиусах на углах? Посоветуйте что ещё попробовать, пожалуйста. smile.gif


Математически точное уравнение тора, которое позволило бы однозначно и независимо задавать как скругление профиля, так и углы радиальных и вертикальных сегментов витка, мне пока, к сожалению, получить не удалось, на волшебника я только учусьsmile.gif.

На самом деле, если в том методе что я предложил выше управлять степенью "арктангенциальности" по оси z независимо от осей x и y, то результат немного улучшаетсяsmile.gif.

Но наверно лучший вариант - это использовать разложение уравнений профиля тора в ряд Фурье. Только я использовал не меандр, а трапециидальную функцию по всем трем координатам. Осцилляции в точках разрыва в какой-то мере удается подавить, используя оконную функцию Хэмминга. Недостаток метода в том, что нет (или я не увидел) четкой взаимосвязи между количеством членов разложения и степени "трапециидальности" с получающимся результатом, все приходиться подбирать на "глаз" smile.gif. И, к сожалению, отсутствует возможность плавного регулирования углов сегментов витка, т.е. или строго радиальные по координате x(y), или вертикальные по координате z smile.gif.

Я прикрепил простенький скрипт для MatLabа и некоторое образцы тора для разных параметров.

Число членов разложения: 5,
коэф. задающие "трапециидальность" по осям x и y: pi/3, по оси z: pi/3
Прикрепленное изображение


Число членов разложения: 15,
коэф. задающие "трапециидальность" по осям x и y: pi/3, по оси z: pi/3
Прикрепленное изображение


Число членов разложения: 15,
коэф. задающие "трапециидальность" по осям x и y: pi/4, по оси z: pi/3
Прикрепленное изображение


Число членов разложения: 15,
коэф. задающие "трапециидальность" по осям x и y: pi/6, по оси z: pi/3
Прикрепленное изображение


Число членов разложения: 15,
коэф. задающие "трапециидальность" по осям x и y: pi/10, по оси z: pi/3

Прикрепленное изображение


Число членов разложения: 15,
коэф. задающие "трапециидальность" по осям x и y: pi/25, по оси z: pi/2.5
Прикрепленное изображение


Матлабовский скрипт
Прикрепленный файл  tor_draw_2.zip ( 659 байт ) Кол-во скачиваний: 103
Go to the top of the page
 
+Quote Post
связист
сообщение Jan 6 2009, 10:05
Сообщение #7


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

Группа: Свой
Сообщений: 154
Регистрация: 1-08-08
Из: Санкт-Петербург
Пользователь №: 39 377



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

А потом, например, перейти к прямоугольной системе координат. И такой переход делается, если мне не изменяет память, при помощи определителя Якоби.
Go to the top of the page
 
+Quote Post

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

 


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


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