Matlabユザコミュニティ

MATLAB & Simulinkユ,ザ,コミュニティ,向け日本語ブログ

神奇公式を用いたタ电子邮箱ヤモデリング

お久しぶりです。学生競技会を担当している飯島です。
本日のブログの記事は,MathWorksの海外版のブログにも掲載され,人気だった“神奇公式を使ったタイヤのモデリング”に関する記事を和訳させていただきました。こらの記事は自動車を作っている人たにはヒットする内容になっているので最後までお楽しみください。(オリジナル記事
以下和訳
————————————————————————————
今回の記事はUPBracing公式学生チームの汤姆蒂斯代尔を迎えてお話を進めていきます。Tomにはこの場を利用して,彼の開発したタいて紹介をしていただきます。
はじめに
このブログでは,魔术公式轮胎モデルの作成,フィッティング,評価のための新しいMATLABツール(GitHub)を簡単に紹介します。このツールは,学生フォーミュラ用タイヤテストコンソーシアム(以後FSAE TTC)のデタを使用してタヤモデルを実装しようとする学生向けに作成されました。フィッティングしたモデルは,行动ファイルまたは構造体として出力して,このツールの外部で使用することができます。
0 _introduction_gif.gif
モチベ,ション
あなたは学生フォ,ミュラ(fsae)に参加していますか?もし答えが“はい”であれば,車がいかにタescヤに大きく影響をされるのかはご存知でしょう。エンジン(またはモーター)の路面への最大伝達力を制限するため,タイヤの特性を理解し比較することで,適切なタイヤを選定する必要があります。また,MATLAB / Simulinkで車両運動制御アルゴリズムや高精度の車両モデルを開発する場合にも,タイヤのモデリングが必要になります。私自身,学生フォ,ミュラの現役学生であり,私のチ,ムUPBracingでは,これらの典型的な課題に直面しました。
幸いなことに,学生フォーミュラのチームはFSAE TTCのメンバーになることで,高品質のタイヤデータにアクセスすることができます。わずかな会費で,学生フォーミュラで利用するほとんどのタイヤの完全なデータをダウンロードすることができ,それを使って,高精度で計算効率の高い,経験的なタイヤモデルを作成することができるのです。
魔术公式轮胎は,経験的タイヤモデリングの唯一の手法ではなく,数あるうちのひとつに過ぎません。しかし,(線形タaapl .ヤモデルを除けば)最も人気のあるモデルであり,それには理由があります。下記に示す式は,有名で古典的な神奇公式の発展版と理解することができます。
y = D⋅罪(C⋅反正切(B⋅x - e (B⋅x-arctan (B⋅x))))
ここで,yは出力変数(例:横方向のタaapl .ヤ力),xは入力変数(例:スリップ角)である。B, c, d, eはチュ,ニングパラメ,タとします。
古典的な魔术公式をデータにフィットさせる方法の例として,MathWorks社のスタッフによるブログ記事”轮胎测试数据分析を参照することができます。彼らの場合,フィッティングの結果,現在の定常状態に応じてパラメータを変更する大きな補間グリッドを生成しています。しかし,補間グリッドは,特に実行速度が重要な場合,不利になることがあり,また,フィット処理後に修正することも困難です。
古典的な魔术公式をさらに発展させたものに,約100のパラメータを持つ半経験的魔法公式モデルがあります。半経験的とは,そのモデルがタイヤの力学に関する知識を方程式に組み込んでいることを意味し,例えば多項式モデルのように純粋に経験的であるわけではありません。そのため,半経験的神奇公式モデルは,いわゆる類似性法を用いてタ@ @ヤ特性を現実的に外挿することも可能です。通常,起こりうるすべての定常状態に対するテストベンチデータがあるわけではないので,これは非常に便利です。例えばttcでは,スリップ角は6度までしかテストしていません。100年このモデルは以上のパラメータを調整する必要があり,非常に複雑に見えますが,モデル——データ——フィットのために必要なパラメータは,通常そのうちのほんの一部だけです。しかし,MATLABスクリプトだけで魔术公式轮胎モデルを構築するのは,特にパラメータを手動で調整する場合,少々面倒な作業になります。私のルが,そのような点で学生の皆さんのお役に立てれば幸いです。
以下神奇方程式や神奇方程式轮胎の表記は半経験式を意味する。
方法論
ここで紹介する魔术公式は轮胎工具,魔术公式轮胎モデルをデータに適合させるための,商業製品に代わるオープンソースの代替品です。このルは,Magic Formula Tirematlabラescブラリと密接に関連したプロジェクトのグラフィカルラッパ,として機能します。guiで行うほぼすべての作業をmatlab上のラescブラリで行うことができます。また,GUIでフィッティングに使用される魔术公式轮胎の方程式は,ライブラリで使用されるものと同じであることを意味します。つまり,フィッティングされたパラメータ・セットは,魔术公式轮胎MATLABライブラリのコマンドライン・ツールを使った場合と同じ結果をGUIで得ることができるのです。
ところで,上記のライブラリの評価関数はコード生成に互換性があり,UPBracingではその目的で使用されています。ですから,あなたのコード生成プロジェクトにおいて,GUIを使用してモデルを適合させ,ライブラリを使用して評価することができますので,ご安心ください。
神奇配方轮胎の実装
神奇配方轮胎モデルの実装を理解したい人のために,簡単にまとめておきます。ここで,絶対的な参考文献は,Hans B. Pacejka著"轮胎及车辆动力学(2012年)です。4.3..2.章に、方程式のフルセットが載っています。また、MF-Tyre/MF-Swiftのマニュアルは、パラメ,タのカンニング用紙のようなものなので,近くに置いておくとよいでしょう。これらの実装は非常に簡単です。Fx0のソ,スコ,ドを見てみましょう。これは,純粋な縦滑りに対する縦方向のタ。
——————————————————————————–
function [Fx0,mux,Cx,Dx,Ex] = Fx0(p,长滑移,倾斜,压力,Fz)
% (4. e1)
FNOMIN = p.FNOMIN.*p.LFZO;
% 4. (ea2)
dfz = (Fz-FNOMIN)./FNOMIN;
% (4. e2b)
dpi =(压力-p.NOMPRES)./p.NOMPRES;
% (4. e11)
Cx = p.PCX1.*p.LCX;
% (4. e9)
Fx0 = Dx。* sin (Cx。*世界(Bx . * longslip-Ex。* (Bx . * longslip-atan (Bx . * longslip)))) + SVx;
结束
———————————————————————————
パラメータ名は魔术公式轮胎/ MF-Swiftのマニュアルに準拠して実装し,変数名はPacejkaの本に忠実に従おうとしています。それ以外は,本の中の数式をmatlabのコ,ドに変換するだけです。
Fitterの作成
タイヤデータの分析では,lsqcurvefit関数を使用して魔术公式轮胎モデルをデータに適合させます。その名の通り,誤差の二乗和を最小化します。魔术公式轮胎工具は,魔术公式轮胎MATLAB库に含まれる钳工を使用します。これも最小二乗法を用いていますが,fmincon関数を用いています。これは,魔术公式轮胎の特定の変数が常に一定の範囲内にあることが望ましいため,非線形制約も実装したかったからです。たとえば,Pacejkaの本には次のように書かれています。
Cx=pCx1⋅λCx >0, Dx=μx⋅Fz⋅ζ1>0, Ex=…≤1
ここでCxとDxは0よりも大きくなければならない。この式は钳工の非線形制約として実装することができる(ソ,スコ,ド参照)
——————————————————————————————
[~,~,Cx,Dx,Ex] = mftyre.v62.equations.Fx0(参数,长滑移,倾斜,压力,Fz);
c = [-Cx+eps;-Dx+eps;Ex-1];
——————————————————————————————
ここでcは非線形制約としてfminconに渡された関数ハンドルの出力である(nonlcon参照)。次に,モデルをデ,タに適合させる順序を考えなければなりません。時系列データを定常状態に分離した,つまり,各入力が一定とみなせる分離したデータ配列があると仮定すると(滑り率や滑り角などの掃引変数を一つ除いて),次のようになります。
1 _table_image.png
魔术公式轮胎はより多くの出力をモデル化できるため,このリストは不完全なものですが,デモンストレーションには十分です。この表は,常に最初に純粋なスリップ条件(Fx0 Fy0)にモデルを適合させ,それから他の方程式に移行すべきことを示しています。この順序は,方程式の依存関係から自然に来るものです。FxはFx0を使い,それにスケ,リング項を適用させ,Fyも同様にスケ,リング項を適用します。Fx0とFy0のどらを先に当てても同じであることに注意してください。ここで説明した順序は,Fitterにも実装されています。まり,GUIで複数の适配模式を選択すると,适配器は段階的に進行します。
GUI の構築
私のgui構築のアプロ,チは,matlabが提供するカスタムuiコンポ,ネントクラスを使って,AppDesignerを使わずにモジュ,ル化されたアプリケ,ションを開発することでした。カスタムコンポーネントを使ってアプリを構築すると,アプリの一部にのみフォーカスすることが非常に容易になります。個々のuiコンポ,ネントを単独で実行し,バグが発生しないかどうかを確認することができます。カスタムuiコンポ,ネントクラスを開発する際に、常にアプリの全てを実行する必要はありません。
私は今でも原型を素早く作成し,計画したUIがうまく見えるかどうかを確認するためにAppDesignerを使っていますが,AppDesignerはプロパティの利用レベルを制限したり,ループでコンポーネントを作成できなくするなどの理由から,アプリケーションに使用しない方が良いと考えています。しかし,R2021aから,AppDesignerでカスタムUIコンポーネントを使用できるようになったことは特筆すべきことです。これによって,今までの問題が解決されるかもしれませんが,私はまだ試していません。(使用方法参照)
アプリのデモ
これから,fsaeタヤテストコンソシアムのデタを使って,重要なワクフロのデモを行います。デタは,ラセンス契約に準拠するため,不明瞭にされ,非特定化されています。
アプリの▪▪ンスト▪▪ル
アプリをFileExchangeからダウンロ,ドする方法です。または,GitHubから最新リリースをダウンロードすることもできます,がいずれにせよ新しいリリースはFileExchangeに同期されます。アプリを含むルボックス(*.mltbx)をダウンロドし,ンストルします。その後,アプリのカタログからルを起動することができます。
2 _image.png
タ▪▪ヤデ▪▪タの取り込み
まず,測定デ,タを取得する必要があります。学生フォ,ミュラTTCのメンバーであれば、彼らのフォーラムに進み、そこからデータをダウンロードすることができます。MAT形式でSI単位でフォーマットされたデータでないと、あらかじめインストールされているパーサーは失敗する可能性があるためご注意ください。
一般に,ttcのデ,タは次の2種類のテストに分かれています。
  • ドラブ/ブレキ
  • コ,ナリング
ドラ▪▪ブ/ブレ▪▪キは,ゼロスリップ角または一定のスリップ角(ステアリング角)を持▪▪操作です。他のすべての入力を一定に保ながら,スリップ率を掃引します(タヤの駆動と制動によって)。コ,ナリングはスリップ率を全く考慮せず,他の入力が一定のまま,スリップ角だけを掃引する。このように,完全な魔术公式轮胎モデルを適合させるためには,与えられたタイヤのドライブ/ブレーキとコーナリングの両方のデータセットが必要です。この例は,インストールされたツールボックスに含まれる非識別化および不明瞭化されたデータを使用することで行うことができます。工具箱フォルダに移動すると,doc /例子/ fsae-ttc-data /の下にサンプルデータがあります(TTCにまだアクセスできない場合)。タイヤの特性は変更されており,結果として得られるモデルは実際のタイヤのように動作することに留意してください。
3 _image.jpg
次に,“タヤデタ”タブに移動し,図のようにンポト処理を行います。
4 _gif.gif
装配工 の設定と実行
まず,新しいタ。このためには,轮胎模型タブに戻り,新模型をクリックし,保存するファイルを選択すると,以下のようなデフォルトのモデルが表示されます。
5 _image.jpg
[タヤ分析]タブに移動して,このモデルがどの程度デタに適合しているかを見ることができます。ネタバレ注意:まだフィットしていないため,意味をなしません。
6 _image.jpg
次に,fit-modeを設定する必要があります。ここでいうfit-modeとは,これからあてはめようとする方程式のことです。先に説明したように,方程式によってフィットさせるべきデ,タが異なります。たとえば,Fx0をフィットさせるには,すべり角のない(純粋な縦すべり)デ,タが必要です。いずれにせよ,モ,ドFx0とFy0を最初にフィットさせるのが常道です。では,そうしてみましょう。タヤモデルタブに戻り,フィットモドを調整し,フィットを開始します。
7 _gif.gif
目的関数が非常にゆっくり減少していることに気づいたとき,処理をキャンセルしました。しかし,fminconの現在の状態は失われず,最後の反復は保存されています。なお,Fy0がフィットする前にキャンセルしているので,Fx0だけが改善されているはずです。これでフィットした値を見て,モデルに追加することができます。
8 _gif.gif
フィットした値が信用できない場合は,値フィ,ルドにタ,プして手動で変更することも可能です。
モデル - - - - - - デタ - - - - - - フィットの検証
再びタイヤ分析タブに移動して,モデルの適合性を検証するために,いくつかの定常状態をプロットしてみましょう。
9 _gif.gif
完全ではないが,満足のいくフィットができました。Fy0、外汇、财政年度についてはまだフィットしていないので,これらのモードについては悪い結果が予想されることに注意します。
モデルを手動で調整
モデルで遊びたい場合やモデルをいじってすぐに結果を見たい場合は,ウィンドウのレイアウトを変更したり,プロットの自動更新オプションを使用することをお勧めします。これらを行うことで,モデルパラメ,タの意味や結果を理解するのに役立,ます。また,完全な適合を目指すのであれば,必要なステップです。Fitterは良いですが,完璧ではありません。
10 _gif.gif
フィットしたタ▪▪ヤモデルのエクスポ▪▪ト
このファイルは,魔术公式轮胎ツールにモデルを保存して再インポートするのに便利ですが,市販の多くのツール(亚当斯,西门子NX模型など)とのインターフェースにもなっています。エクスポトされたファルは次のようなものです。
————————————————————–
(LONGITUDINAL_COEFFICIENTS)
Pcx1 = 1.6
Pdx1 = 1.2
Pdx2 = -0.18232
Pdx3 = 15
PEX1 = -5.6295e-09
Pex2 = 0.24361
Pex3 = 0
Pex4 = 0
—————————————————————
また,垫としてエクスポートを選択すると,タイヤモデルのパラメータが構造体に変換され,垫ファイルに保存されます。このエクスポ.トは,例えばラ.ブラリのmftyre.v62。eval関数を使用してMATLAB内で魔术公式タイヤモデルを使用する必要がある場合に有効です。
現在,垫ファイルをツールにインポートすることはできませんので,行动ファイルは常に垫エクスポートとは別に保存しておく必要があります。
結果と結論
我々は,魔术公式轮胎モデルをFSAE TTCからの実データに適合させました。デモのためにいくかのステップを省略しましたが,すべてのプロセスは5分未満で完了しました。前述のように,TIR-fileをサードパーティのシミュレーションに使用するか,エクスポートした構造体を直接MATLABで使用するかのどちらかを選択することができます。魔术公式轮胎MATLABライブラリを使用する場合,以下のコードをご使用ください。
—————————————————————–
[Fx,Fy] = mftyre.v62.eval(p,slipangl,longslip,inclangl,inflpres,FZW, tyaddress)
—————————————————————–
ここで,pはエクスポ,トされたパラメ,タ構造体です。私の経験では,この評価関数はオ,バ,ヘッドが少なく,実行速度が非常に速いことが証明されています。リアルタesc escム制御や推定アルゴリズムでの使用を念頭に置いて作成したため,これは必要条件でした。
ただし,現在のところ式は完全ではありません。例えばモメントMz0, Mz, Mx, Myが計算されていません。また,タ,ンスリップは無視されています。马可可•福尔兰正によって作成されたmfevalプロジェクトを使って,エクスポ,トされたtirファ,ルを評価することもできます。ただ,guiもモ,ドに合わないことに注意してください。
—————————————————————————————
提及。output = mfeval(TIRfile, inputs, useMode);
—————————————————————————————-
このツールが学生フォーミュラの一部の学生の役に立ち,最終的に詳細なタイヤモデルを自分で作ることができるようになればいいと考えています。
今後の展望
魔术公式は轮胎工具,数人のベータテスターによると,すでに素晴らしい働きをしているようです。しかし,近い将来,いくかの機能が計画されています。
-神奇配方轮胎の旧バ,ジョンとの互換性
-より多くの分析オプション(例:Kamm-Circle)
-クオリティ·オブ·ラescフの改善(使いやすさ)
-钳工のための重み付け機能(例えば低荷重に重きを置くなど)
もしあなたがル,プの中にいたいなら,私のGitHubリポジトリにスタ,を付けるか,FileExchangeで私のツールを評価することを検討してください。どちらも,ツールに機能を追加するための私のモチベーションを保つことができます。もし,あなた自身が貢献したいのであれば,遠慮なくそうしてください。私に連絡すれば,協力する方法を見つけられます!
謝辞
このプロジェクトは公式SAE轮胎测试财团(FSAE TTC)と德轮胎测试研究设施(TIRF)から提供されたデータなしには成り立ちませんでした。アプリケーションの例や画的像,記録には,ライセンス契約に準拠するため,非識別化され,不明瞭なテストデータが使用されています。爱德华·m·卡斯普夏克博士には,デモのためにユーザー,非識別化,および不明瞭化されたデータの提供を許可していただき,特別に感謝します。
また,LinkedInで楽しいやりとりをしたMarco Furlanにも謝意を表したいです。彼は,魔术公式轮胎のオープンソースMATLAB実装の決定版であるmfeval工具箱を開発しました。彼のプロジェクトは,私が魔术公式轮胎を使い始めてから3年近く経ちますが,大変感謝しています。
最後に,MATLAB関数histcountsを使用して時系列データを定常状態に自動的に分離する天才的な方法を学んだ,MathWorksスタッフの”タイヤ試験データの分析“という以前参照したブログ記事に謝意を表したいと思います。。

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。

Baidu
map