私の練習では、会話で特定の「リアルタイムマシン」に言及したときに、残念ながら会話のトピックとは無関係に100万の団体が対話者の目をすり抜ける状況に遭遇します。
最初の記事では、ロシア語を話すエンジニアの聴衆のためにこのような異常な音でこのトピックにいくつかの光を当てたいです。

最小限の人件費でハードリアルタイムモードで制御アルゴリズムと物理モデルをSimulinkモデルの形式で起動することに興味がある人は、カットしてください!
注意、たくさんの画像!

だから、簡単な定義:
- リアルタイムマシンは、さまざまなタスクをリアルタイムで実行するように設計されたコンピューターです。
短い定義の説明:
- 幅広いタスクには、ソフトウェアおよびハードウェアコンポーネントの汎用性と冗長性が必要です。 ほとんどの場合、このようなPC(個人用コンピューターと混同しないように、産業用コンピューター)には、インターフェイスカードとドライバー用の豊富な入出力ツールセットがあります。
- リアルタイム操作の要件により、このPCはリアルタイムオペレーティングシステムを実行している必要があります。 このルールには例外があり、無料アカウントモードをキャンセルした人はいません。
例外があります-いくつかのマシンからの合成シミュレーターがあり、入出力カードがなく、工業用のパフォーマンスではなく、ソフトリアルタイムです。 しかし、繰り返しますが、ほとんどの場合、これはハードリアルタイムで動作できるハードウェアおよびソフトウェアコンポーネントを備えたIBM互換のコンピューターです。
ロシア語の文学や日常生活では、 ソフトウェアハードウェアシミュレーターや半自然なモデリングという用語がよく見られます。 私の意見では、それらは完全ではありません。 「モデルのシミュレーション」はこのデバイスの単一の機能ではないためです。
そのようなソリューションのメーカーのリストは非常に広範囲です。 Speedgoat製品を考慮に入れます。これにより、幸運にも密接に連携できました。
以下では、例に基づいて、そのようなマシンの使用の本質を明らかにしようとします。
例1
エンジニアのチームが電気駆動装置を開発しています。 Simulinkには、 コントローラーサブシステム(制御システム)が制御システムエンジニアによって開発され、 プラントサブシステム(エンジンモデル)が物理モデリング部門のエンジニアによって開発されたモデルがあります。
タスク:コントローラーのハードウェアプロトタイプはまだありません。いつになるかは明確ではありません。 エンジンのプロトタイプもありません。または、まだ原油の制御システムに接続するのは怖いです。
解決策:リアルタイムシステムを使用して、制御システムのラピッドプロトタイピングを行います。 また、エンジンの物理モデルをリアルタイムで実行するための、より生産的な別の車。 これらのマシン間のインターフェースは、実際のエンジンとコントローラー間のインターフェースと同じにすることができます。 この束はHIL-Hardware-In-The-Loopと呼ばれます 。 単純な- ハードウェアとソフトウェアのシミュレーション 。 デバイス間のデータ転送媒体の影響を考慮に入れて、制御アルゴリズムを制御オブジェクトのモデルと一緒に初期段階でリアルタイムに統合およびテストできます。
次の図は、このようなプロセスの図を示しています。 制御システム用のリアルタイムマシンは、その後の現場での配置のために保護できます。 物理モデル用のマシンには、より生産的なマシンが必要です-右側に示されています。 アルゴリズムとモデルは、マウスを1回クリックするだけで実世界に転送され、プログラマの助けを借りずに、またRTOSのニュアンスを深く理解しなくても、エンジニアが実行できます。

例2
すべて同じチーム。 プロトタイプエンジンがあり、プロトタイプコントローラーはまだ開発中です。
タスク:実際の制御オブジェクトで制御システムをテストする必要があります。
解決策:制御システムは、PCでの作業時にエンジンモデルで既にテストされています。 その後、HILモードでさらに完全になります。 さて、実際のプロトタイプが登場したとき、それを起動するのはそれほど怖くありません。 ほとんどのエラーはすでに捕捉されており、システムの検証のみが必要だからです。
制御オブジェクトが最初からあった可能性もあります。 次に、制御システムモデルから動作中のハードウェアへの迅速な移行は、 Fast PrototypingまたはRapid Prototypingと呼ばれます。

例3
再びおなじみのチーム。 最初のサンプルコントローラーが登場しました。
タスク:最初のサンプルをマルチキロワットエンジンに接続する必要があります
解決策:セキュリティ上の理由から、興奮しないでください。まず、リアルタイムマシンでエンジンモデルを使用して2、3のテストを実行してください。 これは、純粋なプラントシミュレーションまたは制御オブジェクトシミュレーションになります。
リアルタイムマシンで飛行機のモデル全体を起動することができます。 航空では、そのようなシミュレーターは愛情を込めて「電子鳥」と呼ばれることがよくあります。
ちなみに、コントローラファームウェアは、前の例でリアルタイムマシンで起動されたのと同じモデルから必ず生成される必要があります。 これは、エンドツーエンドのトレーサビリティを保証する唯一の方法です。 ファームウェアを再度書き換えると、新しいエラーが発生し、以前の手順が大幅に削減されます。
以下は、問題を解決する本質と、コントローラーとしてのシーメンスPLC、および制御オブジェクトとしてのリアルタイムマシンを使用したビデオワークフローを説明する図です。

PLCシーメンス+ Speedgoatリアルタイムマシン
例4
開発の最終段階。
タスク:実際のドライブで100500テストを実施し、できるだけ早く結果を文書化する必要があります。
解決策:リアルタイムマシンは、テストベンチの中心として機能します。テストスクリプトを生成し、必要なパラメーターのログを保持します。 MATLABでは、結果に応じて自動的に再構築できる非線形テストスクリプトを作成できます。 ドキュメントジェネレーターは、必要な形式のレポートを自動的に生成するのに役立ちます。

例からわかるように、同じマシンを異なる用途で再利用できます。 しかし、それにもかかわらず、これらのデバイスを完全に統合することは不可能です-機能の特定の分布があります。 たとえば、Speedgoat行は次のようになります 。

教育版は、工科大学の研究室にとって計り知れない喜びです。
たとえば、これをラボで一定期間の認定を取得すれば、より高度なプロジェクトを作成できます。
内部の Speedgoatのリアルタイムマシンには、MITのCheetahロボットがあります 。
そして、同じうちの2つをNaberezhnye Chelnyに連れて行き、KFU支店の制御システム部門に行きました。
次の質問をさらに詳しく説明する別のアイデアがあります。
すなわち:
- C / C ++ / Verilog / VHDLコード生成
- ハードウェア、I / Oカード
- ソフトウェア環境、RTOS、BIOS
- リアルタイムデバッグ(外部モード)
これは次の記事になります。 コメントで質問や考えられることを聞きたいです。
8月には、このトピックに関する技術的なウェビナーを開催する予定です。 招待状はmatlab.ruに投稿されます 。 参加者が興味深い質問のある服飾雑貨を持っているなら、私は非常に幸せです!
読んでくれてありがとう!