|
Matlab и FEKO или CST Microwave Studio |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 31)
|
Oct 17 2006, 10:27
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 22-09-05
Из: Томск
Пользователь №: 8 832

|
Ну тут работы прилично. Ну давайте пробовать на примере СST. Там в хелпах есть информация по написанию на VBA скриптов к CST. Так вот скрипты - это тоже самое, только надо их перелолжить на MATLAB. Имена функций и методов такие же, различия в способе их вызова и передаче аргументов. Пробуете вызвать CST из MATLAB Код e = actxserver('MWStudio.Application'); Ха  у меня не получается. Хотя должно бы type library not found Попробуйте, если не получится, будем думать дальше.
|
|
|
|
|
Oct 18 2006, 10:44
|

Местный
  
Группа: Свой
Сообщений: 382
Регистрация: 2-05-06
Из: мiсто Харкiв
Пользователь №: 16 681

|
Цитата(DesNer @ Oct 17 2006, 08:07)  Вобще технология стандартная и любой нормальный программист ее в принципе знает. Если так, то девелоперов ЦСТ можно назвать НЕнормальными программистами. Любой кто пробовал через СОМ добратся до ЦСТ знает, что все не так просто. (не рассматриваем программы со встроенным бейсиком как Эксель от Микрософт). Грабли в том, что у ЦСТ нет публичных свойств и методов, значит надо доставать их "не публичными" методами. Это становится проблематичным, если нужно достать массив данных, как нужно Demonis. Цитата(DesNer @ Oct 17 2006, 14:27)  Пробуете вызвать CST из MATLAB Код e = actxserver('MWStudio.Application'); Ха  у меня не получается. Хотя должно бы type library not found Попробуйте, если не получится, будем думать дальше. Зависит от версии ЦСТ. e = actxserver('MWStudio.Application'); для ЦСТ 5 и старше. Для новых ЦСТ вызывайте ("CSTStudio.Application")
|
|
|
|
|
Oct 19 2006, 11:44
|

Местный
  
Группа: Свой
Сообщений: 382
Регистрация: 2-05-06
Из: мiсто Харкiв
Пользователь №: 16 681

|
Цитата(Demonis @ Oct 18 2006, 16:30)  вот возникла идея, что в принципе для успешной работы я могу ограничить себя следующими операциями: 1. Изменять из матлаба значение параметра в ЦСТ 2. Запускать расчет 3.По окончании расчета заставлять ЦСТ автоматом экспортировать необходимые данные в текстовый формат, который потом обрабатывать в Матлабе (если получится, конечно) и закрывать окно ЦСТ. Это уже ближе к реальности. Должно получиться. Теперь по поводу неявного вызова. Запусти поиск в хелпе Матлаба по слову "implicit". Там найдешь страничку по поводу СОМ. На ней буквально пару обзацев об этом, но для начала должно хватить. У меня сейчас получается открывать файл, запускать расчет и т.д. Если не разберешься, пиши, вышлю конкретный пример обращения к обьектам ЦСТ.
|
|
|
|
|
Oct 20 2006, 12:02
|

Местный
  
Группа: Свой
Сообщений: 382
Регистрация: 2-05-06
Из: мiсто Харкiв
Пользователь №: 16 681

|
Цитата(Demonis @ Oct 20 2006, 12:56)  Все таки без конкретного примера обойтись не смогу. Если какой пример, то можно на Dmytro.Vasylenko*rub.de ОК. Хотя в хелпе вроде все понятно написано.
|
|
|
|
|
Mar 4 2008, 12:56
|
Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 22-07-05
Пользователь №: 7 016

|
Цитата Demonis Ваш опыт очень интересен, только насколько я знаю, нет открыто выложенных данных, как получить данные полей через COM интерфейс. Работающий вариант, читать данные из бинарных файлов, которые находятся в директории Result (CST2008). Там есть как поля, так и 1D результаты. Проблема с полями возникает только в случае, если используются различные фичи типа Subgrigging, TST, так как поля в этом случае перестают быть просто 3Д матрицей. Если у вас официальная лицензия, то как читать поля информацию вы можете получить у разработчиков. У остальных, знающих это, руки связаны соглашениями о не распространении информации, полученной от тех же самых разработчиков.
|
|
|
|
|
Mar 5 2008, 08:25
|
Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 22-07-05
Пользователь №: 7 016

|
Цитата связать Матлаб и ЦСТ более-менее получается Мне кажется, что в вашем случае правильнее утверждать, что получается связать через экспорт результатов в виде текстовых файлов. Только не очень понятно, зачем заниматься таким экпортом, если эти результаты уже есть в виде бинарных файлов? Чтение и запись текстовых файлов отнюдь не быстрое занятие, особенно если это касается данных полей.
|
|
|
|
|
Jan 12 2010, 14:49
|

Местный
  
Группа: Свой
Сообщений: 246
Регистрация: 16-11-09
Из: СССР
Пользователь №: 53 661

|
Свежие книжки по моделированию радаров в МАТ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. См. линки в приложении
Сообщение отредактировал Jack_Profit - Jan 12 2010, 14:49
--------------------
Учись бить врага!
|
|
|
|
|
Oct 24 2010, 07:22
|
Участник

Группа: Участник
Сообщений: 62
Регистрация: 13-05-10
Пользователь №: 57 238

|
Цитата(Yuri Potapoff @ Oct 20 2006, 17:56)  Я имел в виду востребованность материала для публикации. Будет ли его кто читать - вопрос отдельный. Читать будут, убеждён! Если есть результат-просьба выложить.
|
|
|
|
|
May 17 2011, 14:42
|
Группа: Новичок
Сообщений: 6
Регистрация: 4-05-11
Пользователь №: 64 772

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

Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 9-05-06
Из: Киев
Пользователь №: 16 911

|
Цитата(Sharh @ May 17 2011, 16:42)  Доброго времени суток, Вы не могли бы по подробнее описать с помощью какой команды возможно открыть проект 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 проекта.
|
|
|
|
|
May 18 2011, 07:59
|
Группа: Новичок
Сообщений: 6
Регистрация: 4-05-11
Пользователь №: 64 772

|
Спасибо большое,попробую все это проделать, пока вроде все ясно)
|
|
|
|
|
May 21 2011, 10:57
|
Группа: Новичок
Сообщений: 6
Регистрация: 4-05-11
Пользователь №: 64 772

|
подскажите пожалуйста как формировать .bas файл?
|
|
|
|
|
May 22 2011, 17:15
|
Группа: Новичок
Сообщений: 6
Регистрация: 4-05-11
Пользователь №: 64 772

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

Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 9-05-06
Из: Киев
Пользователь №: 16 911

|
Цитата(Sharh @ May 22 2011, 18:15)  fprintf(bas_fid,'Sub Main ()\n'); в этом месте у меня Matlab выдает ошибку, скажите, пожалуйста какие параметры необходимо указать А вы потрудились поменять пути на реально существующие на вашем компьютере? bas_fid = fopen('c:\PROJECT\cst2008.bas', 'w'); Эта команда не создает папку, хотя при ее отсутствии не ругается.
|
|
|
|
|
May 23 2011, 15:54
|
Группа: Новичок
Сообщений: 6
Регистрация: 4-05-11
Пользователь №: 64 772

|
Конечно менял, вы простите меня за то что я так туплю, просто это чуть ли не первый мой опыт работы в этих программах
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|