こちらの投稿で説明したモデルを含むファイルをダウンロードしてください 。
翻訳に協力してくれたキリル・グゼンコに深く感謝します。
Wolfram SystemModeler用の新しい無料のModelPlugライブラリを使用すると、 SystemModelerでモデリングするためにArduinoを接続できます。 Arduinoは入力および出力コンポーネントと簡単に合致するため、電球、センサー、スイッチ、起動サーボなどを制御するためにSystemModelerモデルに安全に含めることができます。 ModelPlugライブラリを使用すると、モデリングでソフトウェアコンポーネントとハードウェアコンポーネントを自由に組み合わせて、Arduinoをデータ収集ボードとして使用できます。

SystemModeler Library Storeからライブラリをダウンロードした後、インストールする必要があります。 必要なのは、パッケージをダブルクリックして、ライセンス契約に同意することだけです。 このライブラリを使用すると、Firmata互換のボードをSystemModelerに接続できます。 つまり、すべてのArduinoボードです。
この投稿では、Arduino Unoを使用しました。 最も簡単な例は、ボード上のLEDの点滅です。

内蔵のArduino Uno LEDは赤で強調表示されます
これを行うために、LEDに対応する13番目のピンにロジック信号が送信される単純なモデルを作成しました。 LEDの点滅周波数は、信号の周波数に対応しています。

ModelPlugコンポーネントを使用するSystemModelerのモデル-デジタルコンタクトとArduino
次に、ブレッドボードにLEDを配置して、Arduinoの9番目のピンに接続します。

外部LEDを9番ピンのArduino Unoに接続する回路
正弦波をボードのアナログ出力に接続すると、実際の値からの信号は電圧に変換され、LED接点に印加する必要があります。

LED入力としての正弦波
LEDが完全な明るさでどのように光るのか、そしてまったく光らないのかを見て、正弦波の明るさを変えることができます。 そして、これはすべて「Arduinoのコーディング」を必要としません。
下の画像は4つの異なるオプションを示しています:最初はシミュレーション入力をシミュレーション出力に接続し、2番目はモデルからの信号をハードウェアに接続し(前の2つの例に示すように)、3番目にハードウェアからの信号をモデルに接続し、4番目に-すべてのコンポーネントはハードウェアです。

以下の表では、4つのオプションを示しています。

ModelPlugライブラリは、各オプションに非常に役立ちます。
入力と出力がモデルの場合の最初のオプションは、 SystemModelerのインストール直後に適用でき、ほとんどの場合、これで十分です。 それが私がテーブルでそれを選択しなかった理由です。 入力および出力にハードウェアコンポーネントがある場合は、 SystemModelerを介して信号を制御および処理/フィルタリングできます。 私の意見では、最も興味深いオプションは、一部のコンポーネントがシミュレートされ、他のコンポーネントが物理的な実施形態で表される場合です。 コンポーネントがシミュレートされ、データが物理デバイスから取得されるいくつかの例を見てみましょう。

次に、14番ピンからデータを読み取るようにUnoボードをセットアップしました。 照明を決定する感光性抵抗器を接続しました。

アナログ入力に接続されたフォト抵抗付きのUnoボード
SystemModelerのモデルでは、このアナログ信号を14番目のピンから別のコンポーネントに接続します。

このコンポーネントは、感光性抵抗器から値を受け取り、それらをしきい値と比較します。 値が0.02より大きく、シミュレーション時間が5秒を超える場合、シミュレーションは終了します。

照明値としきい値の比較、結果は質問に対する答えです-シミュレーションは終了しますか?
感光性抵抗器を手で短く閉じると、光の受光が停止し、値が0.02未満になり、シミュレーションが終了します。
物理デバイスが入力と出力にある場合の例を次に示します。感光性抵抗器からの信号を使用してシミュレーションを完了する代わりに、 SystemModelerのローパスフィルターを使用できます。 次に、サーボが-90°〜90°の範囲で回転できるようにスケーリングする必要があります。 手で感光性抵抗器を閉じると、一方向に回転し、そうでない場合はもう一方の方向に回転します。

ソフトウェアコンポーネントを介してサーボドライブに供給されるアナログ信号
前の例では、一部のハードウェアシステム間だけでなく、ModelPlugを介した通信を実装できることを示しました。モデルの形式で定義されたコンポーネントを使用できます。 抵抗とコンデンサを接続して低周波をフィルタリングする代わりに、または信号をフィルタリングするプログラムを作成する代わりに、フィルターモデルを使用します。 これにより、プロトタイピングが大幅に高速化されます。
さらに説明的な例を考えてみましょう。 より大きなソフトウェアモデルを使用して、アナログ入力に接続します。 トロリーで転がる倒立振子のモデルを使用します。 このシステムは、エンジン、メカニズム、振り子とトロリーの3次元コンポーネントで構成され、それらはすべてソフトウェアコンポーネントです。 Arduinoに接続されている加速度計からの信号をこのモデルに接続します。 以下のモデルでは、アナログ信号は左に送られます。 最初のハイパスフィルターは信号の定常値をフィルター処理し、ローパスフィルターは信号を平滑化します。

振り子の上部に、アナログ信号を振り子の上部に加えられる力に変換するパワーコンポーネントを配置します。

力が加えられた機械システム
そして最後に、加速度計をアナログピンに接続します。

倒立振子に接続された加速度計
さて、加速度計を素早く前後に動かすと干渉が発生し、振り子制御システムは適応を試みる必要があります。 振り子をとても速く動かして裏返すことが可能になるのだろうか?
ModelPlugライブラリは無料で、 SystemModeler Library Storeからダウンロードできます。 Mac、Windows、Linuxで動作します。
SystemModelerの試用版を試すことができます。 学生用または家庭用のライセンスを持つオプションもあります。 この記事で紹介するすべての機器は、50ドルの予算に収まります。