Перейти к публикации

Построения кривой по уравнению. Проблемы и решения.


Рекомендованные сообщения

Уважаемые знатоки! Добрый день.

Столкнулся с проблемой. Сам справиться не могу. Прошу помощи.

Суть проблемы:
1. Есть два сплайна заданных параметрическими уравнениями. По законам математики концы сплайнов должны быть касательными к вертикальной прямой. В принципе, без увеличения изображения, визуально кажется, что так оно и есть, но при увеличении обнаруживаются непонятные загогулины. Собственно помощь нужна в понимании откуда берутся эти загогулины и как от них избавиться.
Цель создания таких сплайнов - обеспечить движение "ролика" по кривой, образованной этими сплайнами и отрезком касательной прямой, соединяющей их (сплайны). Естественно, пока присутствуют загогулины ролик не может двигаться по таким траекториям т.к. радиус ролика больше, чем радиусы загогулин.

2. Как добиться строгого сохранения заданных параметрически сплайнов при выполнении команды "Сплайн - Разместить". Малейшее изменение радиусов приведет к недопустимому изменению траектории движения роликов.

 

В архиве исходный файл (V. 2014)/

Заранее благодарю откликнувшихся!

Сплайны загогулины.rar

post-43315-0-22014500-1401525452_thumb.jpg

post-43315-0-50256400-1401525462_thumb.jpg

post-43315-0-40466200-1401525507_thumb.jpg

post-43315-0-96788000-1401525514_thumb.jpg

post-43315-0-63169000-1401525529_thumb.jpg

post-43315-0-16635200-1401525549_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах


@@starij59, отличный вопрос и отлично задан.
 
Если немного продолжить Ваши кривые, то увидим, что t=1 для обоих кривых -- точка разрыва кривизны (в этой точке существует сразу две производных, смотря с какой стороны подходить к этой точке).
16ea71708553d848119bdaa033f4d133.png9c573a2e328e7690dceb78d5a5a267c0.png
 
Похоже, что солид, вычисляя график функции, строит не просто точки, затем соединяя их сплайном, но и в каждой точке вычисляет производную для задания касательной сплайна. В данном случае это вышло ему боком, т.к. по причинам неведомым в точке t=1 он выбрал второе, "неверное" значение производной. Отсюда и эти "загогулины". Кстати, построить эти кривые для значений t от 0 до, скажем, 2 тоже не получится -- SW в панике от негладких кривых)
И традиционно солид не предоставляет никаких методов контроля за количеством точек в кривой / степенью соединяющего полинома. Ведь нужно добавлять что-то новое в SW2025..
 
Метод решения -- рассчитать достаточное кол-во точек кривой в мат. пакете или экселе, а затем импортировать в солид как кривую по точкам. Ниже сравнение методов: слева кривая по уравнению, справа -- по импортированным точкам. Файл SW2013.
 
971abf59a3628b494de3858fa7b90a9a.png

615d77ce98bc157a13bc88c98a21660c.png783d24ef8a4366f77ddbd9b3116c3042.png

Ссылка на сообщение
Поделиться на других сайтах
Метод решения -- рассчитать достаточное кол-во точек кривой в мат. пакете или экселе

Есть другой способ: отредактировать исходное уравнение так, чтобы подобных проблем не было.

Ссылка на сообщение
Поделиться на других сайтах

Есть другой способ: отредактировать исходное уравнение так, чтобы подобных проблем не было.

Можно подробнее? И применительно к данному случаю.

Ссылка на сообщение
Поделиться на других сайтах
Можно подробнее? И применительно к данному случаю.

Чего подробнее? Написать сразу новую формулу? Так это работа автора темы, а не моя.

Я не знаю что там за формула. Я не знаю откуда она получена - из светлой головы автора или из результатов расчёта какой-то программы. Я не знаю каково назначение этой кривой.

Вот главные подробности, за которыми надо обращаться не ко мне, а к автору.

Изменить формулу - это математика. Как её изменить - это пусть автор решает сам. Или он в своей светлой голове что-то подправит, или подправит расчётную программу или ещё чего.

А может, просто заменит эти кривулины параболами или дугами.
Это не моя конструкция, не моя идея. Это всё на совести автора.

Ссылка на сообщение
Поделиться на других сайтах
Можно подробнее?

Нельзя, это очередной "лишь бы ляпнуть" пост. Пора бы уже привыкнуть. 

Ссылка на сообщение
Поделиться на других сайтах

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

Я не даю готовых решений. Я даю идею как решить проблему.

Использовать эту идею или нет - это пусть решает тот, кто в этом заинтересован.

Ссылка на сообщение
Поделиться на других сайтах

@@starij59, отличный вопрос и отлично задан.

 

Если немного продолжить Ваши кривые, то увидим, что t=1 для обоих кривых -- точка разрыва кривизны (в этой точке существует сразу две производных, смотря с какой стороны подходить к этой точке).

 

Похоже, что солид, вычисляя график функции, строит не просто точки, затем соединяя их сплайном, но и в каждой точке вычисляет производную для задания касательной сплайна. В данном случае это вышло ему боком, т.к. по причинам неведомым в точке t=1 он выбрал второе, "неверное" значение производной. Отсюда и эти "загогулины". Кстати, построить эти кривые для значений t от 0 до, скажем, 2 тоже не получится -- SW в панике от негладких кривых)

И традиционно солид не предоставляет никаких методов контроля за количеством точек в кривой / степенью соединяющего полинома. Ведь нужно добавлять что-то новое в SW2025..

 

 

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

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

Ссылка на сообщение
Поделиться на других сайтах

Огромное всем спасибо за отклик.

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

А формула выведена моим другом (достаточно сильным в математике) из формулы эллипса к данным конкретным (потребным) условиям.

 

Задача усложняется еще и тем, что по заданной кривой должны одновременно двигаться 2 ролика...

Если интересно, то в результате должно получиться движение 2-х роликов по одной траектории см. файл (упрощенно).

Форум.zip

Ссылка на сообщение
Поделиться на других сайтах

Прикрепленные файлы

Увы, не у всех тут SW2014. Так что лучше в нейтральном формате и/или картинки)

Расскажите подробнее про задачу, как определялось движение роликов. Может, возможно сразу задать это движение и получить в моушене нужную траекторию с заданной точностью.

 

 

Есть другой способ: отредактировать исходное уравнение так, чтобы подобных проблем не было.

С уравнением тут все в порядке. Не в порядке только способ, каким солид строит кривую по этому уравнению.

 

Кстати, интересно, как Крео или NX построят такую кривую.

Иногда мне кажется, что DS дает разнарядку в подразделение, занимающееся SW: "Так, этот функционал не развивайте. Сюда засуньте пару багов. И сюда один. Чтобы клиент помнил, что сила -- она в Катии, брат!"

Ссылка на сообщение
Поделиться на других сайтах
С уравнением тут все в порядке.

 

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

Ссылка на сообщение
Поделиться на других сайтах
Кстати, интересно, как Крео или NX построят такую кривую.

Напиши уравнения, запихну их в Крео.

У NX функционал работы с математикой посильнее. Это обсуждалось на примере построения профиля NACA по уравнению.

Ссылка на сообщение
Поделиться на других сайтах

Напиши уравнения, запихну их в Крео.

x(t) := -(110+sqrt(abs(1-t*t)*1600))*cos(pi*t/3)

y(t) := (110+sqrt(abs(1-t*t)*1600))*sin(pi*t/3)

0 <= t <= 1

 

Опционально: 0 <= t <= 1.08

 

С отображением кривизны, если можно.

Ссылка на сообщение
Поделиться на других сайтах

 

Напиши уравнения, запихну их в Крео.

x(t) := -(110+sqrt(abs(1-t*t)*1600))*cos(pi*t/3)

y(t) := (110+sqrt(abs(1-t*t)*1600))*sin(pi*t/3)

0 <= t <= 1

 

Опционально: 0 <= t <= 1.08

 

С отображением кривизны, если можно.

 

Крео не хочет использовать в уравнении функцию abs (хотя такая функция в Крео есть).

Честно говоря, я тоже не вижу смысла её использовать в заданном интервале.

Результат без abs с анализом кривизны на картинке.

В интервале до 1,08 Крео отказался строить кривую - пишет возможна ошибка в вычислении.

 

Пропорции несколько отличаются от картинок из Солида.

post-3189-0-79952600-1401708830_thumb.png

Ссылка на сообщение
Поделиться на других сайтах

Не понял как теперь прицепить свою картинку. Предлагает ввести ссылку. Что за фигня?

Ага. Все забыл.....Надо не иконку жать, а внизу "прикрепить файлы".

Ссылка на сообщение
Поделиться на других сайтах

 

Не понял как теперь прицепить свою картинку. Предлагает ввести ссылку. Что за фигня?

Ага. Все забыл.....Надо не иконку жать, а внизу "прикрепить файлы".

 

У меня это было за пределами экрана :)

Почему вверху нет этих кнопок?

Ссылка на сообщение
Поделиться на других сайтах

Крео не хочет использовать в уравнении функцию abs (хотя такая функция в Крео есть).

 

Неа, без abs не тот фасон. Не тот стиль. Другой жанр.

Без abs и солидворкс на ура справляется.

Нет, не справляется. Только от 0 до 0,9999...

 

Речь сейчас об идеологии построений по уравнениям, а не "как ТС решить его задачу".

Похоже, что Крео сразу понимает, что кривая уж больно кривая. А солид думает: "А, справлюсь!", а потом выдает лажу)

 

Пропорции несколько отличаются от картинок из Солида.

 

Видимо, потому, что это совсем уже другая функция))

Ссылка на сообщение
Поделиться на других сайтах
Неа, без abs не тот фасон. Не тот стиль. Другой жанр.

Может, я уже забыл математику, но, на сколько я помню, для ВЕЩЕСТВЕННОГО положительного числа его абсолютное значение равно самому этому числу. А в диапазоне 0-1 это число остаётся положительным. Вроде, комплексных чисел здесь не появляется.

Так что фасон в данном случае не меняется.

Ссылка на сообщение
Поделиться на других сайтах
Так что фасон в данном случае не меняется.

 

 

Речь сейчас об идеологии построений по уравнениям, а не "как ТС решить его задачу".

 

И осталось выяснить "почему пропорции другие получились". Может, множитель какой забыли по одной из осей? Или уравнение для профиля НАСА по-привычке ввели?

 

Если можно, вытяните поверхность по этой кривой и выложите в нейтральном формате.

Ссылка на сообщение
Поделиться на других сайтах

И осталось выяснить "почему пропорции другие получились".

 

Выяснил. Градусы-радианы.

Вот откорректированный вариант. Зигзаги на графике кривизны - это так Крео строит линию по уравнению. Подобное было и на наковском профиле. Возможностей как-то повлиять на это (как в NX) нету, к сожалению.

Диапазон до 1.08

А вот это в диапазоне до 1.

post-3189-0-39669300-1401710799_thumb.png

post-3189-0-83274800-1401710937_thumb.png

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • ДОБРЯК
      Хотите еще и матрицу масс изменить. :=) И сколько килограмм воды будете присоединять?  Опыт правильного моделирования, опыт расчета таких конструкций накапливается десятилетиями. Маловероятно, что кто-то на форуме будет вам объяснять как правильно моделировать, какие КЭ использовать, какие граничные условия задавать и т. д. Вы же всегда уклоняетесь от разговора на эти темы, даже для простых моделей.  Даже если перейдете на Ансис и не разберётесь в том, что он считает это не поможет вам написать грамотный отчет и объяснить грамотному заказчику, что вы там насчитали. Считает расчетчик, а программа это инструмент. Это только в рекламе пишут, что купите программу трехмерного моделирования, сделайте трехмерную модель, потом нажмите одну кнопку и на обычном игровом компьютере все посчитаете. Только в жизни все немножко иначе...:=)
    • Jesse
      Вот что у Биргера: Центробежные силы и индуцированный гироскопический момент зависят от квадрата частоты вращения вала   Хотя уже сама критическая частота зависит только от момента инерции колеса (альфа, бэта, гамма - это прогибы, углы поворота и прочая шелуха), т.е. частота вращения в формулу не входит, а всё определяется только моментом инерции Jm Ну у него рассматривается простая одномассовая система (фактически грузик на пружинке). Думаю поискать публикации.. мб где то раскопали аналитическую зависимость первой и высшей СЧ от частоты вращения для сложных систем. Хотя если выяснится что зависит,  всё равно обоснование придумывать придётся.  Эхх...
    • Fedor
      https://www.litres.ru/book/v-n-faddeeva/vychislitelnye-metody-lineynoy-algebry-65999878/  Ну и классику жанра :) 
    • Jesse
      4000 об/мин при наружном диаметре колеса 380 мм. Думаете, на больших оборотах вилка всё равно может разойтись и могут появиться гироскопические эффекты? Даже несмотря на вышеприведенные массово-инерционные оценки и расположение опор?   да я влияние престресс (вращение) особо не увидел... Думал обычным модальником прогнать, Ланцошом (он пошустрее).   Ещё мои раздумья направлены в сторону присоединённой массы воды, что по идее должно занижать частоты. Хотя для такого массивного вала как у меня даже на это дело можно забить, наверно...
    • Handrusik
      Maxx2000 - благодарю Павлуха - это не фриланс Утомлённый солнцем - приятно, что меня помнят
    • Борман
      Я так понимаю, что обороты не особо большие. ДК - это чисто высокооборотистая тема.   Просто мысли вслух... Если вилка будет сильно расходится, то всегда будет точка пересечения любого луча с кривой BW. Причем точка будет на меньших оборотах по сравнению с обычным престресс-модальником. Какие дальше действия ? С чем тут нужно дополнительно бороться по сравнению с тем, с чем нужно было бы бороться по результатам обычного престресс-модальника Если вилка не сильно расходится (от кривой обычного престресс-мобальника), то смысла стоить строгую ДК большого нет.    
    • boomeeeer
      На сименсе параметрами настраивается многое, что связано с менеджером иснструмента. Вызов возможен как по номерам, так и по именам инструментов. Через равно вроде как по имени вызывается (Т="имя"), а по номеру можно было, например, Т1 M6, а первый корректор подтянулся бы автоматически. И не всегда М6 на смену. Производитель мог нагородить чего угодно. Параметры надо смотреть
    • Den4ik85
      P.S этой ошибки не было при запуске,она возникла при выполнении команды смены инструмента "T=.." d1m6. (так учили на курсах) возможно,не тот номер ввел или не соответствовало название инструмента его номеру?
    • boomeeeer
      @Den4ik85 Подключаться к контроллеру и искать цепочку формирования сигнала ошибки DB2.DBX183.0. Возможно один из индуктивных датчиков на подсчёт ячеек магазина вышел из строя
    • boomeeeer
      G108 C0 - Включить шпиндель №0 в режим оси C G90 C180 - Переместить ось С в позицию 180 градусов
×
×
  • Создать...