Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Аппроксимация

Тема в разделе "Общие вопросы", создана пользователем Nikonte, 2 янв 2013.

  1. Nikonte

    Форумчанин

    Регистрация:
    2 дек 2012
    Сообщения:
    478
    Симпатии:
    151
    Появилась задача определения местоположения цилиндрического объекта. Объект в плане может отличаться от круга, а представлять собой фигуру неправильной формы. Если в безотражательном режиме с нескольких точек произвести съемку этого объекта по одному из ярусов, то получится набор точек (25-30 штук). Какими средствами можно наиболее быстро построить окружность, наиболее близкую к полученным точкам?
     
    #1
  2. Верещагин

    Верещагин Модератор
    Форумчанин

    Регистрация:
    6 мар 2008
    Сообщения:
    2.359
    Симпатии:
    239
    Адрес:
    Казахстан. Петропавловск.
    В какой программе рисовать будете?
     
    #2
  3. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.293
    Симпатии:
    4.952
    Это студенческая задача или производственная?
     
    #3
  4. ak_evg

    ak_evg Супермодератор
    Команда форума Форумчанин

    Регистрация:
    21 янв 2009
    Сообщения:
    11.268
    Симпатии:
    9.108
    Адрес:
    РашаФедераша
    Я представляю, если к хирургу на операционный стол попадет пациент, и он задастся вопросом
     
    #4
  5. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.293
    Симпатии:
    4.952
    На операционный стол или на медицинский форум?
     
    #5
  6. Lex K-G

    Форумчанин

    Регистрация:
    4 июл 2012
    Сообщения:
    1.610
    Симпатии:
    1.061
    Адрес:
    οἰκουμένη
    Вопрос не праздный. Полагаю, Вы знаете, что окружность задается минимум тремя точками? Самый простой и тяжелый способ - построить десяток окружностей по разным сочетаниям точек в AutoCAD, MAPINFO, КРЕДО (что у Вас?), по ним на глаз провести как бы среднюю окружность. Вы еще пишете - объект не окружность. То есть Вам надо аппроксимировать его окружностью с какой-то целью (какой?). Для этого глазомерно решайте - то ли все точки реального объекта должны быть внутри окружности, то ли снаружи, то ли отлетать от окружности усредненно в разные стороны (Какой критерий вам нужен7). Если поясните задачу более подробно, возможно появятся более конкретные ответы.
     
    #6
  7. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    4.564
    Симпатии:
    5.059
    Подобные задачи я решаю в CREDO_DAT методом последовательных приближений.
    Точки на окружности назначаются «Исходными». Примерно в центре окружности искусственно создаётся точка-станция, с которой задаются якобы выполненные измерения расстояний (приблизительно равные радиусу окружности) до точек на окружности.
    После выполнения предобработки и уравнивания, получаю координаты центра окружности в первом приближении. Если «Исходные» расположены на окружности равномерно, то даже одного приближения может оказаться достаточно.
    Далее решаю ОГЗ от станции в центре на все «Исходные» на окружности и вычисляю среднее (уточнённое) значение фактического радиуса. Исправляю все якобы измеренные расстояния от центра до окружности на уточнённое значение радиуса.
    После выполнения предобработки и уравнивания, получаю координаты центра окружности во втором приближении. В большинстве случаев этого бывает достаточно.

    Но если требуется более строгое решение (по МНК), то можно продолжить приближения, немного изменив методику. Теперь изменять (уточнять) значение радиуса можно изменением приборной поправки C для отражателя (при этом не придётся после каждого приближения перебивать «измеренные» расстояния-радиусы, а только менять величину C).
    Теперь в ту или другую сторону изменяю поправку C, и после каждого очередного приближения (предобработки и уравнивания) смотрю оценку точности измерения расстояний. Добиваюсь получения минимальной СКО – это и будет окончательное решение.
    Координаты центра аппроксимирующей окружности будут получены из уравнивания, а фактический радиус можно вычислить путём сложения «измеренного» расстояния-радиуса с приборной поправки C.
     
    #7
  8. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.293
    Симпатии:
    4.952
    Что-то уж слишком сложно. Задача элементарно решается в ГИС K-Mine:
    1. Импорт съёмки.
    2. Описание окружностью или, если "неправильная форма" - сплайном.
    3. Редактирование.
    4. Печать.
     
    #8
  9. gjk2903

    Форумчанин

    Регистрация:
    2 май 2007
    Сообщения:
    345
    Симпатии:
    163
    Адрес:
    Планета Земля
    Оффтоп
    Скільки буде коштувати ГІС K-Mine, виробництва компанії "КРИВБАСАКАДЕМІНВЕСТ", для вирішення елементарної задачі?
     
    #9
  10. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.293
    Симпатии:
    4.952
    Я не продаю ГИС K-Mine, кстати, как и другие программы, упоминаемые ранее, и те, которые будут ещё упомянуты, применительно к данному вопросу. Эту задачу можно решить и без каких-либо программ, но уважаемый Nikonte, по-видимому, не желает отвечать на мой вопрос:
    потому обсуждаем тему пока без него.
     
    #10
  11. tsg

    tsg
    Форумчанин

    Регистрация:
    5 июн 2012
    Сообщения:
    71
    Симпатии:
    11
    Если строить именно окружность с центром в одной и той же точке, то разумно в теории действовать так:
    1. вспомнить, что уравнение окружности выглядит как (x-A)^2 + (y-B)^2 = R^2
    2. с учетом того, что есть параллельный перенос координат, всегда можно переписать формулу из п.1 в виде x^2 + y^2 = R^2
    3. перейдем в плоскую цилиндрическую систему координат, там уравнение окружности имеет вид r=const=R, где x = R cos (f); y = R sin (f) (R- радиус, f - полярный угол)
    4. с учетом того, что расстояние от окружности, которой вы хотите сделать аппроксимацию до снятой точки должно быть минимально, и в цилиндрической системе координат сие представляет просто напросто разность радиусов, то вычисляете среднее арифметическое по радиуса от центра окружности.
    5. Координаты центра окружности у вас будут вычисляться как среднее арифметическое X и Y координат точек.

    Итого алгоритм такой:
    1. Вычисляете среднее арифметическое от измеренных значений X и Y и получаете A и B - координаты центра
    2. подставляя в вычисленные A и B и пары измеренных координат X и Y получаете значения радиусов
    3. Считаете среднее значение радиуса и вуа-ля: A и B вычислены в п. 1 радиус вы только, что получили
     
    #11
    мирось и Lex K-G нравится это.
  12. Nikonte

    Форумчанин

    Регистрация:
    2 дек 2012
    Сообщения:
    478
    Симпатии:
    151
    Возникла следующая производсвенная задача (которая изначально мне кажется глупой):
    Построена дымовая труба. Допуск на вертикальность 35мм, допуск на изгиб 15мм. Все бы хорошо, да труба собрана из звеньев, которые не все имеют форму круга.
    Разность диаметров по заявлениям представителя заказчика колеблется от 0 до 20мм.
    Измеряя крен трубы стандартными геодезическими методами (прямая угловая засечка с 3 точек), я считаю невозможно зафиксировать малые величины, сравнимые с допуском, если сама труба в сечении неправильной формы.
    Я предположил, что если не искать легких путей, снять трубу в одной СК с разных точек по нескольким сечениям (в безотражательном режиме). Далее для каждого яруса найти точку, наиболее близкую к центру что мы здесь и обсуждаем) и уже по их положению судить о крене и изгибе трубы...заодно сравнив данные, полученные обычным методом.
    Данные точки имеются в Автокаде, которые экспортировались туда из кредо_дат.
     
    #12
  13. Nikonte

    Форумчанин

    Регистрация:
    2 дек 2012
    Сообщения:
    478
    Симпатии:
    151
    Строить в автокаде вариации окружностей задача долгая, а для 30 исходных точек слишком многовариантная. Потом в этом многообразии близколежащих окружностей будет ничего не понятно. Когда снимаем круглые закладные по 3-4 точкам, то тогда ДА, на глаз лепим окружность подходящего радиуса. Точки должны располагаться равномерно (как внутри, так и снаружи) от построенной в итоге окружност.
     
    #13
  14. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.293
    Симпатии:
    4.952
    Так Вам надо найти крен или виновного? Если крен, то сделайте с 2-ух стоянок во взаимно перпендикулярных плоскостях наблюдения и сдайте отчёт заказчику, а он уж пусть проявляет активность и пеняет на себя за плохой авторский надзор во время монтажа.
     
    #14
  15. tsg

    tsg
    Форумчанин

    Регистрация:
    5 июн 2012
    Сообщения:
    71
    Симпатии:
    11
    В вашей ситуации координаты оси должны быть уже известны. Окружность в каждом сегменте стройте по трем точкам, если предполагаете моделировать сечение кругом, (если не совсем кругом, я так понимаю эллипсом, то по 4-м точкам). Далее получайте координаты центра фигуры, которым моделируете сечение (круга или эллипса) и считайте разности с учетом начальных известных координат оси трубы. После для каждой пары разностей корень квадратный из (dx^2+dy^2). Ну и сие значение должно быть в рамках допуска на вертикальность и изгиб для каждого измеряемого значения.

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

    P. S. отклонение от вертикальной оси я понимаю, а вот изгиб оси для вертикальной трубы? Я так понимаю под нагрузкой от ветра (тут сложно ибо величина сложно фиксируемая), или от течения воды в реке/море/океане, или от другой "железки" которая передает нагрузку. А так, если ось начинает изгибаться, от действия сжимающей нагрузки (под собственным весом конструкции, например), то сие в называется потеря устойчивости и все рушится нафиг.
     
    #15
  16. Lex K-G

    Форумчанин

    Регистрация:
    4 июл 2012
    Сообщения:
    1.610
    Симпатии:
    1.061
    Адрес:
    οἰκουμένη
    Nikonte, теперь задача ясна. Совет с проведением окружности "на глаз" подошел бы для отрисовки топоплана, но не в Вашем случае.
    по-моему, это самый изящный способ (как сам не додумался?)
    - а этот подход - самый практичный::wink24.gif::
    - это в одном звене так гуляет диаметр? Или разность диаметров звеньев?..
    Допустим, Вы наберете по 30-ть точек равномерно по внешней поверхности каждого звена. Можно предположить, что ошибка определения центра звена составит 10-17мм... А труба ЖБ? Надо учесть неровность поверхности, точность вашего обоснования и погрешность измерений... Приближаемся к 20 мм... Думаю, что однозначно изгиб не определим, а чтобы однозначно определить крен не более 35 мм надо уверенно поймать 10 мм разницы основания и верхнего сечения трубы...
    Если уж Вы решили так серьезно подойти к вопросу, отбросив формальности, то, на мой взгляд, не надо аппроксимировать кривые контуры окружностями, а набрать по 4-8 измерений строго вертикальными рядами на всех стыках звеньев равномерно по поверхности (по паре - нижняя деталь-верхняя). Вычертить строго по точкам сплайном, соблюдая подобие округлости в Автокаде. И делать сравнение всех уровней по точкам поверхности, а не центра...::blink.gif::
    Прошу меня не бить камнями, естественно, это непростая задача в плане полевых измерений. Чтобы отстрелять строго вертикально даже 4 ряда, надо 4 раза ставить прибор во взаимно перпендикулярных плоскостях с разных сторон. Увязать станции стояния. Соблюсти оптимальные углы... А места может и не быть.
     
    #16
  17. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    4.564
    Симпатии:
    5.059
    tsg, Вы тут неплохо всё расписали про уравнение окружности и прочее. Только есть одно НО – в нашей задаче точки-то не лежат на окружности. Близко к ней, НО не на окружности. И задача в том, чтобы аппроксимировать этот набор точек некой окружностью, то есть вычислить координаты её центра и радиус.
    Увы, данный алгоритм применим только в том случае, если точки лежат строго на окружности и пары этих точек расположены диаметрально противоположно.

    Предлагаю всем желающим решить любым способом задачку, показанную на рисунке. Надо вычислить координаты центра и радиус аппроксимирующей окружности. Результаты сравним с вычисленными в CREDO_DAT.
    Побеждает тот, у кого сумма квадратов отклонений точек от окружности будет минимальной.
    Аппроксимация.jpg
     
    #17
    Lex K-G нравится это.
  18. tsg

    tsg
    Форумчанин

    Регистрация:
    5 июн 2012
    Сообщения:
    71
    Симпатии:
    11
    Согласен, упустил важную деталь, точек должно быть достаточное количество и они должны быть раскиданы равномерно
     
    #18
  19. Lex K-G

    Форумчанин

    Регистрация:
    4 июл 2012
    Сообщения:
    1.610
    Симпатии:
    1.061
    Адрес:
    οἰκουμένη
    ЮС, шобы энтузазистов прибавилось, вы можете каталог кырдинат прикрепить в текстовом файле? Распознавать растр долго, а набивать с экрана - надо второй комп включать в соседней комнате... Это тапки одевать нада::wink24.gif::
    (Пусть tsg посчитает по своим формулам, я, быть может, в КРЕДО или ТБЦ какой-нить другой способ попробую)
     
    #19
  20. ЮС

    Форумчанин

    Регистрация:
    28 фев 2010
    Сообщения:
    4.564
    Симпатии:
    5.059
    Пожалуйста.
    "Действуйте-злодействуйте!"
     

    Вложения:

    #20

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление