問題タブ [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 - コマンド ラインを使用して S-Function データを変更する方法
コマンド ラインを使用して s-function パラメーターを変更する方法を教えてください。
次の行を使用して、s-function データを取得しました。
次に、appdata 構造体にアクセスして、出力ポートと入力ポートの数を変更しようとします。しかし、この appdata 構造を s-function に書き戻すにはどうすればよいでしょうか。出来ますか?または、s-function のデータ/パラメーター/ポート操作を実現できる他の方法はありますか?
simulink - S-Builder の Embeded coder Simulink (Xilinx "Zedboard" ターゲット Xilinx SDK 用) に外部 C ライブラリを追加します。
私は現在、Simulink Embedded Coder 手法を使用して、Xilinx Zedboard に実装されるプロジェクトに取り組んでいます。
ここで、データベースに接続するブロックを作成する必要があります (C ライブラリを使用して、MySQL 経由で)。#include <mysql.h>
問題は、S-Function Builder で , の後にこの simulink ブロックをクロスコンパイルするためのパスを指定する方法がわからないことです。
algorithm - matlab mファイルでsimulinkモデルの変数を使用するには?
私のキーワードが私の状況を説明してくれることを願っています。基本的には、simulink ブロックと S Function ブロックを使用して、Simulink で SMC (Sliding Mode Control) を使用しています。ここで、DE (Differential Evolution) アルゴリズムを使用して、最良の結果が得られる SMC のパラメーターを決定したいと考えています。DE は 2 つの m ファイルによって実装され、そのうちの 1 つは目的関数 (DE で必要) の関数を含み、もう 1 つは実行に使用される残りの DE アルゴリズムを含みます。私がしたことは、Simulink モデルの変数が必要なため、1 つの m ファイルを s 関数に変換したことです。私の質問は、もう一方の m ファイル (DE アルゴリズム) の目的関数の値を使用したいということです。 ) DE を実行していくつかの反復を行います。うまくいけば、私ははっきりしています。ここでいくつかのものを見つけましたが、どうやら、私は'
matlab - mex s-function コンポーネントは、変更された場合にのみ再コンパイルできますか?
テストの最初のフェーズでは、S-Function としてコンパイルされた Matlab Simulink 環境 (2010b 32 ビット) でコードを実行する必要があります。コンパイラは、Visual Studio 2010 に付属しているものです。
現在、次のようなコードをコンパイルするスクリプトがあります。
ここ数年でファイル数が大幅に増加し、コンパイルにかなりの時間がかかりました。
私の質問は、*.obj
が対応するものに対応していないかどうかを確認し*.c
、必要な場合にのみ再コンパイルする方法が存在するかどうかです。
ケースバイケースでスクリプトを変更する必要があるため、特別なスクリプトを作成することには慎重です。これは、エラーや不要なリスクが発生しやすい道だと考えています。
編集:
私の現在の解決策はdate
、ファイルのプロパティを取得して比較することです。
これが最もクリーンな解決策ではないことを理解しており、コメントで msはファイルを使用することを提案していnmake
ます。作成したことがなく、Matlab スクリプトから使用する方法がわかりません。
それはできますか?作成して使用するには、どの手順に従う必要がありますか?
c++ - レベル 2 c-mex 関数の入力が間違った値を返す
2 つの入力と 0 の出力を持つ TLC 生成の mexfunction があります。入力 1 は unsigned char で、入力 2 は unsigned int です。
入力値を取得しようとすると:
なぜu2
依存するのu1
ですか?
例: simulink で入力port #1 = 2;
⇒*u1= 2;
しかし、入力をsimulinkでport #2 = 1000;
⇒*u2= *u2 +(*u1*65636);
私はこれを見てmexprint
..
u2
最初の入力ポートに依存する係数で取得します
InputPortRequiredContiguous
とを 1に設定しInputPortDirectFeedThrough
ます。
matlab - 再構築しない限り、S-Function が Simulink によって検出されない
現在、Raspberry Pi で Matlab Simulink を使用しています。S-Function Builder ブロックを使用して、S-Function ブロックで使用している S-Function を生成しています。ただし、最初の起動時にビルドする必要がある S-Function ビルダーのコピーを常に保持する必要があります。
「S-Function 'read_accelerometer/S-Function' のエラー: S-Function 'sfun_read_adxl345' が存在しません」
.c と wrapper.c ファイル、および mexw64 と tlc ファイルを保持しています。しかし、それは問題ではありません。モデルをリロードするたびに、Builder ブロックを使用して S-Function を再構築する必要があります。
この問題を回避するにはどうすればよいですか?
c - SFunction 内で malloc を使用する際のエラー
simulink と統合する C-MEX SFunction を開発しています。ここでの目的は、ASCIIコードの配列を2倍に変換することです。matlab を開く前に、Visual Studio を使用してテスト コードを実装しましたが、問題なく動作しました。 (下記参照)
VisualStudio ですべてをテストした後、matlab の SFunction Builder にコピーしました。クラッシュはしませんが、malloc が期待どおりに動作していないようです。予想される出力は 6.3 (double) ですが、最後の桁の 3 (double) しか得られません。
何が起こっているか知っている人はいますか?何かアドバイスはありますか?
c++ - cmex SFunction から mex 関数を呼び出す
Visual Studio 2012 を使用して複合体を実装しmexFunction
、Matlab と正常に統合しました。(それを呼びましょうmexFunctionA.mexw32
)
このコマンドを matlab コマンド ウィンドウで実行すると、期待どおりの結果が得られます。
ここで、 ;mexFunctionB
を呼び出すを開発する必要があります。できる限りシンプルです。mexFunctionA
mexFunctionB
私が試しているCコード(内部)はmexFunctionB.c
次のとおりです。
このコード行はコンパイルされていません。
私が使用しているコマンドラインは次のとおりです。
したがって、考えられるエラーは次のとおりです。
#include
方法が間違っています。- コードをコンパイルするためのコマンド ラインが間違っています。
- 私がやろうとしていることができません。
- 他の何か。
誰でもそれを修正する方法を知っていますか?