Перейти к содержанию
    

Matlab и FEKO или CST Microwave Studio

Пришлось таки после долгого перерыва вернуться к связке CST+Matlab (CST Microwave Studio 5+Matlab 2006b)

 

Кое-что получается

 

-открытие программы и изменение параметров

cst = actxserver('MWStudio.Application');

cst.invoke('OpenFile','C:\\GA\\Test\\test.mod');

cst.invoke('StoreDoubleParameter','L','25');

 

-запуск солвера

cst2 = actxserver('MWStudio.Solver');

cst2.invoke('Start');

 

-экспорт S11 -параметров в формате TOUCHSTONE, хотя вот что-то SetNSamples как-то непонятно работает (просто скидывается вся точки расчета)

 

cst3 = actxserver('MWStudio.TOUCHSTONE');

cst3.invoke('Reset');

cst3.invoke('FileName','c:\\results');

cst3.invoke('Impedance','50');

cst3.invoke('Renormalize','True');

cst3.invoke('SetNSamples','20');

cst3.invoke('Write');

 

 

А вот попытка аналогично вызвать

 

cst5 = actxserver('MWStudio.ASCIIExport');

 

приводит к ошибке

 

??? Error using ==> actxserver

Server creation failed. Invalid ProgID 'MWStudio.ASCIIExport'

 

Как бы вызвать все-таки объект ASCIIExport??

Поделиться сообщением


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

Demonis

 

Ваш опыт очень интересен, только насколько я знаю, нет открыто выложенных данных, как получить данные полей через COM интерфейс.

 

Работающий вариант, читать данные из бинарных файлов, которые находятся в директории Result (CST2008). Там есть как поля, так и 1D результаты. Проблема с полями возникает только в случае, если используются различные фичи типа Subgrigging, TST, так как поля в этом случае перестают быть просто 3Д матрицей.

 

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

Поделиться сообщением


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

Нашел вот второй способ управления ЦСТ из Матлаба. В самом Матлабе можно сформировать *.bas файл такого содержания

 

Sub Main ()

OpenFile("C:\GA\Test2\test.mod")

StoreDoubleParameter ("L", 50)

With Solver

.Start

End With

SelectTreeItem ("Tables\1D Results\S11dB")

With ASCIIExport

.Reset

.FileName ("c:\example.txt")

.Mode ("FixedNumber")

.Step (20)

.Execute

End With

End Sub

 

и запустить его из матлаба строкой

 

! "C:\LIBRARY\ENGINEERING\CST STUDIO SUITE 2006\CST DESIGN ENVIRONMENT.exe" -m C:\test3.bas

 

(для 5-го ЦСТ без ключа -m). Так по идее можно через родные VBA-функции добраться до любых резкльтатов (хотя в моих расчетах мне вполне достаточно S11, VSWR). Но при каждом запуске заново запускается приложение и по выполнению закрывается. А когда таких запусков свыше 1000, то слишком много времени на запуск приложения уходит.

 

В принципе сам ASCII-экспорт можно реализовать в виде макроса в ЦСТ. Вот только как его заставить выполняться после каждого расчета по типу как это делается в Template based postprocessing??? Это бы решило все проблемы

 

А может ли кто-то проверить как работает вот такой вот макрос на версии новее 2006. А то почему-то экспортируется полностью все данные, а не 20 элементов.

 

Sub Main ()

SelectTreeItem ("Tables\1D Results\S11dB")

With ASCIIExport

.Reset

.FileName ("c:\example.txt")

.Mode ("FixedNumber")

.StepX (20)

.Execute

End With

End Sub

 

UPDATE:

макрос удалось запустить камандой:

cst = actxserver('MWStudio.Application');

cst.invoke('RunMacro', 'S11_Export');

 

Так что связать Матлаб и ЦСТ более-менее получается

Поделиться сообщением


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

связать Матлаб и ЦСТ более-менее получается

 

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

 

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

Поделиться сообщением


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

CST 2008 Service Pack – Jan-18-2008 :

 

>General / Environment

 

>A DLL to read CST STUDIO SUITE™ results in MATLAB or in other external tools is available now. New Feature!

Поделиться сообщением


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

Посмотрел - полезная вещь для считывания результатов измерений.

 

Вот только доступ из Matlab к CST2008 как-то изменился. То, что работало в 2006 не работает с 2008, хотя вроде бы изменения небольшие. Можно конечно это все написать макросами в самом ЦСТ и запускать уже их, но как-то это немного в обход получается.

Поделиться сообщением


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

Свежие книжки по моделированию радаров в МАТLАВ.

 

Ваssеm R Маhаfzа, Аtеf Elshеrbеni. МАТLАВ Simulаtiоns for Rаdаr Systеms Dеsign, 2004.

Ваssеm R Маhаfzа. Rаdаr Signаl Аnаlysis аnd Рrоcеssing Using МАТLАВ , 2009.

 

См. линки в приложении

Links.txt

Изменено пользователем Jack_Profit

Поделиться сообщением


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

Свежие книжки по моделированию радаров в МАТLАВ.

 

Ваssеm R Маhаfzа, Аtеf Elshеrbеni. МАТLАВ Simulаtiоns for Rаdаr Systеms Dеsign, 2004.

Ваssеm R Маhаfzа. Rаdаr Signаl Аnаlysis аnd Рrоcеssing Using МАТLАВ , 2009.

 

См. линки в приложении

 

Спасибо за линки, только в этих книгах нет ничего о связке Matlab / FEKO и CST Microwave Studio.

Поделиться сообщением


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

Я имел в виду востребованность материала для публикации. Будет ли его кто читать - вопрос отдельный.

 

 

 

 

Читать будут, убеждён!

Если есть результат-просьба выложить.

Поделиться сообщением


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

Доброго времени суток, Вы не могли бы по подробнее описать с помощью какой команды возможно открыть проект CST из Matlab, запустить его и получить данные, с конкретным примером, желательно, а то никак не пойму что и как писать=((((

Поделиться сообщением


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

Доброго времени суток, Вы не могли бы по подробнее описать с помощью какой команды возможно открыть проект CST из Matlab, запустить его и получить данные, с конкретным примером, желательно, а то никак не пойму что и как писать=((((

 

bas_fid = fopen('c:\PROJECT\cst2008.bas', 'w');

 

fprintf(bas_fid,'Sub Main ()\n');

fprintf(bas_fid,'OpenFile("c:\\PROJECT\\vivaldi.cst")\n');

fprintf(bas_fid,'DeleteResults \n');

 

fprintf(bas_fid,'StoreDoubleParameter ("parameter1", %f) \n', par(1));

fprintf(bas_fid,'StoreDoubleParameter ("parameter2", %f) \n', par(2));

 

fprintf(bas_fid,'StoreDoubleParameter ("parameter3", %f) \n', par(3));

 

 

fprintf(bas_fid,'Rebuild \n');

 

fprintf(bas_fid,'With Solver \n');

fprintf(bas_fid,'.Start \n');

fprintf(bas_fid,'End With \n');

 

fprintf(bas_fid,'End Sub \n');

 

fclose(bas_fid);

 

 

! "C:\Program Files\CST STUDIO SUITE 2008\CST DESIGN ENVIRONMENT.exe" -m c:\PROJECT\cst2008.bas

 

Вот так все успешно работает и для CST 2010. Пути к файлам и их название, естественно, проставлять свои. parameter1, parameter2, parameter3 - это названия параметров, которые надо поменять в проекте, par(1), par(2), par(3) - это, соответственно, значение, которые вы им присваиваете из Матлаба.

 

Для считывания результата ищите в каком файле их хранит CST. Как правило формат этих файлов текстовый. Все результаты можно найти в папке Results проекта.

 

Поделиться сообщением


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

подскажите пожалуйста как формировать .bas файл?

 

Так, собственно, в моем сообщении полностью описано как формировать bas-файл. Там открывается проект, удаляются старые результаты, меняются значения переменных, обновляется геометрия и запускается transient-solver. Если нужны какие-то другие функции, то ищем их в помощи по VBA и пробуем применять.

Поделиться сообщением


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

fprintf(bas_fid,'Sub Main ()\n'); в этом месте у меня Matlab выдает ошибку, скажите, пожалуйста какие параметры необходимо указать

Поделиться сообщением


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

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

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

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

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

×
×
  • Создать...