10-01-2020 03:57 AM
現在、磁場から電流密度を求めるプログラムの作成を行っております。
電流密度のx,yの成分を求めて合成して電流密度の分布を作成したいと考えております。
磁場B(x,y)をFFT処理して電流密度に計算する際、
こちらの計算を行いたいのですがFFT処理後にフォーミュラノードで計算しようとするとエラーが出てしまいうまくいきません。ベクトルや配列の扱いが得意ではないので詰まってしまい進みません。
お手数ですがヒントやアドバイスなどを教えていただきたいため投稿しました。
よろしくお願いいたします。
解決済! 解決策の投稿を見る。
10-01-2020 06:24 PM
こんにちは
エラーがでてしまう、、といわれているエラーが、添付画像の下のようなスカラー式で作ったフォーミュラノードに配列が接続できない。というものであれば、スカラー式をforループなどで囲んで入出力配列をスカラーにしてしまえばよろしいかと思います(画像上の方)
LabVIEWは値の定義をしなくても適当に合わせてくれる多様性があってとても便利ではありますが、ちゃんと意識していないとはまります。
(これも的を得た返信になっているでしょうか。心配。。。。)
10-01-2020 07:59 PM
返信ありがとうございます。
写真のようにして計算を行いたいのですが、forループを使ってもエラーが出てしまい計算ができません。初歩的なことなのかもしれませんがよくわかりません…
FFT処理の後の結果は計算することはできないのでしょうか?
よろしくお願いします。
10-01-2020 08:33 PM
つながるはずなんですが。。Ctrl押しながらBを押す、もしくは、編集→不良ワイヤを削除で壊れたワイヤ消えますか?消えたのなら、ちゃんとつながっていなかっただけですね。
ところで、、、フォーミュラーノードに計算式が入っていませんけど。。(´・ω・)ここは大丈夫ですか??
10-01-2020 08:57 PM
返信ありがとうございます。
Ctrl Bで消えました…が、一応接続してはいます…
エラーの内容が
データタイプが異なるため結線できません ソースタイプは倍精度複素数 シンクタイプは倍精度
と出ています。FFTしない結果をフォーミュラノードに接続した場合はエラーなく行うことができました。FFTがいけないのでしょうか?
計算機の中身についてですが、空間周波数のxとyの求めるViを作成しているので細かいとこまでは考えていませんが式があるので何とかなると考えています。。
10-01-2020 10:25 PM
まさに文字通りですね。FFTがいけないというか、FFT.viの出力は倍精度複素数(CDB)。試しましたがフォーミュラノードにはつながりませんね。(フォーミュラーノードって実数しか使えない?)
というか複素数ですよ~なかなか数学屋さんじゃなきゃお目にかからないものなんで。。実数なりベクトルなりに変換してからになるんですかね。
そもそもFFT.viがやろうとしている計算をするサブviなのか、作りこむ前に単独で数値入れてみて動作確認してみてはいかがでしょうか?少なくとも周波数のスペクトラムを見たいだけなら使うべきviはFFT.viじゃ無いと思います
10-01-2020 11:34 PM
返信ありがとうございます。
FFT処理をして複素数の実数部を抜き出す処理でフォーミュラーノードが使えたので確認しながら作成していきたいと考えています。
ありがとうございました。