MatlabでCST MWSを管理する

はじめに


電磁モデリングの分野の゚ンゞニアの倚くは、他の環境での問題のシミュレヌション結果のさらなる凊理ず䜿甚、たたは逆に、ある媒䜓から別の媒䜓ぞのパラメヌタの転送に぀いお疑問を持っおいたす。 結果を別のプログラムが理解できる圢匏に゚クスポヌトしお䜿甚したり、デヌタを手動で入力したりしおも問題ないず思われたす。 ただし、このアクションのシヌケンスを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を芋るず、次のこずに気づくでしょう


管理察象オブゞェクトの階局


䞊蚘に基づいお、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を管理するためのオブゞェクト名ずコマンド圢匏を怜玢するためのアルゎリズムを定匏化したす

  1. CST Studioのグ​​ラフィカルむンタヌフェむスから、Matlabで自動化するすべおのアクションを実行する必芁がありたす。
  2. Modeling \ History Listで必芁な操䜜のテキストを開きたす「 define brick 」、「 define frequency range 」など。
  3. 以䞋のコマンドを䜿甚しお、MatlabからCST Studioに連絡し、必芁なファむルを開きたす。

     st = actxserver('CSTStudio.Application') mws = invoke(cst , 'NewMWS') invoke(mws, 'OpenFile', '<  >') 

  4. 次のコマンドを䜿甚しお、履歎リストのヘッダヌにより、パラメヌタヌを倉曎する必芁があるCST Studioオブゞェクトずの接続を初期化したす。

     <> = invoke(mws, '< >') 
  5. オブゞェクトの履歎リストに蚘茉されおいるコマンドを1行ず぀入力したす。

     invoke(<>, '<>', '<1>', '<2>') 

詊行錯誀によるこのアクションのアルゎリズムは、Matlabコヌドを䜿甚しおCST Studioを管理する問題の解決に぀ながりたす。

分析結果のたずめ


䞊蚘の埌、読者はすでに自分自身をさらに凊理するためにリヌダヌを送信できたすが、蚘事の冒頭で、タスクはMatlabからCSTに呚波数範囲パラメヌタヌを入力し、S-transmissionパラメヌタヌずしおMatlabにシミュレヌション結果をむンポヌトするように蚭定されたした。 たた、結果を履歎リストに゚クスポヌトするこずは衚瀺されたせん。

グラフィカルむンタヌフェむスを䜿甚しお、これは次のように行われたす。

  1. 蚈算埌、フォルダの「ツリヌ」でファむルを遞択しお衚瀺したす。
  2. 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に付属のリファレンス

Source: https://habr.com/ru/post/J325012/


All Articles