タグ付けされた質問 「matlab」

1
dSPACEコンパイラリンカエラー - fscanfが未定義
私はやや手に負えない問題を扱っています。 MATLAB 2011a上でdSPACE 7.4(RTI 1006)を実行しています。これは、dSPACE DS1006 Cコンパイラv.2.2を使用していることを理解しています。私たちのモデルの1つをコンパイルしようとすると、fscanfが未定義であることを宣言するリンカエラーが発生します(カスタム関数で呼び出されています)。私は、stdio.hがシステム階層のどこにあるべきか、fscanfの定義が含まれていることを確認しました。問題を解決するために私が取ったステップは次のとおりです。 リンカは未定義のfscanf()について最初に文句を言う 私はそれがコンパイルされることを私が知っているところでモデル特有のファイルに挿入された追加の定義はリンカにfscanf()のための矛盾した定義について不平を言わせます stdio.hのfscanf()定義をコメントアウトすると、コンパイル/リンクが成功する stdio.hにスタブ定義を挿入し、オリジナル(およびモデル固有のファイルではスタブ)をコメントアウトすると、 'fscanfの複数の定義'エラーが発生します(これはストーリー全体の最も奇妙な部分です)。 スタブの定義(これは私たちのモデルを壊すべきではないと私は確信していますが、これを検証する機会はまだありません) int fscanf(int a, char *cp, void *b, ...){return 0;} ですから、正しく読んでいるのであれば、fscanfのバージョンであり、実際にはfscanfが実行すべきことを実行しません。要約すると、私はこのモデルを構築するために私のコンパイラのライブラリをハックしなければなりません、そしてそれが現時点で私たちのハードウェア上で動くとは全く確信していません。また、dSPACEのインストールを変更してfscanfを中断するようにオフィスの全員に指示したくありません。 誰かが私にこれについてのいくつかの洞察を与えることができますか? 更新:それは確かに私たちのハードウェアで動きます。しかし、私はfscanf()を壊すのは嫌いなので、これを解決したいのです。

0
この輸送方程式を離散化する
Iは、PDEをdiscretiseしようとしています:の関数でありと、及び、はダーシーフラックス(と関数)、は拡散/分散の係数、は定数。ϕ∂c∂t+∂j∂x=0ϕ∂c∂t+∂j∂x=0\phi \frac{\partial c}{\partial t}+\frac{\partial j}{\partial x}=0cccxxxtttj=qc−D(q)∂c∂xj=qc−D(q)∂c∂xj=qc-D(q)\frac{\partial c}{\partial x}qqqxxxtttD(q)D(q)D(q)ϕϕ\phi 間隔(xi−1/2,xi+1/2)(xi−1/2,xi+1/2)(x_{i-1/2}, x_{i+1/2}) 私の進歩 ϕ∂c∂t+∂j∂x=0⇒∂c∂t+∂∂x(qcϕ−D(q)∂c∂x)=0⇒∂∂t∫xi+1/2xi−1/2c dx +∣∣∣qcϕ−D(q)∂c∂x∣∣∣xi+1/2xi−1/2=0ϕ∂c∂t+∂j∂x=0⇒∂c∂t+∂∂x(qcϕ−D(q)∂c∂x)=0⇒∂∂t∫xi−1/2xi+1/2c dx +|qcϕ−D(q)∂c∂x|xi−1/2xi+1/2=0\begin{align*} &\phi \frac{\partial c}{\partial t}+\frac{\partial j}{\partial x}=0 \\ &\Rightarrow \frac{\partial c}{\partial t}+\frac{\partial}{\partial x}\left(\frac{qc}{\phi}-D(q)\frac{\partial c}{\partial x}\right)=0 \\&\Rightarrow \frac{\partial}{\partial t}\int_{x_{i-1/2}}^{x_{i+1/2}}c \ dx \ +\left|\frac{qc}{\phi}-D(q)\frac{\partial c}{\partial x}\right|_{x_{i-1/2}}^{x_{i+1/2}}=0 \end{align*} 項の値に関して式を単純化するにはどうすればよいですか。(私はmatlabにこれを繰り返し実行させようとしています)。ci,qici,qic_i, q_i コンベンション xixix_iは、番目の間隔の中点です。iii δxδx\delta xは間隔の長さです。 fi=1δx∫xi+1/2xi−1/2f dxfi=1δx∫xi−1/2xi+1/2f dxf_i=\frac1{\delta x}\int_{x_{i-1/2}}^{x_{i+1/2}}f …

1
入力の1つの値ごとに出力の結果を取得-MATLAB ODE
Matlabの質量-ダンパー-システムをシミュレートしていますが、システムへの入力として次のベクトル(1x100)があります。 ut = linspace(0, 10); u = 5 * sin(2 * ut) + 10.5; % input of our system - external force 次に、この微分方程式を使用して、入力ベクトルの各値の出力値を取得します。 function dx = odefun_4(t,x) m = 15; b = 0.2; k = 2; dx = [x(2); u/m - (b/m)*x(2) - (k/m)*x(1)]; end これは私のメイン.mファイルから次のように呼び出されます: [t,X] = ode45(@odefun_4, [0 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.