|
|
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Вход | |||||||||||||||||||||||||||||||||
|
Раздел "Femlab"
Femlab 2.3. Руководство пользователя (перевод с английского с редакторской правкой В.Е.Шмелева): В оглавление книги \ К следующему разделу \ К предыдущему разделу 1.7.1. Построение геометрии в двумерной расчётной области Используя инструментальную панель прорисовки, можно легко создавать много различных типов геометрических объектов. Графический интерфейс автоматически назначает каждому геометрическому объекту уникальное имя. Автоматически назначаемые имена для кругов C1, C2, C3, ..., для прямоугольников - R1, R2, R3 ..., для эллипсов - E1, E2, E3 ..., для квадратов - SQ1, SQ2, SQ3 ..., для композиционных (составных) объектов - CO1, CO2, CO3 ..., для кривых Безье - B1, B2, B3 и т.д. Метки с именами появляются прямо на создаваемых геометрических объектах. В режиме Draw Mode двойной щелчок мышью по объекту приводит к развёртыванию диалогового окна редактирования его свойств (имени, координат характерных точек и др.). Уникальное имя геометрического объекта не должно содержать пробелов. Пример недорисованной гео-метрии показан на рис. 1.101.
Солидным двумерным объектом называется объект, имеющий конечную площадь. Можно дать более строгое определение: солидным двумерным объектом называется такая плоская геометрическая фигура, для любой точки которой существует полукруг или сектор конечных размеров с центром в этой точке, полностью принадлежащий этой фигуре. Солидный объект состоит из граничной и внутренней части. Иногда солидный объект имеет внутренние границы, которые разделяют его внутренние подобласти. Солидный объект всегда состоит из одной или нескольких подобластей, в которых, например, могут быть различные материальные свойства. Дополнительные точки и кривые могут управлять построением конечноэлементной сетки внутри солидного объекта, это может быть полезно для целей постпроцессорной обработки. Граница солидного объекта, включая и внутренние участки, состоит из ряда граничных сегментов. Солидный объект полностью определяется в терминах его границ (в т.ч. и внутренних), т.е. считается, что он имеет контурное представление. Например, примитивный солидный прямоугольник или солидный квадрат имеют границу, которая состоит из четырех линейных сегментов и одной подобласти. Примитивный солидный круг или солидный эллипс имеют границу, которая состоит из четырех дуг окружности или эллипса и одной по-добласти. Создание солидных объектов В этом разделе рассматриваются операции над множествами (объединение, пересечение и разность) применительно к солидным объектам. Эти операции предназначены для быстрого создания комплексных геометрических фигур. Следующие примеры показывают, как соз-дать составной геометрический объект, начиная с прорисовки примитивных объектов в GUI femlab. Пусть прикладной режим femlab уже выбран Навигатором моделей. Тогда для создания квадрата нажмём кнопку Теперь нажмём кнопку Командой меню Edit/ Select All выделим созданные геометрические объекты. После это-го можно нажать кнопку
Создать объект, изображённый на рис. 1.102, можно также и другим способом. Можно нажать на кнопку
В диалоговом окне, показанном на рис. 1.103, есть строка редактирования Set formula. Если в этой строке знак "+" заменить на знак "-" и нажать кнопку OK, то будет создан со-ставной объект, показанный на рис. 1.102. Теперь скопируем в буфер объект, изображённый на рис. 1.102, нажав клавишу Ctrl-C. Вставим из буфера копию этого объекта, нажав клавишу Ctrl-V. Он вставится с некоторым смещением. Выделим исходный объект, щёлкнув по нему мышью. Нажмём кнопку
В строку редактирования Rotation (degrees) впишем число 45 и нажмём кнопку OK. Исходный составной объект повернётся на 45 градусов против часовой стрелки. Теперь копию объекта подвинем мышью так, чтобы центр его переместился в начало координат (0, 0). Нажатие кнопки
Теперь кратко рассмотрим технологию добавления подобластей к объектам. Пусть имеется геометрический объект, изображённый на рис. 1.104. Пусть с правой стороны нужно добавить к нему эллипс с центром (1, 0), большой полуосью 0.5, малой полуосью 0.25. Если нужно нарисовать эллипс точно в режиме SNAP, то надо сначала установить параметры координатной сетки. Выполним команду меню Options/ Axes/Grid Settings. Установим пределы по x от -1.2 до 1.5651013, пределы по y от -1.2 до 1.2, не отменяя флажок Axes equal; далее в закладке Grid сбросим флажок Auto, установим шаг по x, равный 0.5 и шаг по y, равный 0.2; в строку редактирования Extra Y впишем "-0.25 0.25"; нажмём кнопку OK. Теперь нужные параметры координатной сетки установлены, и можно рисовать эллипс. Нажимаем кнопку Использование языка программирования Создание примитивных и композиционных геометрических объектов возможно непосредственно в среде MATLAB, используя функции пакета FEMLAB. Следующие примеры показывают, как создавать составные объекты, начиная с примитивных, используя язык программирования MATLAB. В среде MATLAB повторим операции, проведённые в GUI femlab. Использование языка программирования для создания геометрических объектов весьма полезно, когда требуется быстро и точно задать координаты характерных точек объектов. Созданные в рабочей области MATLAB объекты легко вставляются в GUI femlab для дальнейшего моделирования. Выполним в командном окне MATLAB следующие операторы: R1=rect2(-1,1,-1,1); % Создаём объект-прямоугольник Возможен другой способ создания композиционного объекта: CO1=geomcomp({R1,C1},'ns',{'R1','C1'},'sf','R1-C1'); Общий вид фигуры, полученной в результате выполнения этих операторов, показан на рис. 1.107.
Далее выполним следующую последовательность операторов MATLAB: CO2=rotate(CO1,pi/4,0,0); % Объект CO1 повернули на 45 градусов и присвоили CO2 Общий вид фигуры, полученной в результате выполнения этих операторов, показан на рис. 1.108.
Теперь добавим к полученному объекту эллипс (такой же, как на рис. 1.104) и изобразим то, что получится. Для этого выполним следующую последовательность команд MATLAB, в результате чего в фигуре MATLAB получим изображение созданного объекта (рис. 1.109): e1=ellip2(1,0,0.5,0.25); % Эллипс с центром в точке (1,0) и полуосями 0.5 и 0,25
Геометрические объекты можно перемещать и поворачивать, создавая тем самым новые объекты (рис. 1.110): geomplot(CO1+move(rotate(CO1,-pi/4),sqrt(2),sqrt(2))) Здесь move - функция перемещения (параллельного переноса) объекта: первый параметр - перемещаемый объект, второй и третий - x и y компоненты вектора переноса; rotate - функция поворота объекта относительно некоторого центра: первый параметр - поворачиваемый объект, второй - угол поворота в радианах, отсчитываемый против часовой стрелки.
Редактирование объектов средствами GUI В среде GUI femlab можно перемещать объекты, перемещая указатель мыши на объекте и одновременно удерживая левую кнопку мыши. Можно также изменять внутренние свойства объектов, выполняя команду Draw/ Object Properties или делая двойной щелчок левой кнопкой мыши по объекту. В результате такого щелчка разворачивается диалоговое окно редактирования свойств объекта. Пример такого окна для объекта прямоугольника показан на рис. 1.111.
прямоугольника Для разных типов геометрических объектов диалоговое окно редактирования их свойств имеет различный вид. Различие этих окон объясняется различием параметров, определяющих геометрические объекты разных типов. Так, для прямоугольника это минимальные и максимальные значения координат x и y, угол поворота и базовая точка (начальная вершина или центр). Для эллипса это координаты центра, полуоси, угол поворота и базовая точка. Для примитивных геометрических объектов набор параметров в точности совпадает с набором входных параметров соответствующей функции пакета FEMLAB. В составных объектах доступны для редактирования граничные кривые, возможно также перемещение границ. В любом случае можно редактировать имена (метки) объектов (строка редактирования Name). Существует также другой способ редактирования примитивных и составных объектов. Этот способ заключается в перетаскивании вершин мышью. Указатель мыши совмещается с вершиной, нажимается левая кнопка, указатель перемещается при нажатой кнопке, вместе с ним будет перемещаться и вершина. Изменение топологии редактируемого объекта при перемещении вершины порождает предупреждающее сообщение. Такими изменениями могут быть, например, появление новых точек пересечения границ или разделение солидного объекта. Любая операция, создающая композиционный объект, по умолчанию приводит к сохранению внутренних границ. Эти границы разделяют составной объект на подобласти. Если в результирующем объекте не нужно сохранять внутренние границы, то в диалоговом окне создания композиционного объекта (рис. 1.103) надо сбросить флажок Keep internal borders. Пусть солидный составной объект выделен. Тогда нажатие кнопки CO=split(CO1); Здесь CO1 - композиционный объект (например, такой, как на рис. 1.109); CO - массив ячеек, состоящий из объектов, полученных из подобластей объекта CO1. Если CO1 - объект, изображённый на рис. 1.109, то массив ячеек CO будет состоять из трёх объектов. Для наглядности изобразим первый и третий из них в обычной фигуре MATLAB (рис. 1.112): geomplot(CO{1}+CO{3})
Граничная технология моделирования геометрии В системе FEMLAB поддерживаются также криволинейные объекты, которые могут выполнять роль границ подобластей расчётной области. Поддерживаются следующие примитивы криволинейных объектов: линии, дуги (круговые и эллиптические), иначе называемые кривыми Безье второго порядка, а также кривые Безье третьего порядка. Составные криволинейные объекты формируются из совокупности примитивных объектов. В GUI femlab для создания таких составных объектов используется команда меню Draw/ Create Composite Object. Эта команда действует на совокупность выделенных объектов. Правила выделения изложены в описании графического интерфейса. Граничная технология предполагает явное определение границ композиционного солидного объекта. Граница определяется путём прорисовывания каждого сегмента кривой. Для примера создадим солидный объект, граница которого состоит из двух линейных сегментов и четырёх сегментов дуг. В строке показа дополнительных режимов включим переключатель SNAP (это делается двойным щелчком мыши, если переключатель был выключен). Командой Options/ Axes/Grid Settings установим шаг координатной сетки, равный 0.5 по осям x и y, сбросив в соответствующем диалоговом окне флажок Auto.
Теперь можно начать рисовать. Для этого будем пользоваться кнопками инструментальной панели прорисовки геометрии. Нажмём кнопку В GUI femlab есть возможность преобразования солидных объектов в криволинейные. Такое преобразование осуществляется командой меню Draw/ Coerce Object(s) To/ Curve или кнопкой Использование языка программирования Теперь создадим геометрический объект, изображённый на рис. 1.113, в рабочей области MATLAB, используя функции пакета FEMLAB. Выполним следующую последовательность операторов MATLAB: w = 1/sqrt(2); Переменные c1, c2, c3, c4, c5, c6 являются объектами типа curve2. Матрица-строка [1 w 1] определяет веса для рациональной кривой Безье, которая является эквивалентной дуге, представляющей собой четверть окружности. GUI femlab автоматически корректирует веса вершин так, чтобы всегда прорисовывались дуги окружности или эллипса. В Справочном руководстве это описано более подробно. Теперь создадим солидный объект типа solid2 из кривых c1, c2, c3, c4, c5: s = geomcoerce('solid',{c1,c2,c3,c4,c5,c6}); для визуализации выполним операторы geomplot(s) В результате получим картинку, изображённую на рис. 1.114.
Чтобы из этих шести кривых создать композиционный криволинейный объект, можно воспользоваться функцией geomcomp: c = geomcomp({c1,c2,c3,c4,c5,c6}); для визуализации выполним операторы geomplot(s) В результате получим картинку, изображённую на рис. 1.115.
Некоторые особенности прорисовки криволинейных объектов различных типов При прорисовке дуг (эллиптических или круговых) сегменты кривой зависят от контрольной ломаной линии. Круговая дуга рисуется, если длины отрезков контрольной ломаной одинаковы. В противном случае рисуются эллиптические дуги. Дуги - кривые Безье второго порядка с весами, которые зависят от формы контрольной ломаной. В GUI femlab веса вершин автоматически подстраиваются под форму контрольной ломаной так, чтобы создавались круговые или эллиптические криволинейные сегменты. Для подробностей см. Руководство пользователя. Для геометрического моделирования расчётной области в системе FEMLAB можно использовать рациональные кривые Безье. Кратко рассмотрим технологию создания таких криволинейных объектов в GUI femlab и вне GUI при использовании языка программирования. Все кривые в системе FEMLAB представляются в рациональной форме Безье, т.к. эта форма обладает наибольшей общностью. Рациональные кривые Безье второго порядка могут представлять все различные типы сечений конуса, включая окружности, эллипсы, параболы, и гиперболы. FEMLAB непосредственно поддерживает также рациональные кривые Безье третьего порядка, чтобы помочь пользователям создавать кривые с точками перегиба (s-образные кривые). Кривая Безье полностью определяется контрольными вершинами (иначе они называются характерными точками) и их весами. Рациональная кривая Безье n-го порядка полностью определена в терминах контрольной ломаной, состоящей из n+1 контрольных вершин и n+1 соответствующих им значений весовых коэффициентов. Конечные точки контрольной ломаной всегда принадлежат этой кривой. Изменение формы контрольной ломаной и положений её вершин приводит к изменению формы кривой. Чем больший вес имеет вершина, тем ближе к ней проходит кривая. Это простое и интуитивно понятное взаимодействие между контрольными вершинами с их весами и кривой делает рациональное представление кривой Безье весьма полезным для моделирования. Рассмотрим некоторые простые примеры. Рисование в GUI femlab Пусть кривая Безье третьего порядка имеет следующие контрольные вершины: b0 = (-1, 0), b1 = (-0.5, 1), b2 = (0.5, -1), b3 = (1, 0). Пусть веса всех вершин равны единице. Чтобы нарисовать такую кривую, нужно нажать кнопку
Теперь переместим вершину b1 в точку с координатами (-0.5, 0.4). Это можно сделать двумя способами: перетаскиванием мышью и с помощью диалогового окна редактирования свойств объекта. Первый способ: ставим указатель мыши в вершину b1, при нажатой левой кнопке перемещаем указатель в точку (-0.5, 0.4). Вместе с указателем будет перемещаться и вершина. В результате кривая преобразуется к виду, показанному на рис. 1.117.
Теперь изменим вес вершины b2. Вес w2=1 заменим на w2=7. Сделаем двойной щелчок мышью по кривой B1 или по её метке. В результате развернётся диалоговое окно Object Properties. Откроем в этом окне закладку Weights. Выделим кривую 1 в списке Curve selection. В строку редактирования weight 3 введём число 7. Диалоговое окно примет вид, показанный на рис. 1.118. После нажатия кнопки OK и закрытия окна кривая примет вид, показанный на рис. 1.119.
Использование языка программирования для создания кривых Безье Для создания и отображения объекта, такого же, как на рис. 1.116, выполним следующую последовательность операторов MATLAB: c=curve2([-1 -0.5 0.5 1],[0 1 -1 0],[1 1 1 1]); В фигуре MATLAB получится изображение созданного криволинейного объекта (рис. 1.120).
Теперь подвинем вершину № 2 (b1) в точку (-0.5, 0.4): c=change(c,2,-0.5,0.4); или иначе c=curve2([-1 -0.5 0.5 1],[0 0.4 -1 0]); В результате переменной c будет присвоена кривая, изображённая на рис. 1.117. Изменить веса контрольных вершин также можно функцией change пакета FEMLAB: c=change(c,1,[1 1 7 1]); В результате переменной c будет присвоена кривая, изображённая на рис. 1.119. Визуализировать геометрические объекты, находящиеся в рабочей области MATLAB, можно функцией geomplot. Спецификация ключевого параметра 'ctrlmode','on' означает, что нужно отобразить также контрольную ломаную. В оглавление книги \ К следующему разделу \ К предыдущему разделу |
|
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
|
||
| На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
| E-mail: | ||
| Информация на сайте была обновлена 11.05.2004 |
Copyright 2001-2004 SoftLine Co Наши баннеры |
|