問題タブ [s-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - ブロックスコープでSimulinkに任意の型を保存する方法は?
どうやら Simulink は少数のデータ型しかサポートしていないようです。
では、他のものを維持するにはどうすればよいでしょうか。ディレクトリから画像を生成したいのですが、ディレクトリ リストと現在の位置を保持するにはどうすればよいですか?
次のコードはエラーを引き起こします
s-function - s-function: 連続状態空間
連続状態空間モデルのために、s-function で m ファイルを呼び出しています。24行目のスイッチでフラグを使用するとエラーが発生します。
エラーは次のとおりです。
"??? 入力引数 "フラグ" が定義されていません。 ==> 緯度 24 スイッチ フラグのエラー"
メインの m ファイルのサブ関数は次のとおりです。
01:
02:
03:
サブ関数はエラーを出していません。
matlab - simulink でカスタム s-function を作成する方法は?
simulink でカスタム s-function を作成するために使用できるブロックは何ですか?
S-Function を使用して C コードを使用したい.定義しなければならない関数があることはわかっているが、その関数に到達する方法や正確にどのコードから始めればよいかがわからない..
注:私はmatlabとsimulinkがまったく初めてです..
matlab - Simulink で動的にサイズ変更されたバス オブジェクト
渡される1つのパラメーターに応じて可変数の状態を持つCS関数を作成しました(計算流体力学を使用しており、パラメーターはセルの数です)。温度プロファイルを含むバス オブジェクトを S 関数から出力したいと考えています。問題は、Simulink (バス エディター) でバス オブジェクトを作成するときの出力の長さがわからないことです。CS 関数からバス オブジェクトのサイズを動的に設定する方法はありますか?
code-generation - SIMULINK での S-Function (C コード) のマルチインスタンスの使用
SIMULINK モデルに、関数内でいくつかの静的変数を使用するレガシー C 関数があります。静的変数はグローバルに使用できます。モデルの複数のインスタンスを参照すると、S-Function がそのように構成されていないため、エラーが発生します。コード生成でこれが許可されていないため、このエラー メッセージが表示されます。
私が得るエラーメッセージは次のとおりです。
S-Function ブロック 'ECDCTRL/PULDESC/S-Function Builder' は、複数の実行インスタンスをサポートすることを宣言していないため、マルチインスタンス ノーマル モードではサポートされていません。S-Function が複数の実行インスタンスの要件を満たす場合、'mdlSetWorkWidths' メソッドで SimStruct 関数 'ssSupportsMultipleExecInstances' を使用してこれを宣言できます。
(MYSFUNC)_Outputs_Wrapper.c
自動生成されたコードでビルドするときにファイルを使用しています。モデルの複数の参照を使用する場合に、レガシー C 関数を確実に使用できるようにするにはどうすればよいですか? SIMULINK の Web サイトではメソッドの使用が提案されていますが、ヘッダー ファイルssSupportsMultipleExecInstances(SimStruct *S, bool flag)
を使用していないため正しくありません。SimStruct
回避策は何ですか?
matlab - シリアル ポートからデータを読み取る S-Function を作成するのに役立ちます。
ここで問題が発生した後、MATLAB Function ブロックを使用して関数を作成するための助けが必要です。次のリンクで、一部の人がそのブロックまたは s-function で解決したことを確認しました: http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/317910
http://www.physicsforums.com/showthread.php?t=595813
http://www.mathworks.de/matlabcentral/newsreader/view_thread/250266
だから私はこれで試しました:
only3
私が作成した関数はどこにありますか。文字列から最初の 3 文字を取得し、'status'
答えの 3 文字だけを比較する必要があります。
通信がすでに開かれているかどうかを知るために行いました。しかし、simulink はウィンドウとしてエラーを返します:
最初の反復でポートが開いた後、ポートを開こうとしていると思います。
編集:私はこれで私のコードを変更します:
%%Phil の提案から抜粋:
エラーとして返されます:
ハイライトy
表現。
更新編集: 次のコードで解決しました:
ただし、以下でコメントしたように、シミュレーションを停止するたびに、通信が閉じられないため、Matlab を再起動する必要があります。これは、シミュレーションを再試行すると、「最初のエラー」が返されるためです。
何故かはわからない。M コード レベル 1 S-Function の関数のfclose(s)
ように停止するすべてのシミュレーションを実行するものがあるでしょう。mdlTerminate
いくつかの提案?