ã¯ããã«
é»ç£ã¢ããªã³ã°ã®åéã®ãšã³ãžãã¢ã®å€ãã¯ãä»ã®ç°å¢ã§ã®åé¡ã®ã·ãã¥ã¬ãŒã·ã§ã³çµæã®ãããªãåŠçãšäœ¿çšããŸãã¯éã«ãããåªäœããå¥ã®åªäœãžã®ãã©ã¡ãŒã¿ã®è»¢éã«ã€ããŠçåãæã£ãŠããŸãã çµæãå¥ã®ããã°ã©ã ãç解ã§ãã圢åŒã«ãšã¯ã¹ããŒãããŠäœ¿çšããããããŒã¿ãæåã§å ¥åãããããŠãåé¡ãªããšæãããŸãã ãã ãããã®ã¢ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ã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
-ActiveXãªããžã§ã¯ãã®ã¡ãœãããåŒã³åºããŸããinvoke
ç°¡åã«èšãã°ã 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ã«ä»å±ã®ãªãã¡ã¬ã³ã¹