Моделирование резонатора. Управление CST MWS с помощью Matlab Создание проекта в CST Microwave Studio

Штрафы

Пример реализован в версии CST Microwave Studio 2015

Введение

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

Исследуемый макет обладает симметрией вращения, поэтому для его построения используется вращение поперечного сечения вокруг собственной оси. Более того, в резонаторе присутствует зеркальная симметрия (в плоскости, перпендикулярной его образующей), поэтому достаточно будет создать только половину профиля вращения, а затем зеркально отобразить её для получения полной модели. После построения геометрии сам анализ не представляет особой сложности. Результатом моделирования станет получение собственных мод резонатора, а также вычисление добротности.

Построение геометрии

Создание нового проекта

После запуска CST STUDIO SUITE появится стартовое окно, в котором представлен список ранее открытых проектов, а также доступна возможность создания шаблонов проекта для наиболее часто моделируемых задач. Сначала проще всего создать и сохранить шаблон с основными настройками, наиболее подходящими для вашей области моделирования. Для этого нажмите на кнопку Create Project в разделе New Project.

Затем необходимо выбрать ту область, к которой относится Ваша решаемая задача: в данном случае выберите Microwaves & RF.

Для поиска собственных мод высокорезонасных структур, а также анализа фильтров укажите путь Circuits & Components | Waveguide & Cavity Filters | Eigenmode .

Выбранный шаблон по умолчанию установил единицы измерения на мм и ГГц, фоновый материал на идеальный электрический проводник (PEC) и все граничные условия на электрические стенки.

После нажатия кнопки Next выбранные настройки шаблона отобразятся на финальной сводной странице. На этом этапе вы можете переименовать название шаблона.

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

Обратите внимание: При повторной попытке открыть новый проект вы увидите, что недавно созданные шаблоны отображаются в разделе Project Templates. Если исследуемая область моделирования входит в рамки настроек ранее заданного шаблона, вы можете выбрать его, и CST MICROWAVE STUDIO запустится автоматически с необходимыми основными настройками. Не требуется каждый раз задавать новый шаблон проекта для похожих задач.

Обратите внимание: Все настройки, заданные шаблоном, могут быть изменены в дальнейшем, при построении модели. Например, единицы измерения изменяются в диалоговом окне Home: Settings | Units , а настройки вычислителя могут быть выбраны в выпадающем списке Home: Simulation | Start Simulation.

Настройка рабочей плоскости

Перед началом построения резонатора следует задать размер рабочей плоскости сравнимым с габаритами резонатора. Настройки рабочей плоскости доступны в диалоговом окне: View: Visibility | Working Plane | Working Plane Properties.

Наибольший размер модели равен 215 мм, поэтому размера рабочего поля равного 250 мм будет вполне достаточно. Введите это значение в графе Size и установите шаг растеризации плоскости равным 10мм для того, чтобы создать достаточно мелкую сетку на рабочей плоскости. Обратите внимание, что все размеры задаются в миллиметрах, поскольку текущие единицы измерения в CST установлены на мм (отображены в строке состояния).

Построение фигуры вращения.

После выполнения предварительных настроек приступим к созданию фигуры вращения. Сечение резонатора представляет собой простой многоугольник, поэтому не следует использовать инструменты построения кривых (Curve tools). Для фигур с сечением в виде многоугольника удобнее использовать инструмент: Modeling: Shapes | Extrusions | Rotate .

Поскольку поверхность для вращения не была выбрана заранее, инструмент автоматически запустится в режиме описания полигона, что потребует ввода вершин многоугольника. Вы можете задать координаты на рабочей плоскости двойным нажатием левой кнопки мыши или численным вводом координат. Поскольку последний вариант более удобен, для ввода координат нажмите клавишу Tab и в появившемся диалоговом окне задайте точки. Координаты вершин представлены в таблице ниже (в случае ошибочного ввода вы можете удалить предыдущие точки нажатием клавиши Backspace):

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

В этом диалоговом окне вы можете проверить введенные координаты. В случае совершения ошибки значения меняются простым выбором необходимого поля (двойным нажатием левой кнопки мыши) и изменением координаты в нем.

Также вы можете присвоить построенному объекту свойства необходимого материала (в разделе Material), а также добавить объект в группу (в разделе Component). В рамках этого примера настройки, установленные по умолчанию, не требуют изменения (материал: Vacuum, группа: component1).

Обратите внимание: Использование групп (выпадающий список Component) позволяет объединить несколько объектов в особые группы (присвоение к определенной группе задается в разделе component), вне зависимости от свойств материалов этих объектов. В этом примере удобно использовать только одну группу.

В итоге остается только присвоить имя построенному объекту (в разделе Name) и нажать Ok для построения 3D элемента.

Инструменты выбора и построение фасок .

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

На первом этапе построения фаски следует выбрать ребро для обработки с помощью инструмента интерактивного выбора Modelling: Picks (или с помощью клавиши S). При активации режима выбора доступные для выделения вершины и ребра подсвечиваются, что позволяет без особых трудностей выбрать необходимую грань двойным нажатием левой кнопкой мыши. После выбора ребра вы можете изменить точку обзора структуры с помощью инструментов просмотра . В некоторых случаях удобнее использовать инструмент выбора в каркасном режиме просмотра View: Visibility | Wire Frame (или комбинация клавиш Ctrl+w).

После выбора необходимого ребра модель должна выглядеть следующим образом:

В случае ошибочного выбора вы можете удалить все ранее выбранные элементы с помощью команды Modeling: Picks | Clear Picks (или с использованием клавиши d).

Теперь необходимо создать фаску вдоль выбранного ребра. Для этого используйте инструмент Modelling: Tools | Blend . Откроется диалоговое окно, в котором укажите радиус скругления равным 15мм. Для подтверждения нажмите Ok, в результате чего модель будет выглядеть следующим образом:

Зеркальное отображение для построения полного резонатора

Для построения полной модели необходимо отобразить полученную половину в торцевой плоскости.

Сначала следует выбрать плоскость для отображения. Для этого активируйте режим выбора Modeling: Picks | Picks , в котором выберите торцевую плоскость резонатора.

Теперь необходимо активировать инструмент трансформации для построения зеркальной копии Modeling: Tools | Transform | Mirror .

В появившемся диалоговом окне, согласно положению выбранного торца, автоматически заданы координаты плоскости и направления отображения. Операция трансформации создает новый объект без сохранения исходного. Поэтому необходимо построить копию, для чего используйте опцию Copy. Затем объедините получившиеся объекты, для чего используйте опцию Unite. Для завершения построения нажмите клавишу Ok. В результате вы получите следующую структуру;

Настройки вычислителя

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

Установка частотного диапазона

По оценке этого резонатора первые пять резонансных частот будут расположены в диапазоне до 1,5 ГГц. Откройте диалоговое окно настроек частотного диапазона Simulation: Settings | Frequency . В нем установите значение максимальной частоты, равное 1,5 (обратите внимание, что единицами измерения частоты являются ГГц; это отображено в строке состояния).

Нажмите Ok для подтверждения внесенных изменений.

Граничные условия и симметрии

Перед началом моделирования всегда необходимо проверять установленные граничные условия. Для этого воспользуйтесь режимом, активируемым с помощью Simulation: Settings | Boundaries . При этом используемые граничные условия отобразятся в рабочем окне. Согласно установленному шаблону все граничные плоскости установлены на электрические стенки, что эквивалентно окружению идеальным проводником. Текущие настройки, установленные по умолчанию, соответствуют моделируемой задаче.

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

Для доступа к настройкам симметрии необходимо открыть вкладку Symmetry Planes в диалоговом окне граничных условий.

Устанавливая магнитные плоскости симметрии вдоль XY и XZ, вычислитель будет рассчитывать только те типы волн, у которых отсутствует тангенциальная составляющая магнитного поля вдоль выбранных плоскостей (или вынуждая электрическое поле быть тангенциальным указанной плоскости). Дополнительно можно установить электрическую плоскость симметрии вдоль YZ, что обязывает к наличию нормальной компоненты электрического поля к этой плоскости.

После примененных настроек модель будет выглядеть следующим образом:

Нажмите Ok для внесения изменений.

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

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

Поиск собственных мод с использованием тетраэдрального разбиения

Вычислитель собственных мод в CST MICROWAVE STUDIO позволяет использовать как тетраэдральную, так и гексаэдральную сетку для дискретизации расчетной области.

Откройте диалоговое окно вычислителя собственных мод Home: Simulation | Start Simulation . Тетраэдральное сеточное разбиение установлено по умолчанию выбранным шаблоном:

Для запуска расчета нажмите кнопку Start. Вычислитель на первом этапе моделирования приступит к построению тетраэдральной сетки. Выберите папку Mesh Control в дереве проекта для просмотра конечного разбиения.

Отображение собственных мод и расчет добротности

Отображение собственных мод

Результаты расчета мод резонатора доступны в папке дерева проекта 2D/3D Results. Компоненты электромагнитного поля каждой моды сохранены в папках Mode N, где N – номер необходимой моды.

Для просмотра электрического поля 1−й моды выберите папку 2D/3D Results | Modes | Mode 1 | e. Результаты будут представлены с помощью векторов напряженности поля, как показано на рисунке выше.

Обратите внимание: Амплитуда поля всегда нормирована на 1Дж запасенной энергии в моде.

Во многих случаях необходимо отобразить распределение поля в определенной плоскости. Для этого переключитесь в режим 2D визуализации с помощью команды 2D/3D Plot: Sectional View | 3D Fields on 2D Plane . Теперь картина распределения поля будет выглядеть следующим образом.

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

Расчет добротности

Из полученного распределения поля легко получить значение собственной добротности резонатора. Для этого необходимо открыть диалоговое окно анализа потерь Post Processing: 2D/3D Field Post Processing | Loss and Q .

В этом диалоговом окне необходимо задать только проводимость металла окружения. По умолчанию она установлена на проводимость меди (5.8e7 см/м).

Для изменения величины проводимости необходимо выбрать первую строку и нажать кнопку Modify, которая откроет следующее диалоговое окно:

Для этого примера задайте проводимость серебра (6,16 см/м) в графе Conductivity. Для внесения изменений нажмите OK.

Последним шагом в поиске добротности станет выбор необходимой моды в выпадающем списке H-Field data. Выберите Mode 1 для поиска добротности 1−й моды. Нажмите кнопку Calculate для получения результата.

Величина добротности основной моды равна .

Расчет потерь, как в объеме диэлектрика, так и поверхностных выполняется на этапе постобработки. Вычисление объемных потерь основано на распределении электромагнитного поля внутри исследуемого элемента, а также на свойствах материала заполнения: тангенса угла диэлектрических потерь tan(δ) или проводимости, соответствующей tan(δ):

Несмотря на то, что потери рассчитываются на этапе постобработки, свойства материала необходимо задать до выполнения моделирования, поскольку параметры используемых диэлектриков влияют на результаты расчетов временным , частотным или вычислителем (для последнего необходимо активировать учет диэлектриков при моделировании). Следует отметить, что в солвере можно указать учет всех диэлектриков только на этапе постобработки, при расчете потерь и добротности. В любом случае, диэлектрический объект необходимо описать до выполнения моделирования для дальнейшего расчета потерь и добротности с помощью метода возмущений.

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

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

Возможность вычисления потерь доступна после завершения этапа моделирования. Материалам, заданным изначально идеальным электрическим проводником PEC, присваивается конечная проводимость и проницаемость для конкретизации потерь (описывается в диалоговом окне Q-Factor Calculation). Такое присвоение можно реализовать для объектов, выполненных из PEC, фоновому материалу и материалу в граничных плоскостях. В отличие от диэлектриков все свойства материала, связанные с потерями в проводящем окружении, задаются на этапе постобработки.

Поиск собственных мод с использованием AKS метода.

Расчет собственных мод с автоматическими настройками вычислителя.

Откройте диалоговое окно настроек E – солвера Home: Simulation | Start Simulation . В нем измените тип сеточного разбиения на гексаэдральное.

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

Благодаря технике поверхностного сеточного разбиения Perfect Boundary Approximation (PBA), число используемых элементов сеточного разбиения сравнительно малое (около 7700). В действительности это приводит к составлению системы уравнений с 23100 неизвестными (приблизительно). На современных ПК решение такой системы займет несколько минут.

После завершения работы вычислителя резонансные частоты первых десяти мод отобразятся в окне результатов:

Точность моделирования всех указанных мод находится на высоком уровне. В общем и целом – результаты с точностью лучше считаются достоверными.

Для просмотра времени, потраченного на моделирование, откройте лог-файл с помощью Simulation: Solver | Logfile . Прокрутите вниз открывшееся окно для получения информации о времени счета (результат может изменяться в зависимости от мощности ПК):

Оптимизация производительности в случае последовательных вычислений

До сих пор поиск собственных мод резонатора выполнялся за малое время счета. Однако в случае проведения параметрического свипирования ускорение работы вычислителя заметно отразится на общем времени моделирования.

Настройка производительности в данном случае выглядит сравнительно просто: вычислитель может воспользоваться оценкой частоты наивысшей исследуемой собственной моды. Е – солвер автоматически определяет эту частоту по результатам предыдущих вычислений и записывает её величину в лог-файл. Данная информация содержится перед значением времени счета:

Теперь выполните расчет собственных мод с учетом оценочной частоты. Для этого откройте диалоговое окно настроек вычислителя Home: Simulation | Start Simulation . В нем обратитесь к диалоговому окну дополнительных настроек вычислителя, нажав кнопку Specials:

После получения оценочной частоты наивысшей моды (в примере 1,73153 ГГц) вы можете ввести это значение в поле Guess. Если эта величина неизвестна, то необходимо указать нулевое значение, установив солверу автоматическую оценку данной частоты. После нажатия кнопки Ok перезапустите моделирование, нажав Start.

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

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

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

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

Повышение точности

Погрешность поиска собственных мод резонатора вызвана двумя источниками:

Погрешность итерационного Е – вычислителя.

Неточности дискретизации исследуемого пространства.

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

Точность численных методов вычислителя собственных мод

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

Минимизировать появление ошибок такого рода можно с использованием корректной оценочной частоты наивысшей моды или с применением большего числа итераций Е – солвера. Использование более пяти итераций, как правило, не влияет на получаемые результаты. В ряде случаев волны высшего типа рассчитываются с меньшей точностью, чем моды низшего порядка. Поэтому рекомендуется указывать большее число волн, чем вы исследуете, для повышения точности желаемых (низших) мод.

Обратите внимание: в этом примере поиск мод выполняется с помощью AKS вычислителя. В следующем разделе будет использован JDM солвер. По сравнению с AKS методом JDM не требует оценки частоты наивысшей моды, и рассчитываемые типы волн обладают установленной изначально точностью.

Влияние сеточного разрешения на точность Е – солвера.

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

В рассмотренном примере использовалось сеточное разбиение, заданное по умолчанию, и автоматически создаваемое экспертной системой. Повысить точность получаемых результатов проще всего с использованием автоматической сеточной адаптации Adaptive mesh refinement, активируемой в диалоговом окне настроек вычислителя. (Home: Simulation | Start Simulation ):

После активации адаптивного сеточного переразбиения станут доступны настройки этой техники. Нажмите кнопку Properties для доступа к ним:

Поскольку для нас представляет интерес исследование первых пяти мод резонатора, сосредоточить сеточное переразбиение необходимо именно на этих первых пяти модах, для чего в поле Number of modes to check необходимо указать 5. Для принятия внесенных изменений нажмите кнопку OK.

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

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

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

При завершении процесса адаптации сетки пользователю доступна зависимость максимального относительного отклонения резонансной частоты в двух последующих расчетах. График зависимости представлен в дереве проекта: 1D Results | Adaptive Meshing | Error:

Из графика видно, что максимальное отклонение значений резонансных частот ниже 0,14%, что отражает как высокий уровень экспертной системы построения сетки, так и причину завершения сеточной адаптации.

Графики зависимости точности вычислителя на каждом шаге переразбиения представлены папке 1D Results | Adaptive Meshing | Mode Accuracies:

Из графиков видно, что точности расчета мод на обоих этапах переразбиения весьма хорошие. Также в папке дерева проекта доступны зависимости резонансных частот на каждом шаге переразбиения: 1D Results | Adaptive Meshing | Mode Frequencies:

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

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

Расчет собственных мод с использованием JDM метода (метода Якоби-Дэвидсона)

Для поиска собственных мод в CST MICROWAVE STUDIO® вы можете использовать JDM вычислитель. Использование этого солвера рекомендуется в случаях расчета небольшого числа мод (не более 5). В рамках данного обучающего курса адаптивное разбиение будет отключено для ускорения расчета. Откройте диалоговое окно настроек гексаэдрального сеточного разбиения Home: Mesh |Global Properties : и введите значение 10 в полях Lines per wavelength и Lower mesh limit.

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

Нажмите Ok для удаления предыдущих результатов.

Как и ранее настройки вычислителя задаются в диалоговом окне Home: Simulation | Start Simulation . Из выпадающего списка Method выберите JDM и установите число рассчитываемых мод равное 5 (в графе Modes). В результате вычислитель выполнит поиск 5 мод, начиная с наименьшей резонансной частоты.

Перед запуском вычислителя вы можете настроить уровень необходимой точности расчета собственных мод, нажав кнопку Specials. Для данного примера уровня точности 1e−6 будет вполне достаточно, поэтому закройте диалоговое окно без внесения изменений, нажав кнопку Ok.

Для запуска моделирования нажмите кнопку Start. В строке состояния снова появятся индикаторы выполнения этапов моделирования (например, расчета матрицы или анализа собственных мод). После окончания расчета значения резонансных частот первых пяти мод появятся в окне сообщений.

Для просмотра времени, потраченного на моделирование, откройте лог-файл доступный в Post Processing: Results | View Logfiles | Solver Logfile. Пролистайте вниз открывшееся диалоговое окно для получения информации о тайминге (значение может отличаться в зависимости от характеристик используемого компьютера):

Время, затраченное на моделирование, сравнимо со временем AKS солвера.

Обратите внимание: по сравнению с AKS вычислителем JDM солвер не использует оценку наивысшей частоты для расчета собственных мод с установленной точностью. Как и для AKS солвера доступны картины распределения полей мод, результаты расчета добротности и поддержка сеточной адаптации.

По сравнению с AKS вычислителем JDM не поддерживает технологию TST сеточного разбиения. Более того AKS вычислитель необходимо использовать в случае расчета большого числа мод. JDM солвер используется при поиске собственных мод структур с потерями (с постоянной комплексной проницаемостью). Однако в случае расчета добротности модели с малыми потерями сначала рекомендуется выполнить моделирование без учета потерь. Это установлено по умолчанию с помощью активной опции Consider losses in postprocessing only (находится в окне настроек вычислителя). Следом, выполнить расчет добротности можно на этапе постобработки, как было описано ранее.

Подробности Опубликовано 18.11.2019

Уважаемые читатели! C 18.11.2019 г. по 17.12.2019 г. нашему университету предоставлен бесплатный тестовый доступ к новой уникальной коллекции в ЭБС «Лань»: «Военное дело» .
Ключевой особенностью данной коллекции является образовательный материал от нескольких издательств, подобранный специально по военной тематике. Коллекция включает книги от таких издательств, как: «Лань», «Инфра-Инженерия», «Новое знание», Российский государственный университет правосудия, МГТУ им. Н. Э. Баумана, и некоторых других.

Тестовый доступ к Электронно-библиотечной системе IPRbooks

Подробности Опубликовано 11.11.2019

Уважаемые читатели! C 08.11.2019 г. по 31.12.2019 г. нашему университету предоставлен бесплатный тестовый доступ к крупнейшей российской полнотекстовой базе данных - Электронно-библиотечной системе IPR BOOKS . ЭБС IPR BOOKS содержит более 130 000 изданий, из которых более 50 000 - уникальные учебные и научные издания. На платформе Вам доступны актуальные книги, которые невозможно найти в открытом доступе в сети Интернет.

Доступ возможен со всех компьютеров сети университета.

«Карты и схемы в фонде Президентской библиотеки»

Подробности Опубликовано 06.11.2019

Уважаемые читатели! 13 ноября в 10:00 библиотека ЛЭТИ в рамках договора о сотрудничестве с Президентской библиотекой им.Б.Н.Ельцина приглашает сотрудников и студентов Университета принять участие в конференции-вебинаре «Карты и схемы в фонде Президентской библиотеки». Мероприятие будет проходить в формате трансляции в читальном зале отдела социально-экономической литературы библиотеки ЛЭТИ (5 корпус пом.5512).

Подробности Опубликовано 18.11.2019

Уважаемые читатели! C 18.11.2019 г. по 17.12.2019 г. нашему университету предоставлен бесплатный тестовый доступ к новой уникальной коллекции в ЭБС «Лань»: «Военное дело» .
Ключевой особенностью данной коллекции является образовательный материал от нескольких издательств, подобранный специально по военной тематике. Коллекция включает книги от таких издательств, как: «Лань», «Инфра-Инженерия», «Новое знание», Российский государственный университет правосудия, МГТУ им. Н. Э. Баумана, и некоторых других.

Тестовый доступ к Электронно-библиотечной системе IPRbooks

Подробности Опубликовано 11.11.2019

Уважаемые читатели! C 08.11.2019 г. по 31.12.2019 г. нашему университету предоставлен бесплатный тестовый доступ к крупнейшей российской полнотекстовой базе данных - Электронно-библиотечной системе IPR BOOKS . ЭБС IPR BOOKS содержит более 130 000 изданий, из которых более 50 000 - уникальные учебные и научные издания. На платформе Вам доступны актуальные книги, которые невозможно найти в открытом доступе в сети Интернет.

Доступ возможен со всех компьютеров сети университета.

«Карты и схемы в фонде Президентской библиотеки»

Подробности Опубликовано 06.11.2019

Уважаемые читатели! 13 ноября в 10:00 библиотека ЛЭТИ в рамках договора о сотрудничестве с Президентской библиотекой им.Б.Н.Ельцина приглашает сотрудников и студентов Университета принять участие в конференции-вебинаре «Карты и схемы в фонде Президентской библиотеки». Мероприятие будет проходить в формате трансляции в читальном зале отдела социально-экономической литературы библиотеки ЛЭТИ (5 корпус пом.5512).

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

Современные тенденции в обработке данных привели радиоинженеров к повсеместному использованию для достижения своих целей мощного инструмента Mathworks Matlab . Данный пакет позволяет решать задачи цифровой обработки сигналов, моделирования ПЛИС и систем связи в целом, проектирования радиолокационных моделей и многое другое. Всё это делает Matlab незаменимым помощником практически любого радиоинженера.

Специалисты по высокоточному электродинамическому моделированию чаще оперируют другими специфическими пакетами программ, одним из которых является CST Microwave Studio . О данном продукте изложено множество статей на сайте компании «Евроинтех» . Потому оспаривать его лидирующие аспекты нет необходимости.

Стратегия

В общем случае необходимо было провести моделирование проекта в Microwave Studio в частотном диапазоне, задаваемом некоторой функцией, выполняющейся в Matlab, и последующем использованию результатов моделирования коэффициентов передачи S ij в других расчетах.

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

Было принято решение пытаться наладить управление параметрами моделирования Microwave Studio непосредственно из функций Matlab. Анализ доступной справки CST и Matlab, а также интернет-ресурсов показал, что обе программы поддерживают использование фреймворка ActiveX.
ActiveX - фреймворк для определения программных компонентов, пригодных к использованию из программ, написанных на разных языках программирования. Программное обеспечение может собираться из одного или более таких компонентов, чтобы использовать их функциональность.

Впервые эта технология была внедрена в 1996 году компанией Microsoft как развитие технологий Component Object Model (COM) и Object Linking and Embedding (OLE) и теперь она широко используется в операционных системах семейства Microsoft Windows, хотя сама технология и не привязана к операционной системе.

Из описания CST Studio следует, что любой ее компонент может выступать в качестве управляемого OLE сервера. OLE - технология связывания и внедрения объектов в другие документы и объекты, разработанная корпорацией Майкрософт. Тем самым вот оно решение Microsoft Windows, Matlab, CST Microwave Studio + технология OLE.

Теперь необходимо разобраться, как же все это реализовать в Matlab.

Базовые функции для управления CST из Matlab

Из можно выделить несколько базовых функций, необходимых для работы с ActiveX интерфейсом:

Actxserver – создать локальный или удаленный сервер;

Invoke – вызвать метод для объекта ActiveX.

Проще говоря, суть команды actxserver сводится к инициализации (открытию) программы, выступающей в качестве управляемой, invoke – к обращению к тем или иным разделам управляемой программы.

Пример:

Сst = actxserver("CSTStudio.Application") – команда привязывает к переменной «cst» управляемый с помощью OLE объект «CSTStudio.Application ». В данном случае название «CSTStudio.Application » является уникальным именем в среде ActiveX, позволяющим понять, к какой именно программе мы хотим обратиться.

Mws = invoke(cst , "NewMWS") - позволяет перемещаться между основными меню программы, в данном случае отправляет команду в переменную «cst », связанную с приложением CST Studio, на создание нового пустого файла проекта;

Invoke(mws, "OpenFile", "<Путь к файлу>") – отправляет команду на открытие конкретного файла находящегося по адресу <Путь к файлу> в только что созданной пустой вкладке, с которой связана переменная «mws»;

Solver = invoke(mws, ‘Solver’) –данная команда присваивает переменной solver обращение к вкладке решателя во вкладке проекта, связанного с переменной «mws » Microwave Studio;

Invoke(solver, "start") – данная команда обратившись к CST Studio к открытому проекту войдет во вкладку решателя и запустит расчет модели.

Если обратиться к вкладке Workspace в Matlab и посмотреть значения(Value) переменных: cst , mws , solver , можно заметить следующее:

  • Переменная cst имеет значение <1x1 COM.cststudio_application> . Это означает, что переменная cst связана с главным окном Microwave Studio, и в нем можно создавать файлы, закрывать его и т.д. Если создание файла происходит с помощью функции invoke(cst, "NewMWS") , то закрытие осуществляется командой

    Invoke(cst, "quit")

  • Переменная mws имеет значение <1x1 Interface.cststudio_application.NewMWS> . Это означает, что переменная mws связана с конкретной вкладкой проекта в главном окне CST. Во вкладке проекта можно открывать готовые проекты, сохранять и закрывать их, а также переходить к вкладкам для работы над проектом.

    Примеры команд:

    Invoke(mws, "quit") – закрыть текущий проект;

    Invoke(mws,’SelectTreeItem’,’1D Results\S-Parameters\S1,1’) – выбрать файл в древе папок рабочего пространства, таким образом можно обратиться к любому файлу из «древа». Данная функция при задании пути к файла чувствительна к регистру.

    Brick = invoke(mws, "brick ") – переходит к вкладке создания куба;

    Units = invoke(mws, "units") – переходит к окну изменения величин измерений проекта.

  • Переменная solver и переменные brick и units , созданные в предыдущем пункте, имеют значение <1x1 Interface.cststudio_application.NewMWS.solver> , <1x1 Interface.cststudio_application.NewMWS.brick> и <1x1 Interface.cststudio_application.NewMWS.units> соответственно, что означает - все эти переменные связаны с оконечным окном по заданию тех или иных свойств объектов. К примеру, при обращении к переменной brick набором команд:

    Invoke(brick,"Reset"); invoke(brick,"name","matlab"); invoke(brick,"layer","PEC"); invoke(brick,"xrange","-10","10"); invoke(brick,"yrange","-10","10"); invoke(brick,"zrange","-10","10"); invoke(brick,"create");
    Мы создадим куб размерами 20x20x20 текущих единиц проекта из материала «PEC » с именем «matlab ».

Иерархия управляемых объектов

На основе вышесказанного можно выделить некоторую иерархию управляемых элементов, которую придется соблюдать для доступа к CST Studio из Matlab.

Рисунок 1 – Иерархия управляемых элементов CST Studio

Как видно из рисунка 1, чтобы поменять какой-либо параметр в проекте необходимо: во-первых инициализировать главное окно CST Studio, во-вторых обратиться к конкретной вкладке проекта, в третьих обратиться к окну изменения свойств конкретного объекта интерфейса (вычислителя, геометрии, единиц измерения и т.д.).

Алгоритм поиска команд для управления

Если с инициализацией главного окна и вкладки проекта все просто, то набор окон для ввода и изменения параметров очень велик, и все способы обращения к ним привести в одной статье кажется невозможным. В полном объеме они доступны в справочных материалах, поставляемых с пакетом программ CST Studio Suite. Но более простым представляется следующий алгоритм поиска формата всех команд по обращению к любому месту CST Studio.

Рассмотрим предыдущий пример по созданию куба размерами 20x20x20. Создадим такой же куб, но с помощью графического интерфейса в CST Studio и найдем во вкладке Modeling кнопку History List .


Рисунок 2 – Окно вызова History List

Откроем пункт Define brick и обратимся к его содержимому и коду в Matlab, позволяющему повторить данную последовательность действий.


Рисунок 3 – Окно Define brick и код Matlab

Из рисунка 3 видно, что код в Matlab является практически копией пункта из History List . Таким образом понять к какому оконечному объекту следует обращаться после выбора вкладки проекта (после второй строки кода Matlab) можно, образовав связь между объектом интерфейса CST, в данном случае Brick , и последовательно отправить в этот объект команды прямо из History List .

Однако не все команды в History List имеют такой синтаксис. Например, задание частотного диапазона для расчета осуществляется с помощью следующей строки:


Рисунок 4 – Задание частотного диапазона в History List

Здесь опять же очевидным образом присутствует название объекта, которому следует отправлять команды – Solver . Тогда команда для изменения частотного диапазона из Matlab будет выглядеть следующим образом:

Solver = invoke(mws,"Solver"); invoke(solver,"FrequencyRange","150","225");
Сформулируем алгоритм поиска имен объектов и формата команд для управления CST Studio из Matlab:

  1. Необходимо выполнить все действия, которые хочется автоматизировать в Matlab, из графического интерфейса CST Studio;
  2. Открыть в Modeling\History List текст требуемой операции («define brick », «define frequency range » и т.д.);
  3. С помощью команд, представленных ниже, связаться с CST Studio из Matlab и открыть требуемый файл:

    Сst = actxserver("CSTStudio.Application") mws = invoke(cst , "NewMWS") invoke(mws, "OpenFile", "<Путь к файлу>")

  4. Инициализировать связь с объектом CST Studio, параметры которого необходимо изменять, по заголовку из History List с помощью команды:

    <переменная> = invoke(mws, "<Имя объекта>")

  5. Построчно ввести команды, описанные в History List для объекта:

    Invoke(<переменная>, "<команда>", "<значение1>", "<значение2>")

Данный алгоритм действий методом проб и ошибок приводит к решению задачи управления CST Studio посредством кода Matlab.

Вывод результатов анализа

После написанного выше можно уже отправить читателя разбираться дальше самому, но в самом начале статьи задача была поставлена как ввод параметров частотного диапазона из Matlab в CST и импорт результатов моделирования в виде S-параметров передачи обратно в Matlab. К тому же операции экспорта результатов в History List не отображаются.

С помощью графического интерфейса это осуществляется следующим образом:

  1. После расчета выбираем файл в «древе» папок для его отображения;
  2. 2 Экспортируем его в ASCII файл через вкладку Post Processing\Import/Export\Plot Data(ASCII) .
Теперь с помощью команд Matlab нужно осуществить то же самое.

Выше уже была упомянута команда

Invoke(mws,"SelectTreeItem","1D Results/S-Parameters/S1,1")
позволяющая выбрать необходимый файл в «древе» рабочего поля. Для вывода результатов в ASCII воспользуемся встроенной функцией CST «ASCIIExport ».
Из справки к CST для выполнения данной функции необходимо послать CST следующие команды:
export = invoke(mws,"ASCIIExport") - инициализация функции экспорта с переменной export;

Invoke(export,"reset") - сброс всех внутренних параметров на значения по умолчанию;

Invoke(export,"FileName","C:/Result.txt") - задание пути сохранения и имени файла;

Invoke(export,"Mode","FixedNumber") - выбор метода сохранения точек. FixedNumber – выводит строго заданное количество точек, FixedWidth – выводит точки через заданный шаг;

Invoke(export,"step","1001") – число точек для вывода/ширина шага;

Invoke(export,"execute") – команда на вывод.

Данный набор команд позволит вывести значения коэффициента отражения S 11 в размере 1001 точки в файл расположенный на диске C с именем Results.txt
Тем самым поставленная изначально задача была полностью решена.

Используемая литература

Потемкин, Валерий Георгиевич Введение в MATLAB / В.Г. Потемкин. - Москва: Диалог-МИФИ, 2000. - 247 с.: табл. - ISBN 5-86404-140-8
Справочные материалы, поставляемые с пакетом программ CST Studio Suite