札幌・東京のIoTエンジニアによる

技術や働き方についてのブログ

PINN型ニューラルネットワークを用いたカルマン渦を伴う流れのシミュレーション

Tech blog

こんにちはAX研究室のロベルト・フバチです。この投稿では、PINN(Physics-Informed Neural Networks、物理情報ニューラルネットワーク)を用いて、障害物の周囲を流れる流体のシミュレーション方法を紹介します。
PINNの概要については、以前の投稿の一つで紹介しました。一般的に、これらのネットワークは、自然界や産業界で発生する現象を記述する偏微分方程式を解くために使用されます。
そのような現象の一つが流体の流れであり、これは液体や気体の運動を研究する「流体力学」という分野の対象です。「流体」という用語は液体と気体の両方を指し、固体とは異なり、自由に流れたり形を変えたりする性質があります。
流体が障害物にぶつかると、その背後にカルマン渦と呼ばれる渦が発生することがあります。これらの渦は規則正しく並び、特徴的なパターンを形成します。この現象は、例えば風が旗のポールを通過する際に、旗が規則的に揺れることで観察できます。同様の渦は、島や岩の背後を流れる水、あるいは山地の周囲を流れる空気中の雲にも見られます。

このような流れをシミュレーションするために、PINNはナビエ–ストークス方程式や連続の式などの微分方程式(図2)を利用します。たとえば、管内の層流のような単純な流れでは、これらの方程式に含まれる物理法則だけでPINNが流体の速度分布を効果的に予測できます。

しかし、カルマン渦のような非定常で非線形性の強い複雑な流れでは、従来の数値流体力学(CFD)による完全な再現は計算コストや数値安定性の観点から困難です。一方、限られた測定点での観測データのみでは、流れ場全体の詳細な把握は不可能です。PINNsはこの課題に対し、ナビエ・ストークス方程式などの物理法則を損失関数に組み込むことで、少ない観測データからでも物理的に一貫した流れ場を学習・予測することができます。具体的には、測定された速度や圧力データと物理方程式の制約を同時に満たすよう学習することで、観測点以外の領域についても信頼性の高い流れ場情報を補間・外挿できます。このように、実験データと物理モデリングを統合したアプローチにより、カルマン渦の詳細な時空間構造を効率的に把握することが可能になります。

本稿では、トレーニングデータの量や準備方法が、カルマン渦PINNモデルの精度にどのように影響を与えるかを示します。
続きを読む

S3 + CloudFront画像配信をMinIOを使ってローカルで再現する

Tech blog

こんにちは! デバイスソフトウエア開発部の米森です。

今回は、開発中に直面しがちな「ローカル環境でのS3画像配信問題」の解決策をご紹介します。クライアントがサーバーから画像のpath(オブジェクトキー)を受け取り、そのパスとCloudFrontを使って画像を表示するというシンプルなシステム構成を例に、MinIOを活用したローカルS3環境の構築方法を解説させていただきます!

続きを読む

GoogleスライドとGoogle Vidsで動画作成

Tech blog

デバイスソフトウエア開発部の板谷です。

業務の一環でGoogle Vidsで動画作成をしたとき「テンプレートっぽい機能があったらいいな」と試行錯誤したので、その備忘録と見つけた方法を共有します。
続きを読む

Microsoft Teamsで「メッセージを保存」機能を使う

Tech blog

こんにちは!
クラウドソリューション開発部の石崎です。

Microsoft Teamsを使っていると、重要なメッセージがどこにあったか分からなくなってしまうことはありませんか?以前はTeamsに「このメッセージを保存する」というボタンがあったようですが、なぜか今はその機能は無くなってしまいました。そこで、Power Automateを使って自分のチャット欄にメッセージを保存する方法を紹介します。
続きを読む

Jestを用いてユニットテストを行った話

Tech blog

こんにちは!クラウドソリューション開発部の北島です。

春先に携わっていたプロジェクトにて、JavaScriptで書いたWebサイトの一部をJestを使って単体テストを行いました。今回は、そんな経験からJestのセットアップからテストコードの実行、そして実際に使用した感想についてお話ししたいと思います! 続きを読む

WEBエンジニアにオススメのChrome拡張機能5選!

Tech blog

こんにちは!
クラウドソリューション開発部の大川です。

日々ブラウザを開いて開発または調査をしていると、「あと少しだけ効率が上がれば…」と感じる瞬間が多々ありますよね。
そこで今回は、Chrome拡張機能の中から、WEBエンジニア視点で役立つものを5つご紹介します!

続きを読む

「答え」が見えない課題にどう立ち向かうか

Tech blog

こんにちは!
SJC共同開発推進室の菊池です。

日々の業務の中で、「答え」が見えない課題に直面したこと、ありませんか?
たとえば、初めて取り組む業務や、答えを一つに絞れない状況などなど。

そして、「答え」が分からないまま、とにかく手を動かした結果、何も成果を出せず、時間だけが過ぎ、一日が終わってしまった、という悩みに直面したことはありませんか?

私自身、こうした状況に陥ることが多々あり、いつも悩まされています。

なぜ、そうなってしまうのか?どうすれば改善できるのか?
この機会に一度、自分の行動を振り返り、改善点を考えてみたいと思います。

続きを読む

Storybook + MSW を実プロジェクトに導入してわかった「地味に詰まる」ポイント集

Tech blog

お疲れ様です。SJC共同開発推進室の境田です。
今回は社内プロジェクトに StorybookMSW(Mock Service Workers) を導入した際の手順と、遭遇したエラーおよび対処法をまとめました。同様の構成(React 18, TypeScript, MUI, Vite など)で開発している方の参考になれば幸いです。

続きを読む

PROLICA®による信号機の状態判定機能を解説!

Tech blog

こんにちは。デバイスソフトウエア開発部の斎藤です。
生産性向上エッジAIカメラシステム「PROLICA®」を用いた画像解析システムの開発を担当しています。

PROLICAは、ネットワークカメラとエッジコンピューターを使用してリアルタイムに物体検出を行うことを主な機能としていますが、AIとは独立した機能として、画像内の信号機(赤・青・黄)の状態を輝度差から判定する仕組みも備えています。

本記事では、指定した範囲の「輝度差」を算出して、信号機の状態を判定する機能を紹介します!

PROLICAの詳細や他の機能につきましては、以下の弊社HPや、これまで私が執筆した記事をご覧ください。
生産性向上AIカメラ「PROLICA®」

エッジAIカメラシステム「PROLICA®」による物体トラッキング

PROLICA®による物体トラッキングのためのカメラ設置方法


続きを読む