ã¯ããã«
é»ç£ã¢ããªã³ã°ã®åéã®ãšã³ãžãã¢ã®å€ãã¯ãä»ã®ç°å¢ã§ã®åé¡ã®ã·ãã¥ã¬ãŒã·ã§ã³çµæã®ãããªãåŠçãšäœ¿çšããŸãã¯éã«ãããåªäœããå¥ã®åªäœãžã®ãã©ã¡ãŒã¿ã®è»¢éã«ã€ããŠçåãæã£ãŠããŸãã çµæãå¥ã®ããã°ã©ã ãçè§£ã§ãã圢åŒã«ãšã¯ã¹ããŒãããŠäœ¿çšããããããŒã¿ãæåã§å
¥åãããããŠãåé¡ãªããšæãããŸãã ãã ãããã®ã¢ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ãNåå®è¡ããå¿
èŠãããã¿ã¹ã¯ãé »ç¹ã«çºçãããããã®ã¢ã¯ã·ã§ã³ã®ããã©ãŒãã³ã¹ã¯ãŒãã«ãªãåŸåããããŸãã ã¿ã€ãã«ã«ç€ºãããŠãããããã¯ã«èå³ãããå Žåã¯ãcatã®äžã§ãé¡ãããŸãã
çŸåšã®ããŒã¿åŠçã®åŸåã«ãããã©ãžãªãšã³ãžãã¢ã¯ã©ãã§ã匷åãª
Mathworks MatlabããŒã«ã䜿çšããŠç®æšãéæããŠããŸãã ãã®ããã±ãŒãžã䜿çšãããšãããžã¿ã«ä¿¡å·åŠçãFPGAããã³éä¿¡ã·ã¹ãã å
šè¬ã®ã¢ããªã³ã°ãã¬ãŒããŒã¢ãã«ã®èšèšãªã©ã®åé¡ã解決ã§ããŸãã ããã«ãããMatlabã¯ã»ãŒãã¹ãŠã®ç¡ç·æè¡è
ã«ãšã£ãŠäžå¯æ¬ ãªã¢ã·ã¹ã¿ã³ãã«ãªããŸãã
é«ç²ŸåºŠã®é»æ°ååŠã¢ããªã³ã°ã®å°éå®¶ã¯ãä»ã®ç¹å®ã®ãœãããŠã§ã¢ããã±ãŒãžã䜿çšããŠäœæ¥ããããšãå€ãããã®1ã€ã
CST Microwave Studioã§ãã
Eurointech Webãµã€ãã«ã¯ããã®è£œåã«é¢ããå€ãã®èšäºããããŸãã ãããã£ãŠããã®äž»èŠãªåŽé¢ã«ç°è°ãå±ããå¿
èŠã¯ãããŸããã
èè
ã¯æè¿ãäžèšã®ããã±ãŒãžãåæã«äœ¿çšãããšãã課é¡ã«çŽé¢ããŸããã ãã®èšäºã§ã¯ããã®åé¡ã解決ããããã®å¯èœãªæ¹æ³ãšãåæ§ã®ã¿ã¹ã¯ã®ç¯å²ãåæ ããããšæããŸãã
æŠç¥
äžè¬çãªã±ãŒã¹ã§ã¯ãMatlabã§å®è¡ããã颿°ã«ãã£ãŠæå®ãããåšæ³¢æ°ç¯å²ã§Microwave Studioã§ãããžã§ã¯ããã·ãã¥ã¬ãŒãããä»ã®èšç®ã§ééä¿æ°S
ijã®ã¢ããªã³ã°çµæã䜿çšããå¿
èŠããããŸããã
説æããäžé£ã®ã¢ã¯ã·ã§ã³ã1ãæ°ååå®è¡ããå¿
èŠããããããããŒã¿ã®æåå
¥åããã³åºåã®æ¹æ³ã¯ããã«äœäžããŸããã
Matlab颿°ããçŽæ¥Microwave Studioã·ãã¥ã¬ãŒã·ã§ã³ãã©ã¡ãŒã¿ãŒã®å¶åŸ¡ã確ç«ããããšããããšã決å®ãããŸããã å©çšå¯èœãªCSTãšMatlabã®ãã«ãã®åæãããã³ã€ã³ã¿ãŒããããªãœãŒã¹ã¯ãäž¡æ¹ã®ããã°ã©ã ãActiveXãã¬ãŒã ã¯ãŒã¯ã®äœ¿çšããµããŒãããŠããããšã瀺ããŸããã
ActiveXã¯ãããŸããŸãªããã°ã©ãã³ã°èšèªã§èšè¿°ãããããã°ã©ã ããã®äœ¿çšã«é©ãããœãããŠã§ã¢ã³ã³ããŒãã³ããå®çŸ©ããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãã ãœãããŠã§ã¢ã¯ããããã®æ©èœãå©çšããããã«ããããã®ã³ã³ããŒãã³ãã®1ã€ä»¥äžããçµã¿ç«ãŠãããŸãã
ãã®ãã¯ãããžã¯ã1996幎ã«Microsoftã«ãã£ãŠ
ã³ã³ããŒãã³ããªããžã§ã¯ãã¢ãã«ïŒCOMïŒããã³
ãªããžã§ã¯ããªã³ã¯ãšåã蟌ã¿ïŒOLEïŒãã¯ãããžã®éçºãšããŠåããŠå°å
¥ãããçŸåšã§ã¯Microsoft Windowsãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§åºã䜿çšãããŠããŸããããã¯ãããžèªäœã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«é¢é£ä»ããããŠããŸããã
CST Studioã®èª¬æããããã®ã³ã³ããŒãã³ãã¯ãããããããŒãžãOLEãµãŒããŒãšããŠæ©èœã§ããããšãããããŸãã OLEã¯ãMicrosoftãéçºããããªããžã§ã¯ããä»ã®ããã¥ã¡ã³ãããªããžã§ã¯ãã«ãªã³ã¯ããã³åã蟌ãããã®ãã¯ãããžãŒã§ãã ãããã£ãŠãããã¯Microsoft Windowsãœãªã¥ãŒã·ã§ã³ãMatlabãCST Microwave Studio + OLEãã¯ãããžãŒã§ãã
次ã«ãããããã¹ãŠãMatlabã§å®è£
ããæ¹æ³ãçè§£ããå¿
èŠããããŸãã
MatlabããCSTã管çããããã®åºæ¬æ©èœ
[1]ãããActiveXã€ã³ã¿ãŒãã§ã€ã¹ã®æäœã«å¿
èŠãªããã€ãã®åºæ¬æ©èœãåºå¥ã§ããŸãã
actxserver
-ããŒã«ã«ãŸãã¯ãªã¢ãŒããµãŒããŒãäœæããŸãã
invoke
-ActiveXãªããžã§ã¯ãã®ã¡ãœãããåŒã³åºããŸãã
ç°¡åã«èšãã°ã
actxserverã³ãã³ãã®æ¬è³ªã¯ã管ç察象ããã°ã©ã ãšããŠæ©èœããããã°ã©ã ãåæåïŒéãïŒãã
åŒã³åºã -管ç察象ããã°ã©ã ã®ç¹å®ã®ã»ã¯ã·ã§ã³ãåç
§ããããšã§ãã
äŸïŒ st = actxserver('CSTStudio.Application')
-ã³ãã³ãã¯ãOLEã«ãã£ãŠç®¡çãããã
CSTStudio.Application ããªããžã§ã¯ãã倿°ãcstãã«ãã€ã³ãããŸãã ãã®å Žåãã
CSTStudio.Application ããšããååã¯ActiveXç°å¢ã§äžæã®ååã§ãããããã¢ã¯ã»ã¹ããããã°ã©ã ãçè§£ã§ããŸãã
mws = invoke(cst , 'NewMWS')
-ã¡ã€ã³ããã°ã©ã ã¡ãã¥ãŒéãç§»åã§ããŸãããã®å ŽåãCST Studioã¢ããªã±ãŒã·ã§ã³ã«é¢é£ä»ããããã
cst ã倿°ã«ã³ãã³ããéä¿¡ããŠãæ°ãã空ã®ãããžã§ã¯ããã¡ã€ã«ãäœæããŸãã
invoke(mws, 'OpenFile', '< >')
-æ°ããäœæããã空ã®ã¿ãã®
<File Path>ã«ããç¹å®ã®ãã¡ã€ã«ãéãã³ãã³ããéä¿¡ããŸãããã®ã¿ãã¯å€æ°ãmwsãã«é¢é£ä»ããããŠããŸãã
solver = invoke(mws, 'Solver')
-ãã®ã³ãã³ãã¯ãMicrowave Studioã®ã
mws ã倿°ã«é¢é£ä»ããããŠãããããžã§ã¯ãã¿ãã®
ãœã«ããŒã¿ãã« ãœã«ããŒå€æ°ãå²ãåœãŠãŸãã
invoke(solver, 'start')
-ãã®ããŒã ã¯ããªãŒãã³ãããžã§ã¯ãã®ããã«CST Studioã䜿çšããŠããœã«ããŒã¿ãã«ç§»åããã¢ãã«ã®èšç®ãéå§ããŸãã
Matlabã®[
ã¯ãŒã¯ã¹ããŒã¹ ]ã¿ãã
éã㊠ã倿°ã®å€
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, 'save')
-çŸåšã®ãããžã§ã¯ããä¿åããŸãã
invoke(mws, 'quit')
-çŸåšã®ãããžã§ã¯ããéããŸãã
invoke(mws,'SelectTreeItem','1D Results\S-Parameters\S1,1')
-ã¯ãŒã¯ã¹ããŒã¹ã®ãã©ã«ãããªãŒã§ãã¡ã€ã«ãéžæãããããªãŒãããä»»æã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã ãã¡ã€ã«ãã¹ãèšå®ããå Žåããã®é¢æ°ã§ã¯å€§æåãšå°æåãåºå¥ãããŸãã
brick = invoke(mws, 'brick ')
-ãã¥ãŒãäœæã¿ãã«ç§»åããŸãã
units = invoke(mws, 'units')
-ãããžã§ã¯ãã®å¯žæ³ã倿Žããããã®ãŠã£ã³ããŠã«ç§»åããŸãã
- åã®æ®µèœã§äœæããããœã«ããŒå€æ°ãšããªãã¯å€æ°ãšãŠããã倿°ã®å€ã¯ããããã<1x1 Interface.cststudio_application.NewMWS.solver> ã <1x1 Interface.cststudio_application.NewMWS.brick>ããã³<1x1 Interface.cststudio_application.NewMWS.units>ã§ããæå³-ãããã®å€æ°ã¯ãã¹ãŠããªããžã§ã¯ãã®ç¹å®ã®ããããã£ãèšå®ããããšã«ãããã¿ãŒããã«ãŠã£ã³ããŠã«é¢é£ä»ããããŸãã ããšãã°ãäžé£ã®ã³ãã³ãã§å€æ°ããªãã¯ã«ã¢ã¯ã»ã¹ããå ŽåïŒ
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');
ã matlab ããšããååã®ã PEC ãçŽ æãããçŸåšã®ãããžã§ã¯ããŠãããã®20x20x20ãã¥ãŒããäœæããŸãã
管ç察象ãªããžã§ã¯ãã®éå±€
äžèšã«åºã¥ããŠãMatlabããCST Studioã«ã¢ã¯ã»ã¹ããããã«åŸãå¿
èŠã®ãã管ç察象èŠçŽ ã®ç¹å®ã®éå±€ãéžæã§ããŸãã
å³1-CST Studioã®ç®¡ç察象èŠçŽ ã®éå±€å³1ãããããããã«ããããžã§ã¯ãã®ãã©ã¡ãŒã¿ãŒã倿Žããã«ã¯ããŸããCST Studioã®ã¡ã€ã³ãŠã£ã³ããŠãåæåããæ¬¡ã«ãããžã§ã¯ãã®ç¹å®ã®ã¿ãã«åãæ¿ããæ¬¡ã«ç¹å®ã®ã€ã³ã¿ãŒãã§ã€ã¹ãªããžã§ã¯ãïŒèšç®æ©ããžãªã¡ããªããŠãããã®ããããã£ã倿Žããããã®ãŠã£ã³ããŠã«åãæ¿ããŸãïŒãå¿
èŠã§ã枬å®å€ãªã©ïŒã
å¶åŸ¡çšã®ã³ãã³ãæ€çŽ¢ã¢ã«ãŽãªãºã
ã¡ã€ã³ãŠã£ã³ããŠãšãããžã§ã¯ãã¿ãã®åæåã§ãã¹ãŠãåçŽãªå Žåããã©ã¡ãŒã¿ãŒãå
¥åããã³å€æŽããããã®äžé£ã®ãŠã£ã³ããŠã¯éåžžã«å€§ããã1ã€ã®èšäºã§ãããã«ã¢ã¯ã»ã¹ãããã¹ãŠã®æ¹æ³ã¯äžå¯èœã«æããŸãã ãããã¯ãCST Studio Suiteã«ä»å±ã®ãªãã¡ã¬ã³ã¹è³æã§å®å
šã«å©çšå¯èœã§ãã ãã ããCST Studioã®ä»»æã®å Žæã«ã¢ã¯ã»ã¹ããããã®ãã¹ãŠã®ã³ãã³ãã®åœ¢åŒãèŠã€ããããã®æ¬¡ã®ã¢ã«ãŽãªãºã ã¯ãããç°¡åã«æããŸãã
20x20x20ãã¥ãŒããäœæããåã®äŸãèããŠã¿ãŸãããã åããã¥ãŒããäœæããŸãããCST Studioã®ã°ââã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšãã[
ã¢ããªã³ã° ]ã¿ãã§[
å±¥æŽãªã¹ã ]ãã¿ã³ãèŠã€ããŸãã
å³2-å±¥æŽãªã¹ãã®åŒã³åºããŠã£ã³ããŠDefine brickã¢ã€ãã ãéããMatlabã§ãã®ã³ã³ãã³ããšã³ãŒãã衚瀺ããŸããããã«ããããã®äžé£ã®ã¢ã¯ã·ã§ã³ãç¹°ãè¿ãããšãã§ããŸãã
å³3-ããªãã¯ãŠã£ã³ããŠãšMatlabã³ãŒãã®å®çŸ©å³3ã¯ãMatlabã®ã³ãŒãã
å±¥æŽãªã¹ãã®ã¢ã€ãã ã®ã»ãšãã©ã®ã³ããŒã§ããããšã瀺ããŠããŸãã ãããã£ãŠããããžã§ã¯ãã¿ããéžæããåŸïŒMatlabã³ãŒãã®2è¡ç®ä»¥éïŒãã©ã®ã¿ãŒããã«ãªããžã§ã¯ãã«ã¢ã¯ã»ã¹ããå¿
èŠãããããçè§£ããã«ã¯ãCSTã€ã³ã¿ãŒãã§ã€ã¹ãªããžã§ã¯ãïŒãã®å Žåã¯
Brick ïŒã®éã«æ¥ç¶ãäœæãã
å±¥æŽãªã¹ããããã®ãªããžã§ã¯ãã«ã³ãã³ããé æ¬¡éä¿¡ããŸãã
ãã ãã
å±¥æŽãªã¹ãã®ãã¹ãŠã®ã³ãã³ãã«ãã®æ§æãããããã§ã¯ãããŸããã ããšãã°ãèšç®ã®åšæ³¢æ°ç¯å²ã¯æ¬¡ã®è¡ã䜿çšããŠèšå®ãããŸãã
å³4-å±¥æŽãªã¹ãã§ã®åšæ³¢æ°ç¯å²ã®èšå®ããã§ããæããã«ãã³ãã³ãã®éä¿¡å
ãªããžã§ã¯ãã®åå-
ãœã«ããŒããããŸãã æ¬¡ã«ãMatlabããåšæ³¢æ°ç¯å²ã倿Žããã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
solver = invoke(mws,'Solver'); invoke(solver,'FrequencyRange','150','225');
MatlabããCST Studioã管çããããã®ãªããžã§ã¯ãåãšã³ãã³ã圢åŒãæ€çŽ¢ããããã®ã¢ã«ãŽãªãºã ãå®åŒåããŸãïŒ- CST Studioã®ã°ââã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ãããMatlabã§èªååãããã¹ãŠã®ã¢ã¯ã·ã§ã³ãå®è¡ããå¿
èŠããããŸãã
- Modeling \ History Listã§å¿
èŠãªæäœã®ããã¹ããéããŸãïŒã define brick ããã define frequency range ããªã©ïŒã
- 以äžã®ã³ãã³ãã䜿çšããŠãMatlabããCST Studioã«é£çµ¡ããå¿
èŠãªãã¡ã€ã«ãéããŸãã
st = actxserver('CSTStudio.Application') mws = invoke(cst , 'NewMWS') invoke(mws, 'OpenFile', '< >')
- 次ã®ã³ãã³ãã䜿çšããŠãå±¥æŽãªã¹ãã®ããããŒã«ããããã©ã¡ãŒã¿ãŒã倿Žããå¿
èŠãããCST Studioãªããžã§ã¯ããšã®æ¥ç¶ãåæåããŸãã
<> = invoke(mws, '< >')
- ãªããžã§ã¯ãã®å±¥æŽãªã¹ãã«èšèŒãããŠããã³ãã³ãã1è¡ãã€å
¥åããŸãã
invoke(<>, '<>', '<1>', '<2>')
詊è¡é¯èª€ã«ãããã®ã¢ã¯ã·ã§ã³ã®ã¢ã«ãŽãªãºã ã¯ãMatlabã³ãŒãã䜿çšããŠCST Studioã管çããåé¡ã®è§£æ±ºã«ã€ãªãããŸãã
åæçµæã®ãŸãšã
äžèšã®åŸãèªè
ã¯ãã§ã«èªåèªèº«ãããã«åŠçããããã«ãªãŒããŒãéä¿¡ã§ããŸãããèšäºã®åé ã§ãã¿ã¹ã¯ã¯MatlabããCSTã«åšæ³¢æ°ç¯å²ãã©ã¡ãŒã¿ãŒãå
¥åããS-transmissionãã©ã¡ãŒã¿ãŒãšããŠMatlabã«ã·ãã¥ã¬ãŒã·ã§ã³çµæãã€ã³ããŒãããããã«èšå®ãããŸããã ãŸããçµæã
å±¥æŽãªã¹ãã«ãšã¯ã¹ããŒãããããšã¯è¡šç€ºãããŸããã
ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠãããã¯æ¬¡ã®ããã«è¡ãããŸãã
- èšç®åŸããã©ã«ãã®ãããªãŒãã§ãã¡ã€ã«ãéžæããŠè¡šç€ºããŸãã
- 2 Post Processing \ Import / Export \ Plot DataïŒASCIIïŒã¿ãã䜿çšããŠãASCIIãã¡ã€ã«ã«ãšã¯ã¹ããŒãããŸãã
Matlabã³ãã³ãã§ã¯ãåãããšãããå¿
èŠããããŸãã
ããŒã ã¯ãã§ã«èšåãããŠããŸã
invoke(mws,'SelectTreeItem','1D Results/S-Parameters/S1,1')
äœæ¥ãã£ãŒã«ãã®ãããªãŒãã§ç®çã®ãã¡ã€ã«ãéžæã§ããŸãã çµæãASCIIã§è¡šç€ºããã«ã¯ãçµã¿èŸŒã¿ã®CST颿°ã
ASCIIExport ãã䜿çšããŸãã
CSTãã«ããããã®æ©èœãå®è¡ããã«ã¯ã次ã®ã³ãã³ããCSTã«éä¿¡ããå¿
èŠããããŸãã
export = invoke(mws,'ASCIIExport')
-ãšã¯ã¹ããŒã倿°ã䜿çšãããšã¯ã¹ããŒã颿°ã®åæåã
invoke(export,'reset')
-ãã¹ãŠã®å
éšãã©ã¡ãŒã¿ãŒãããã©ã«ãå€ã«ãªã»ããããŸãã
invoke(export,'FileName','C:/Result.txt')
-ä¿åãã¹ãšãã¡ã€ã«åã®èšå®ã
invoke(export,'Mode','FixedNumber')
-ãã€ã³ããä¿åããæ¹æ³ã®éžæã FixedNumber-å³å¯ã«æå®ããããã€ã³ãæ°ã衚瀺ããŸã; FixedWidth-æå®ãããã¹ãããã§ãã€ã³ãã衚瀺ããŸãã
invoke(export,'step','1001')
-åºå/ã¹ãããå¹
ã®ãã€ã³ãæ°;
invoke(export,'execute')
-æ€éã³ãã³ãã
ãã®ã³ãã³ãã»ããã䜿çšãããšããã£ã¹ã¯
Cã«ãããã¡ã€ã«ã«ã
Results.txtãšããååã®åå°ä¿æ°S
11ã®å€ã1001ãã€ã³ãã®éã§è¡šç€ºã§ããŸãã
ãããã£ãŠãæåã«èšå®ãããã¿ã¹ã¯ã¯å®å
šã«è§£æ±ºãããŸããã
äžå€æåŠ
[1] PotemkinãValery Georgievich MATLABå
¥é/ V.G. ããã§ã ãã³ã -ã¢ã¹ã¯ã¯ïŒDialog-MEPhIã2000 .-- 247 p .:ã¿ã -ISBN 5-86404-140-8
[2] CST Studio Suiteã«ä»å±ã®ãªãã¡ã¬ã³ã¹