(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-04-18
(45)【発行日】2024-04-26
(54)【発明の名称】シミュレータの開発方法、情報処理システム及びプログラム
(51)【国際特許分類】
G06F 30/28 20200101AFI20240419BHJP
G06F 113/08 20200101ALN20240419BHJP
【FI】
G06F30/28
G06F113:08
(21)【出願番号】P 2024018919
(22)【出願日】2024-02-09
【審査請求日】2024-02-09
【早期審査対象出願】
(73)【特許権者】
【識別番号】304021417
【氏名又は名称】国立大学法人東京工業大学
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】青木 尊之
(72)【発明者】
【氏名】渡辺 勢也
(72)【発明者】
【氏名】イン イクイ
【審査官】堀井 啓明
(56)【参考文献】
【文献】特開2016-1381(JP,A)
【文献】特開2021-88974(JP,A)
【文献】中国特許出願公開第102323963(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F30/00-30/28
(57)【特許請求の範囲】
【請求項1】
飛行体の胴体周辺の空間を、計算格子を用いて離散化し、離散化された流体方程式を解くことで空力計算の数値計算手法を適用するステップと、
前記飛行体のブレードに対してアクチュエータラインモデルを適用するステップと、
前記数値計算手法の適用結果と、前記ブレードに対する前記アクチュエータラインモデルの適用結果と、を用いることで前記飛行体の航行をシミュレートするステップと、
をコンピュータが実行するシミュレータの開発方法。
【請求項2】
前記コンピュータは、前記ブレードを構成するマーカー粒子の間隔、又はガウシアンフィルタの影響半径のパラメータ、の少なくともいずれかの情報の入力を受け付け、前記アクチュエータラインモデルの適用において受け付けた前記情報を使用する、
請求項1に記載のシミュレータの開発方法。
【請求項3】
前記コンピュータは、前記ブレードの直径の1000分の1以上のサイズの計算格子を、前記ブレード周辺の計算領域において、前記アクチュエータラインモデルの適用に用いる、
請求項1又は2に記載のシミュレータの開発方法。
【請求項4】
飛行体の胴体周辺の空間を、計算格子を用いて離散化し、離散化された流体方程式を解くことで空力計算の数値計算手法を適用する第1適用部と、
前記飛行体のブレードに対してアクチュエータラインモデルを適用する第2適用部と、
前記数値計算手法の適用結果と、前記ブレードに対する前記アクチュエータラインモデルの適用結果と、を用いることで前記飛行体の航行をシミュレートするシミュレータ部と、を備える
情報処理システム。
【請求項5】
前記ブレードを構成するマーカー粒子の間隔、又はガウシアンフィルタの影響半径のパラメータ、の少なくともいずれかの情報の入力を受け付ける入力部を更に備え、
前記シミュレータ部は、前記アクチュエータラインモデルの適用において受け付けた前記情報を使用する、
請求項4に記載の情報処理システム。
【請求項6】
前記シミュレータ部は、前記ブレードの直径の1000分の1以上のサイズの計算格子を、前記ブレード周辺の計算領域において、前記アクチュエータラインモデルの適用に用いる、
請求項4又は5に記載の情報処理システム。
【請求項7】
飛行体の胴体周辺の空間を、計算格子を用いて離散化し、離散化された流体方程式を解くことで空力計算の数値計算手法を適用するステップと、
前記飛行体のブレードに対してアクチュエータラインモデルを適用するステップと、
前記数値計算手法の適用結果と、前記ブレードに対する前記アクチュエータラインモデルの適用結果と、を用いることで前記飛行体の航行をシミュレートするステップと、
をコンピュータに実行させるプログラム。
【請求項8】
前記コンピュータに、前記ブレードを構成するマーカー粒子の間隔、又はガウシアンフィルタの影響半径のパラメータ、の少なくともいずれかの情報の入力を受け付け、前記アクチュエータラインモデルの適用において受け付けた前記情報を使用させる、
請求項7に記載のプログラム。
【請求項9】
前記コンピュータに、前記ブレードの直径の1000分の1以上のサイズの計算格子を、前記ブレード周辺の計算領域において、前記アクチュエータラインモデルの適用に使用させる、
請求項7又は8に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレータの開発方法、情報処理システム及びプログラムに関する。
【背景技術】
【0002】
飛行機は、その開発段階において、安全な飛行が可能かどうかを検証する必要がある。特に、近年実用化されつつある空飛ぶクルマ等の新しいタイプの有人飛行体については、このような飛行体が新しい技術であり、かつ搭乗する人間の安全性を確保する必要があるため、より慎重な安全性の検証が必要となる。
【0003】
実験では設定が非常に困難な航行条件があったり、検証すべき航行条件の数が膨大であったりするため、実機又は模型を用いて現実の検証実験を行うことには限界がある。また、実験では測定できない内容もあるため、コンピュータ上の数値シミュレーションを用いた検証がなされることが多い。シミュレーションには、例えば、数値流体力学の手法が用いられる。
【0004】
特に、空飛ぶクルマは、無人機と比較して、非常に高い航行安全性が求められる。例えば、複数のマルチコプターが接近(特に上下方向において接近)する場合、マルチコプターが建物等に接近する場合、いずれかのローターが異常な回転(例えば停止)をする場合、予期せぬ強風が発生する場合等の状況が想定される。シミュレーションを実行することで、このような状況において、マルチコプターがどのようにして姿勢を立て直し安全な航行を維持するかを発見することが可能になる。また、シミュレーションを実行することで、安全性を向上させる新しいローターの配置(又は追加)等の検証、及び検証結果の設計への反映も可能となる。
【0005】
関連技術として、非特許文献1には、都市交通システムに用いられるクワッドローターのエアタクシーに対して、数値流体力学シミュレーションを適用する技術が開示されている。
【先行技術文献】
【非特許文献】
【0006】
【文献】Patricia Ventura Diaz and Seokkwan Yoon, “High-Fidelity Simulations of a Quadrotor Vehicle for Urban Air Mobility”, AIAA SciTech Forum 2022, January 3-7, 2022, San Diego, CA & Virtual
【発明の概要】
【発明が解決しようとする課題】
【0007】
マルチコプター等の飛行体では、飛行時に、ローターを構成する、薄く細いローターブレード(回転翼;以下、単にブレードとも記載する)が高速に回転する。このような飛行体に対して、シミュレーションを行うために計算格子を用いて空間を離散化し、流体方程式を直接数値計算する方法を適用することが考えられる。この場合、ブレード表面近傍には非常に細かい計算格子を配置する必要があることから、計算に用いる総計算格子点数が膨大となる。そのため、計算の各時間ステップにおいてブレードにかかる力(すなわち推力)および周囲の空気の流れの変化を求めるために膨大な計算量が必要になる。
【0008】
また、計算の1時間ステップは、非常に短い時間間隔となる。したがって、コンピュータは、機体の並進・回転・姿勢の変化といった航行の振舞いを確認できる程度の期間(例えば1~2分)までシミュレーションの計算をすることが極めて困難になる。例えば、スーパーコンピュータを使って上記の数値シミュレーションを実行した場合でも、せいぜいブレードが30回転する時間(例えば2~3秒)までしか、シミュレーションする時間を進めることができないという課題があった。非特許文献1に記載の数値流体力学シミュレーションはブレードの回転により得られる推力を計算する目的でなされており、機体の航行を計算するものではなかった。
【0009】
本発明は、このような問題点に鑑みてなされたものであり、必要な計算量を削減することに寄与するシミュレータの開発方法、情報処理システム及びプログラムを提供するものである。
【課題を解決するための手段】
【0010】
本発明の一態様に係るシミュレータの開発方法は、
飛行体の胴体周辺の空間を、計算格子を用いて離散化し、離散化された流体方程式を解くことで空力計算の数値計算手法を適用するステップと、
前記飛行体のブレードに対してアクチュエータラインモデルを適用するステップと、
前記数値計算手法の適用結果と、前記ブレードに対する前記アクチュエータラインモデルの適用結果と、を用いることで前記飛行体の航行をシミュレートするステップと、
をコンピュータが実行するものである。
【0011】
本発明の一態様に係る情報処理システムは、
飛行体の胴体周辺の空間を、計算格子を用いて離散化し、離散化された流体方程式を解くことで空力計算の数値計算手法を適用する第1適用部と、
前記飛行体のブレードに対してアクチュエータラインモデルを適用する第2適用部と、
前記数値計算手法の適用結果と、前記ブレードに対する前記アクチュエータラインモデルの適用結果と、を用いることで前記飛行体の航行をシミュレートするシミュレータ部と、を備える。
【0012】
本発明の一態様に係るプログラムは、
飛行体の胴体周辺の空間を、計算格子を用いて離散化し、離散化された流体方程式を解くことで空力計算の数値計算手法を適用するステップと、
前記飛行体のブレードに対してアクチュエータラインモデルを適用するステップと、
前記数値計算手法の適用結果と、前記ブレードに対する前記アクチュエータラインモデルの適用結果と、を用いることで前記飛行体の航行をシミュレートするステップと、
をコンピュータに実行させる。
【発明の効果】
【0013】
本発明によれば、必要な計算量を削減することに寄与するシミュレータの開発方法、情報処理システム及びプログラムを提供することができる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、情報処理システムの一例を示すブロック図である。
【
図3】
図3は、アクチュエータラインモデルを適用した場合のブレードの一例を示す。
【
図4】
図4は、ブレードに配置されたマーカー粒子が周囲の空気から受ける力の一例を示す。
【
図5】
図5は、情報処理システムの代表的な処理の一例を示すフローチャートである。
【
図6】
図6は、流れの速度の大きさを示す数値計算のデータである。
【
図7】
図7は、推力について、実験結果と、計算結果とを比較したグラフである。
【
図8】
図8は、アクチュエータラインモデルを用いて計算したブレードの推力の反作用が周囲の空気にダウンウォッシュとして与えられる状態を示す計算結果である。
【
図9】
図9は、実施の形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明の実施の形態について説明する。なお、発明を実施するための形態における以下の記載及び図面は、説明の明確化のため、適宜、省略及び簡略化がなされている。また、本実施の形態では、明記のない限り、複数の項目について「複数の項目の少なくともいずれか」が定義された場合、その定義は、任意の1つの項目を意味しても良いし、全ての項目を含む、任意の複数の項目を意味しても良い。
【0016】
例示的な実施形態を説明するためにいずれか1つの図に示された特徴またはステップのすべてが必ずしも必須ではなく、任意の一部の特徴またはステップが省略されてもよい。また、明細書及び図面に記載されたステップの順序は、適宜変更されてもよい。
【0017】
[関連技術]
まず、複数のローターが取り付けられた空飛ぶクルマ等のマルチコプターに関する自由航行シミュレータの関連技術について説明する。マルチコプターは、重力下においてブレードが回転することにより、周囲の空気から推力を得て、自由に航行することが可能になる。自由航行シミュレータは、事前に与えられたマルチコプターの形状および重量などの情報に対して、時間的に変化するブレードの回転数だけを変数として与え、マルチコプターが空中でどのように航行するかをシミュレーションで予測するプログラムである。
【0018】
自由航行シミュレータでは、ブレードを含めた機体が周囲の空気から受ける力の計算と、物体(すなわち機体)が移動することで周囲の空気に対して与える影響の計算がなされる。この力の計算において、ブレード部分については、ブレードが回転することによって生じる力が考慮され、機体全体については、機体が飛行することによって受ける力が考慮される。
【0019】
コンピュータが、機体が周囲の空気から受ける力を精度高く計算するためには、粘性項付の流体方程式(Navier-Stokes方程式)を解く必要がある。高速で回転するブレードが受ける力をコンピュータが計算するための方法は、物体表面の境界層を解像できる高解像度の計算格子を用いるか、壁関数モデルを用いるか、ブレードを含んだ近傍の計算にDES(Detached Eddy Simulation)を用いるか、等のいくつかの方法がある。しかしながら、いずれの方法であっても、コンピュータが実行する計算量は膨大なものとなる。上記の方法のうち、計算の負荷が最も軽いと考えられる壁関数を用いる方法においても、コンピュータは、計算において、常に高解像度の計算格子をブレード近傍に割り当てる必要がある。したがって、計算の負荷は非常に大きくなる。
【0020】
また、必要な計算量を軽減するため、コンピュータが粘性項のない流体方程式であるEuler方程式を用いて計算する方法も考えられる。この場合、空気流に関する境界層が生成されないため、計算格子の解像度に対する制約は物体形状のみになる。しかしながら、この方法を用いた場合、コンピュータは、ブレードの回転と垂直方向の揚力しか計算することができず、ブレードから生成されるダウンウォッシュ等の空気流が全く計算できない。そのため、この方法は、自由航行シミュレータには適用できない。
【0021】
本発明の目的の一例は、シミュレーション対象となる飛行体にブレードの回転条件だけを変数として与え、コンピュータの仮想空間の中で飛行体を自由航行させることのできるシミュレータを開発することである。そのためのアクチュエータラインモデルを導入(採用)することが、本発明の新規な特徴である。
【0022】
なお、本開示における「飛行体」は、ブレード部分と胴体部分を有する任意の飛行する物体であり、例えば、有人又は無人操縦のドローン、空飛ぶクルマ、飛行機、宇宙船などを含む。「飛行体」は、以下の実施の形態ではマルチコプターを例として説明するが、マルチコプター以外の回転翼機等を含んでもよい。
【0023】
実施の形態1
[構成の説明]
図1は、情報処理システムの一例を示すブロック図である。情報処理システム10は、入力部11、設定部12、ブレード計算部13、時間積分計算部14、変化計算部15、表示部16及び記憶部17を備える。以下、情報処理システム10の各部について説明する。
【0024】
入力部11は、ユーザからの入力情報を受け付ける構成ユニットである。入力部11は、例えばタッチパネル、キーボード、マウス等の入力インタフェースで構成されていてもよい。ユーザは、入力部11を用いることで、任意の内容の入力情報を情報処理システム10に入力することができる。例えば、ユーザは、シミュレーション対象となるマルチコプターの各部の形状及び質量等についての情報や、マルチコプターのブレードの回転条件(例えば、回転速度)を、入力部11を用いて入力してもよい。また、ユーザは、マルチコプターの周辺に存在する物体(以下、周辺物体とも記載する)のマルチコプターとの相対位置、大きさ及び形状についての情報や、計算に用いられる後述のパラメータについても、入力部11を用いて入力してもよい。周辺物体は、例えば、地面や建物等である。
【0025】
設定部12は、シミュレーション対象となるマルチコプターの全体を含む所定の空間の範囲を、シミュレーションにおける計算領域として設定する。空間の範囲は、例えば、入力部11によって入力された、マルチコプターの大きさ及び形状に基づいて設定される。また、設定部12は、安定して時間積分を行うことのできる時間ステップの間隔も設定する。
【0026】
また、シミュレーションにおいて必要である場合、設定部12は、計算領域(所定範囲の空間)に周辺物体を配置する。周辺物体の配置は、例えば、入力部11によって入力された相対位置、大きさ及び形状についての情報に基づいて設定される。
【0027】
また、設定部12は、計算領域の境界条件(例えば流出境界条件)などを設定する。さらに、設定部12は、マルチコプターを、ブレードと、マルチコプターの機体全体からブレードを除いた全ての部分である胴体とに分割する。例えば、機体におけるローターの支持部も、胴体に含まれる。設定部12は、分割を、入力部11から入力されたマルチコプターの情報に基づいて実行してもよい。
【0028】
ここで、設定部12は、計算領域を、ブレード周辺の領域(以下、領域1とも記載)と、領域1以外の計算領域の領域(以下、領域2とも記載)に分割してもよい。領域1は、例えば、マルチコプターのブレード表面から所定長以内に存在する領域である。領域2は、マルチコプターの胴体周辺の領域と、それ以外の計算領域に分割されてもよい。ただし、設定部12は、計算領域を領域1と領域2に分割しなくともよい。
【0029】
図2は、マルチコプターの一例を示す。マルチコプターM1は、ローターR1~R4と、胴体D1を備える。設定部12は、マルチコプターM1に関しての計算領域を分割する場合には、計算領域を、ローターR1~R4周辺の領域である領域1と、胴体D1周辺を含む領域である領域2と、に分割してもよい。
【0030】
また、設定部12は、計算領域を分割する計算格子の形状を設定する。計算格子の形状は、直方体等の六面体、角柱、四面体等、任意の形状を適用することができる。計算格子の形状は、ユーザが入力部11を用いて入力したものであってもよいし、記憶部17に記憶されたものであってもよいし、計算に関する情報に基づいて設定部12が設定したものであってもよい。設定部12は、十分な精度で効率よく計算できるような格子サイズを設定する。設定部12は、胴体の近傍(例えば、胴体から所定の距離以内)では細かい(すなわち、小さい)格子を用い、胴体の近傍以外では粗い(すなわち、大きい)格子を用いてもよい。また、設定部12は、発生する流れにおける渦の強さに応じて格子サイズを変えてもよい。
【0031】
図1に戻り、ブレード計算部13について説明する。ブレード計算部13は、以下の処理を実行することで、ブレード周辺の領域について、ブレードが回転することでブレードが周囲の空気から受ける力の計算と、ブレードが周囲の空気に対して与える運動量の計算を実行する。設定部12が計算領域を領域1と領域2に分割する場合には、ブレード計算部13は、設定された領域1について上記の計算を実行する。以下、ブレード計算部13が実行する、アクチュエータラインモデル適用の処理の詳細について記載する。
【0032】
(A)まず、ブレード計算部13は、マルチコプターの3D(dimensions)形状モデルからブレードを削除する。
【0033】
(B)次に、ブレード計算部13は、ブレードの形状に合わせた翼素データを、削除されたブレードの領域に対して適用する。翼素データは、ブレードの断面形状を示す2Dデータとその空力特性のデータである。ブレード計算部13は、例えば記憶部17に格納されている翼素データを用いてもよいし、情報処理システム10の外部(例えばインターネットで提供されている)から、用いる翼素データを取得してもよい。
【0034】
(C)そして、ブレード計算部13は、適用するアクチュエータラインモデルのパラメータを具体的に設定する。
【0035】
図3は、アクチュエータラインモデルを適用した場合のブレードの一例を示す。
図3において、各ブレードB1~B3は、ブレードを構成する複数の粒子(以下、マーカー粒子とも記載)で代表される。マーカー粒子は、
図3では点として示されており、マーカー粒子が並ぶことによって各ブレードが構成される。また、各ブレードB1~B3は、計算格子内に存在する。このとき、マーカー粒子が周囲の計算格子に対して及ぼす影響範囲を決定するガウシアンフィルタηは、以下の通り示される。
【数1】
(1)において、d
iは、i番目のマーカー粒子と、(x,y,z)の位置にある計算格子点との距離である。εは、ガウス分布の標準偏差であり、マーカー粒子の影響半径のパラメータである。
図3には、マーカー粒子を中心とする半径εの円が示されている。なお、
図3は、簡単のためブレード及び計算格子を2Dで表現しているが、実際にはこれらは3Dで表される。
【0036】
なお、後述の通り、時間積分計算部14が計算を実行する際には、マルチコプターの物体境界条件が設定される。しかしながら、ブレード周辺の領域に対しては上記の通りアクチュエータラインモデルが設定されるため、ブレード計算部13は、物体境界条件を設定する必要はない。
【0037】
図4は、ブレードに配置されたマーカー粒子が翼素運動量理論に基づいて周囲の空気から受ける力の一例を示す。ブレードB2のマーカー粒子iに対してかかる揚力及び抗力は、それぞれF
l及びF
dとして表される。θ、zはそれぞれ回転方向と推力の方向の座標軸を示す。γは、ブレードの回転方向であるθ軸に対するブレードの取り付け角度(局所ピッチ角)であり、αは迎角である。このとき、ブレードの相対速度u
relは次のように表される。
【数2】
ここで、u
zは周囲の空気の流れのz軸成分であり、u
θは周囲の空気の流れのθ軸成分である。また、rはマーカー粒子iのブレードの回転中心からの距離であり、Ωはブレードの角速度である。u
relを用いると、マーカー粒子の位置でブレードが周囲の空気から受ける力F
2Dは、以下のように表される。
【数3】
ここで、C
aはブレードの翼弦長であり、e
l、e
dはそれぞれ揚力、抗力が作用する方向の単位ベクトルである。C
l、C
dはそれぞれ揚力係数、抗力係数であり、迎角αに対するデータセットとして事前に翼素データとして用意される。また、Δrは、マーカー粒子同士の間隔を示すパラメータである。
【0038】
また、マーカー粒子iが、(x,y,z)の位置における計算格子点に与える力(すなわち、ブレードが回転していることで周囲の空気に与える運動量)は、次のように算出される。
【数4】
ここで、F
2D,iはF
2Dのマーカー粒子iの成分であり、N
pはマーカー粒子の総数である。
【0039】
ブレード計算部13は、パラメータε、Δrを設定することで、上記の(1)~(4)の計算を実行できるようにする。パラメータε、Δrの設定は、ユーザが入力部11を用いることでなされてもよいし、記憶部17に格納されている設定をブレード計算部13が用いることでなされてもよい。(1)~(4)の計算において用いられるパラメータε、Δr以外の数値は、マルチコプターの情報等とシミュレーションによって得られるデータに基づいて決定される。
【0040】
(D)その後、ブレード計算部13は、適用するアクチュエータラインモデルに対し、マルチコプターの機体の姿勢に応じて、機体とともに並進又は回転軸の回転の少なくともいずれかに関する座標変換を実行する。例えば、ブレード計算部13は、クオータニオンを用いることで回転軸の回転の座標変換を実現してもよい。
【0041】
(E)次に、ブレード計算部13は、マルチコプターの3Dモデルを計算領域に配置した場合にアクチュエータラインモデルを適用するブレードを決定する。ブレード計算部13は、ブレード周辺の領域にブレードの直径の100分の1の長さ程度の格子サイズとなる計算格子を配置する。格子サイズは任意であるが、格子サイズの大小は計算精度に影響する。計算格子の形状は、設定部12が設定したものである。
【0042】
(F)そして、ブレード計算部13は、アクチュエータラインモデルを適用することで数式(3)により計算されるブレードの受ける力(推力とトルク)を計算し、計算された受ける力を、機体のローターブレードを支持している部分に与える。一方、ブレード計算部13は、その力の反作用の運動量を、数式(4)に示す通りブレード周囲の空気に与える。
【0043】
(G)ブレード計算部13は、(E)で決定した領域1内の1枚のブレードについて、(F)でなされた処理の結果を用いて、上記の(1)~(4)の計算を実行する。計算で用いられる計算格子の設定は、(E)でなされた通りである。その結果、ブレード計算部13は、機体が移動したり回転したりする影響下でブレードが回転することでブレードが周囲の空気から受ける力と周囲の空気に与える運動量を算出することができる。
【0044】
(H)ブレード計算部13は、領域1内の各ブレードについて、(G)の計算を実行することで、ブレードが周囲の空気から受ける力と周囲の空気に与える運動量を、全ブレードについて算出する。
【0045】
図1に戻り、時間積分計算部14について説明する。時間積分計算部14は、胴体全長(すなわち、機体の全長)の300分の1の長さ程度の格子サイズの計算格子を、機体表面のごく近傍に配置する。設定部12が計算領域を領域1と領域2に分割する場合には、時間積分計算部14は、設定された領域2(すなわち、胴体周辺の領域)に領域1と異なる格子サイズの計算格子を配置してもよい。格子サイズは任意であるが、ある程度の計算精度を確保するためには、所定の大きさ以下の細かい格子を配置する必要がある。ただし、格子サイズとして、機体から遠方になるに従い、大きいサイズの格子が用いられてもよい。計算格子の形状は、設定部12が設定したものである。そして、時間積分計算部14は、計算格子を配置した領域に、移動する物体(すなわちマルチコプター)の物体境界条件を設定する。
【0046】
時間積分計算部14は、設定した物体境界条件を考慮しながら、計算格子を用いて離散化された流体方程式に対して、数値計算手法を適用して解くことで空力計算を行う。これにより、時間積分計算部14は、機体全体からブレードを除いた全ての部分(すなわち胴体)が移動することで胴体が周囲の空気から受ける力を算出する。また、移動する物体を反映する境界条件が空気側に及ぼす影響も計算される。「空力計算の数値計算手法」は、アクチュエータラインモデル以外の公知の計算手法であり、例えば、有限体積法、有限要素法、格子ボルツマン法、粒子法などを含む。この計算手法の詳細についてはよく知られているため、説明を省略する。
【0047】
また、時間積分計算部14は、必要であれば、計算量を削減するために、スライディング格子、重合格子等の移動計算格子法を用いてもよい。
【0048】
ここまでの過程で、ブレード計算部13及び時間積分計算部14は、ある時刻でのブレード及び胴体(すなわち機体全体)が周囲の空気から受ける力を計算することができる。ブレード計算部13及び時間積分計算部14は、この計算を、ブレードが回転する一定の時間について繰り返し実行することで、ブレードの回転に応じた空気流、および胴体が移動したことにより発生する周囲の空気流を算出することができる。これにより、マルチコプターの航行の振舞いを確認することが可能となる。なお、ブレード計算部13は、ブレードの回転に応じた空気流を算出する際に、入力部11から入力された回転数が時間的に変化する条件を用いてもよい。
【0049】
変化計算部15は、ブレード計算部13が計算した、ブレードが周囲の空気から受ける力と、時間積分計算部14が計算した胴体が周囲の空気から受ける力と、に基づいて、マルチコプターが空中でどのように航行するかをシミュレートする。詳細には、変化計算部15は、胴体の表面を細かく分割し、時間積分計算部14で求めた胴体表面に働く力を積分することで、機体全体が受ける平行移動の力と回転のトルクを求める。変化計算部15は、マルチコプターの各部の大きさ、形状及び質量等の情報や重心周りの慣性モーメントの情報を用いて運動方程式を積分することにより、機体の並進・回転・姿勢の時間変化を計算する。換言すれば、変化計算部15は、胴体に対する空力計算の数値計算手法の適用結果と、ブレードに対するアクチュエータラインモデルの適用結果と、を用いることでマルチコプターの航行をシミュレートする。
【0050】
表示部16は、変化計算部15のシミュレート結果を表示する。表示部16は、必要であれば、ブレード計算部13の計算結果又は時間積分計算部14の計算結果の少なくともいずれかについても、さらに表示してもよい。これらの計算結果は、ブレード周辺や機体の表面近くの空気の流れ、機体表面のさまざまな場所が空気から受ける圧力などである。表示部16は、例えばディスプレイやタッチパネル等である。ユーザは表示部16を視認することで、一定の時間経過におけるマルチコプターの自由航行シミュレーションの結果を把握することができる。
【0051】
記憶部17は、時間積分計算部14が実行する計算で得られた計算領域内の全ての空気の流れの時間変化、機体表面の圧力分布の時間変化、ブレード計算部13が実行する計算で得られたブレードが受ける力(推力とトルク)の時間変化を記憶する。記憶する頻度は、設定部12で指定される。また、記憶部17は、設定部12~表示部16に処理を実行させるためのプログラムや、計算格子の形状、翼素データ、パラメータε及びΔrの設定など、処理に必要な情報も格納する。
【0052】
[フローの説明]
図5は、情報処理システム10の代表的な処理の一例を示すフローチャートである。
図5のフローチャートによって、情報処理システム10の処理が説明される。なお、各処理の詳細については上述の通りであるため、説明を省略する。
【0053】
入力部11は、ユーザの操作に基づいて、シミュレーション対象となるマルチコプターの情報、ブレードの回転条件、周辺物体の情報等、計算に必要な情報を入力する(ステップS11)。設定部12は、計算領域、周辺物体の配置、境界条件、計算格子の形状といった計算条件を設定する(ステップS12)。なお、設定部12は、領域1及び2についてさらに設定してもよい。
【0054】
そして、ブレード計算部13は、アクチュエータラインモデルを適用することで、周囲の空気から受ける力をブレードについて算出する(ステップS13)。この詳細は(A)~(H)において示した通りである。また、時間積分計算部14は、空力計算の数値計算手法を適用することで、周囲の空気から機体が受ける力と周囲の空気への影響を算出する(ステップS14)。この詳細も上記の通りである。ブレード計算部13及び時間積分計算部14は、ステップS13及びS14の計算を、ブレードが回転する一定の時間経過についてループして繰り返し実行する。ここで、ステップS13とステップS14はいずれが先に実行されてもよいし、両者が並行して実行されてもよい。
【0055】
変化計算部15は、ブレード計算部13の計算結果及び時間積分計算部14の計算結果に基づいて、マルチコプターの航行をシミュレートする(ステップS15)。表示部16は、変化計算部15の計算結果を表示する(ステップS16)。
【0056】
[効果の説明]
以上に示した通り、情報処理システム10は、飛行体のブレードの計算にはアクチュエータラインモデルを適用する一方、それ以外の機体の部分の計算には空力計算の数値計算手法を適用する。そのため、自由航行シミュレータに必要な計算量を劇的に削減することが可能となる。
【0057】
これまでの関連技術では、ブレードの計算に対しても粘性項を持つNavier-Stokes方程式を離散化して解く空力計算の数値計算手法が適用されていた。このとき、十分な精度の計算結果を得るために、ブレード近傍には、ブレードの直径の1000分の1以下の長さの格子サイズの計算格子が配置される。ここで、ブレード近傍に配置される計算格子がブレードの直径の1000分の1のサイズである場合(状況A)、配置される計算格子がブレードの直径の100分の1のサイズである場合(状況B)と比較して、計算対象として考慮すべき計算格子の数は103(1000)倍となる。さらに、状況Aは、状況Bと比較して、計算の時間ステップの間隔も10分の1とする必要がある。したがって、例えば領域1についての計算量は、状況Aは、状況Bと比較して、104(10000)倍となる。また、ブレードの回転数が早いほど、計算の正確性を担保するために、計算格子を小さくする必要が生じる。そのため、ブレードについての計算量が膨大なものとなっていた。
【0058】
一方、本発明において、ブレード計算部13はアクチュエータラインモデルを適応することで、ブレード近傍に配置される計算格子を、ブレードの直径の1000分の1のサイズよりも大きくすることができる。そのため、関連技術と比較して、ブレードの1ステップ当たりの計算負荷を低下させることができる。例えば、関連技術における状況Aを、本発明では状況Bに変化させることができる。その結果、領域1に関する計算量を10000分の1以下に減少させることができ、領域1に関する計算量を例えば自由航行シミュレータ全体の計算量の10分の1以下とすることも可能となる。
【0059】
したがって、本発明に係る情報処理システム10は、ブレードが1000回転する程度までの時間を十分計算できることから、機体全体の自由航行をシミュレーション可能とすることができる。例えば、飛行体の離着陸の過程についても、情報処理システム10は、自由航行シミュレーションが可能である。
【0060】
さらに、以上に示した情報処理システム10の手法は、計算の精度も担保することができる。以下、実際のシミュレータ結果のデータを参照して、情報処理システム10の計算の正確性について説明する。
【0061】
図6は、参照論文(Knut Erik Teigen Giljarhus, Alessandro Porcarelli and Jorgen Apeland, “Investigation of Rotor Efficiency with Varying Rotor Pitch Angle for a Coaxial Drone”, Drones 2022, April 4, 2022, MDPI)で使用されたブレードと同じ形状と回転数のブレードを用いた場合の、周囲の空気が影響を受けることで生じる、ある時刻の流れの速度の大きさを示す数値計算のデータである。数値計算のデータは、ブレードの回転速度が1600rpm、1900rpm、2200rpm、2500rpmの4種類の計算結果がある。
図6から見てとれるように、アクチュエータラインモデルを用いた本発明に係る手法は、非常に細かい格子を用いてNavier-Stokes方程式を離散化して解く空力計算による結果(
図6の上段)と非常によく一致する計算結果(
図6の下段)を得ることができる。
【0062】
図7は、参照論文と同じブレードの形状と回転数を用いて情報処理システム10が計算を実行した結果(すなわち、本発明に係るアクチュエータラインモデルを用いた計算結果)を表したグラフである。
図7には、計算結果として、ブレードの回転速度が1600rpm、1900rpm、2200rpm、2500rpm、2600rpmとなる5種類の計算結果が示されている。
図7に示される通り、参照論文の実験データと、非常に細かい格子を用いてNavier-Stokes方程式を離散化して解く空力計算による結果と、が推力に関して非常によく一致する計算結果を得ることができる。
【0063】
図8は、空飛ぶクルマが離陸する際に、アクチュエータラインモデルを用いて計算したブレードの推力の反作用が周囲の空気にダウンウォッシュとして与えられ、それが地面に当たり横に広がる状態を示す計算結果である。
図8では発生する渦の様子が示されていて、空気の流れの速度勾配テンソルの第二不変量の等値面が示す通り、情報処理システム10は、ブレードから非常に細かい渦が放出されることを計算することが可能となる。
【0064】
なおユーザは、ブレードに対してアクチュエータラインモデルを適用するときの、マーカー粒子の間隔、又はガウシアンフィルタの影響半径のパラメータ、の少なくともいずれかの情報を入力してもよい。ブレード計算部13は、アクチュエータラインモデルの適用において、入力された情報を使用することができる。したがって、ユーザは、アクチュエータラインモデルの計算量の削減度合い及び正確性を、入力パラメータを変化させることで、自由に調整することができる。
【0065】
また、ブレード計算部13は、ブレード周辺の領域に適用される計算格子のサイズを、ブレードの直径の1000分の1以上としてもよい。例えば、ブレード計算部13は、計算格子のサイズを、ブレードの直径の100分の1としても良い。この値にすることで、ブレード計算部13は、アクチュエータラインモデルを用いた計算の精度を保ちつつ、計算量の削減の効果を図ることができる。しかしながら、ブレード計算部13は、必要に応じて、計算格子の長さをそれ以外の大きさとしてもよい。例えば、ブレード計算部13は、計算格子のサイズを、ブレードの直径の50分の1の大きさ、200分の1の大きさなど任意のサイズとしてもよい。
【0066】
本発明の情報処理システム10は、単一のコンピュータ装置として構成されてもよいし、複数のコンピュータ装置を有する分散システムとして構成されてもよい。分散システムにおいて、情報処理システム10が実行する処理は、複数のコンピュータ装置によって分担されて実行することができる。つまり、入力部11~記憶部17の構成要素は、2台以上のコンピュータ装置に分散されて搭載されてもよい。
【0067】
以上に示した実施の形態では、本発明に係る情報処理システムをハードウェアの構成として説明したが、本発明に係る情報処理システムは、これに限定されるものではない。本発明は、上述の実施形態において説明された情報処理システム10を構成する各装置の処理を、コンピュータ内のプロセッサにコンピュータプログラムを実行させることにより実現することも可能である。
【0068】
図9は、実施の形態に係る情報処理システム(換言すればコンピュータ)のハードウェア構成例を示すブロック図である。
図9を参照すると、情報処理システム90は、信号処理回路91、プロセッサ92、メモリ93、ストレージ94及びインタフェース95を含む。
【0069】
信号処理回路91は、プロセッサ92の制御に応じて、信号を処理するための各種の回路である。
【0070】
プロセッサ92は、メモリ93と接続されており、メモリ93からコンピュータプログラムを読み出し、メモリ93と通信しながら実行することで、上述の実施形態において説明されたシステムの処理を行う。プロセッサ92の一例として、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)、DSP(Demand-Side Platform)、ASIC(Application Specific Integrated Circuit)のうち一つを用いてもよいし、そのうちの複数を並列で用いてもよい。
【0071】
メモリ93は、例えば揮発性メモリで構成される主記憶装置である。メモリ93は、1個に限られず、複数設けられてもよい。なお、揮発性メモリは、例えば、DRAM (Dynamic Random Access Memory)等のRAM (Random Access Memory)であってもよい。
【0072】
メモリ93は、1以上の命令とデータを格納するために使用される。ここで、1以上の命令は、プログラムとしてメモリ93に格納される。プロセッサ92は、これらのプログラムとデータをメモリ93から読み出して実行することで、上述の実施形態において説明された処理を行うことができる。
【0073】
なお、メモリ93は、プロセッサ92の外部に設けられるものに加えて、プロセッサ92に内蔵されているものを含んでもよい。また、メモリ93は、プロセッサ92を構成するプロセッサから離れて配置されたストレージを含んでもよい。この場合、プロセッサ92は、I/O(Input/Output)インタフェースを介してメモリ93にアクセスすることができる。
【0074】
ストレージ94は、例えば不揮発性メモリで構成される補助記憶装置である。ストレージ94は、1個に限られず、複数設けられてもよい。なお、不揮発性メモリは、例えば、HDD(Hard Disk Drive)、PROM (Programmable Random Only Memory)、EPROM (Erasable Programmable Read Only Memory) 等のROM (Read Only Memory)、フラッシュメモリや、SSD(Solid State Drive)であってもよい。ストレージ94には、メモリ93に供給されるプログラムが格納されている。また、ストレージ94は、実施の形態1における記憶部17としても機能し、上記に示した時間積分計算部14、変化計算部15の計算結果や、処理に必要な情報を記憶してもよい。
【0075】
インタフェース95は、ネットワークを介して信号又はデータを送受信するための通信回路を含む。インタフェース95は、例えばNIC(Network Interface Card)であってもよい。プロセッサ92は、メモリ93およびストレージ94に格納されたデータを、インタフェース95を介して他の情報処理システムに送信してもよいし、他の情報処理システムから送信されたデータを、インタフェース95を介してメモリ93およびストレージ94に格納してもよい。
【0076】
以上に説明したように、上述の実施形態における各システムが有する1又は複数のプロセッサは、図面を用いて説明されたアルゴリズムをコンピュータに行わせるための命令群を含む1又は複数のプログラムを実行する。プログラムが実行されることで、各実施の形態に記載された情報処理が実現できる。
【0077】
プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群又はソフトウェアコードを含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、hard disk drive(HDD)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、compact disc read-only memory(CD-ROM)、digital versatile disk(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。一時的なコンピュータ可読媒体又は通信媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0078】
以上、実施の形態を参照して本開示を説明したが、本開示は上述の実施の形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。そして、各実施の形態は、適宜他の実施の形態と組み合わせることができる。
【符号の説明】
【0079】
10 情報処理システム
11 入力部 12 設定部
13 ブレード計算部 14 時間積分計算部
15 変化計算部 16 表示部
17 記憶部
90 情報処理システム
91 信号処理回路 92 プロセッサ
93 メモリ 94 ストレージ
95 インタフェース
【要約】
【課題】必要な計算量を削減することに寄与するシミュレータの開発方法、情報処理システム及びプログラムを提供すること。
【解決手段】本開示の一実施の形態にかかるシミュレータの開発方法は、飛行体の胴体周辺の空間を、計算格子を用いて離散化し、離散化された流体方程式を解くことで空力計算の数値計算手法を適用するステップと、飛行体のブレードに対してアクチュエータラインモデルを適用するステップと、数値計算手法の適用結果と、ブレードに対するアクチュエータラインモデルの適用結果と、を用いることで飛行体の航行をシミュレートするステップと、をコンピュータが実行するものである。
【選択図】
図5