demonis 0 16 октября, 2006 Опубликовано 16 октября, 2006 · Жалоба Есть ли возможность простой передачи данных из Matlab в FEKO или CST Microwave Studio и считываныя оных из результатов этих программ. Что необходимо сделать: в Матлабе планируется написание программы для оптимизации посредством генетического алгоритма, в связи с этим надо передавать значения параметров в указанные программы, а потом считывать результаты. Среди результатов интерес представляет входное сопротивлени, КНД, по возможности вид диаграммы в Е и Н плоскостях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DesNer 0 17 октября, 2006 Опубликовано 17 октября, 2006 · Жалоба В программном мире есть стандартная технология взаимодействия программ, COM Automation называется. Суть ее в том что одна программа (COM-клиент) может получить доступ к объектам и методам другой программы (COM-Server). MATLAB данную технологию поддерживает. Т. е. он может выступать в качестве COM клиента. Насколько я знаю данную технологию точно поддерживает CST, насчет FEKO не уверен. Еще ее поддерживает MWO Office. Вообще, тут много чего почитать надо. В документации по MATLAB есть пару примеров подключения к COM-Serverу. Вот такая строчка в MATLABе запускает COM server программы Microwave Office к примеру. e = actxserver('MWOapp.MWOffice'); Вобще технология стандартная и любой нормальный программист ее в принципе знает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demonis 0 17 октября, 2006 Опубликовано 17 октября, 2006 · Жалоба Может любой програмист это и знает, но я то занимаюсь разработкой СВЧ устройст. Поэтому если можно, то дайте немного дополнительной информации (только если можно в стиле "как сделать", а не голая теория для программистов). Заранее спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DesNer 0 17 октября, 2006 Опубликовано 17 октября, 2006 · Жалоба Ну тут работы прилично. Ну давайте пробовать на примере СST. Там в хелпах есть информация по написанию на VBA скриптов к CST. Так вот скрипты - это тоже самое, только надо их перелолжить на MATLAB. Имена функций и методов такие же, различия в способе их вызова и передаче аргументов. Пробуете вызвать CST из MATLAB e = actxserver('MWStudio.Application'); Ха :blink: у меня не получается. Хотя должно бы type library not found Попробуйте, если не получится, будем думать дальше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smile 0 18 октября, 2006 Опубликовано 18 октября, 2006 · Жалоба Вобще технология стандартная и любой нормальный программист ее в принципе знает. Если так, то девелоперов ЦСТ можно назвать НЕнормальными программистами. Любой кто пробовал через СОМ добратся до ЦСТ знает, что все не так просто. (не рассматриваем программы со встроенным бейсиком как Эксель от Микрософт). Грабли в том, что у ЦСТ нет публичных свойств и методов, значит надо доставать их "не публичными" методами. Это становится проблематичным, если нужно достать массив данных, как нужно Demonis. Пробуете вызвать CST из MATLAB e = actxserver('MWStudio.Application'); Ха :blink: у меня не получается. Хотя должно бы type library not found Попробуйте, если не получится, будем думать дальше. Зависит от версии ЦСТ. e = actxserver('MWStudio.Application'); для ЦСТ 5 и старше. Для новых ЦСТ вызывайте ("CSTStudio.Application") Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demonis 0 18 октября, 2006 Опубликовано 18 октября, 2006 · Жалоба Вечером попробую, работает ли это у меня. А сейчас вот возникла идея, что в принципе для успешной работы я могу ограничить себя следующими операциями: 1. Изменять из матлаба значение параметра в ЦСТ 2. Запускать расчет 3.По окончании расчета заставлять ЦСТ автоматом экспортировать необходимые данные в текстовый формат, который потом обрабатывать в Матлабе (если получится, конечно) и закрывать окно ЦСТ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demonis 0 19 октября, 2006 Опубликовано 19 октября, 2006 · Жалоба e = actxserver('CSTStudio.Application') работает. Вот среди VBA Objects нашел следующие 1. StoreDoubleParameter ( string name, double value ) Creates a new double parameter or changes an existing one, with the specified double value. 2.ASCIIExport Object Export 1D data as a ASCII file. Methods Default Settings Example Methods Reset Resets the export options to the default. FileName ( filename filename ) Sets the name of the exported file. Mode ( enum type ) Use a fixed step width or a fixed number of samples for your data export. type can have one of the following values: "FixedNumber" Fixed number of samples "FixedWidth" Fixed step width Step ( int steps / double stepwidth ) Number of steps or step width in all directions. Use the .Mode method before. StepX ( int steps / double stepwidth ) StepY ( int steps / double stepwidth ) StepZ ( int steps / double stepwidth ) Number of steps or step width in x / y / z-direction. Use the .Mode method before. Execute Performs the ASCIIExport. Default Settings FileName ("") Mode ("FixedWidth") Step (-1) Example ' The following script exports a file containing the electric field "e1" (if available) ' The file will show 9 columns: ' 3 for the positions (x, y, z) and ' 6 for the electric field vector (3 x Re/Im) ' Select the desired monitor in the tree. SelectTreeItem ("2D/3D Results\E-Field\e1") With ASCIIExport .Reset .FileName (".\example.txt") .Mode ("FixedNumber") .StepX (12) .StepY (12) .StepZ (8) .Execute End With Обьясните пожалуйста, как можно выполнять эти инструкции из Матлаба, а я уже по аналогии попробую разобраться с другими обьектами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smile 0 19 октября, 2006 Опубликовано 19 октября, 2006 · Жалоба вот возникла идея, что в принципе для успешной работы я могу ограничить себя следующими операциями: 1. Изменять из матлаба значение параметра в ЦСТ 2. Запускать расчет 3.По окончании расчета заставлять ЦСТ автоматом экспортировать необходимые данные в текстовый формат, который потом обрабатывать в Матлабе (если получится, конечно) и закрывать окно ЦСТ. Это уже ближе к реальности. Должно получиться. Теперь по поводу неявного вызова. Запусти поиск в хелпе Матлаба по слову "implicit". Там найдешь страничку по поводу СОМ. На ней буквально пару обзацев об этом, но для начала должно хватить. У меня сейчас получается открывать файл, запускать расчет и т.д. Если не разберешься, пиши, вышлю конкретный пример обращения к обьектам ЦСТ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri Potapoff 0 20 октября, 2006 Опубликовано 20 октября, 2006 · Жалоба Demonis По завершеню ваших экспериментов вы не могли бы описать все проделанное в виде статьи? Материал будет востребован. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demonis 0 20 октября, 2006 Опубликовано 20 октября, 2006 · Жалоба to Vitaliy Z. Все таки без конкретного примера обойтись не смогу. Если какой пример, то можно на Dmytro.Vasylenko*rub.de to Yuri Potapoff Сделаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smile 0 20 октября, 2006 Опубликовано 20 октября, 2006 · Жалоба Все таки без конкретного примера обойтись не смогу. Если какой пример, то можно на Dmytro.Vasylenko*rub.de ОК. Хотя в хелпе вроде все понятно написано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smile 0 20 октября, 2006 Опубликовано 20 октября, 2006 · Жалоба Материал будет востребован. Почему-то сомневаюсь. Почти два месяца назад я задавал на форуме (и не только в этой ветке) аналогичный вопрос и заинтересовавшихся не нашлось. :glare: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri Potapoff 0 20 октября, 2006 Опубликовано 20 октября, 2006 · Жалоба Я имел в виду востребованность материала для публикации. Будет ли его кто читать - вопрос отдельный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Myron 0 21 октября, 2006 Опубликовано 21 октября, 2006 · Жалоба Я имел в виду востребованность материала для публикации. Будет ли его кто читать - вопрос отдельный. Будет, если толково написано, без жаргона и не только для узкоспециализированных гуру. Считаю, что вопрос взаимодействия софта один из актуальных. Особенно пока пара компаний не поглотит всех остальных и не начнет выпускать всеобъемлющих монстров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demonis 0 23 октября, 2006 Опубликовано 23 октября, 2006 · Жалоба Кстати, как показали дальнейшие эксперементы вызов команды открытия файла в 2006 ЦСТ приводит к ошибке в Матлабе (хотя файл в ЦСТ таки открывается) и после этого никакие команды уже не выполняются. Да и ЦСТ приходится закрывать после этого посредством убивания процесса. При этом с ЦСТ 5 все функционирует на ура. Версия Матлаба у меня 7.0.0.19920. Пробовал связать ЦСТ 2006 с Матлабом 6.5 - так там вообще отказывается СОМ работать Связка команд, приводящая к ошибке: cst = actxserver('MWStudio.Application') cst.invoke('OpenFile','C:\\Temp\\Temp\\bbb.mod'); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться