Simulink内で2点境界値問題を解く方法

Simulink内で2点境界値問題を解く方法をご存じでしたら教えていただけませんか。
以下、私が困っているエラーや対策案です。
1.2点境界値問題のソルバー 'bvp4c'を含むSimulinkのプログラムを実行すると、「関数 'bvp4c' はコード生成でサポートされていません。」というエラーが出る
  対策1-1 コード生成を回避したいが、方法が分かりません。
  対策2-1 coder.extrinsic('bvp4c'); として 'bvp4c' を外部関数として定義する。
  
2.関数ハンドルは外部関数に渡せない。
 対策2-1を行うと、1のエラーは回避できるが、sol = bvp4c(@(x,y)odefun(x, y, z), @bcfun, lG); のような箇所で「関数ハンドルは外部関数に渡せない」というエラーが出ます。

 Akzeptierte Antwort

2 Stimmen

もっとも簡単な回避方法は、コード生成が必要ない処理を外部ファイル(.mファイル)の関数にしてしまい、その関数に対して「coder.extrinsic('〇〇');」としてしまうことかなぁと思います。

4 Kommentare

尚弘 金
尚弘 金 am 5 Nov. 2023
回答ありがとうございます.
bvp4cのコード生成がサポートされておらず,コード生成が不要です.
OtheFileFcnの中にbvp4cによる求解処理プログラムを書こうとすると,その入力となる関数ハンドルが必要となり,最初の質問の2のように,「関数ハンドルは外部関数に渡せない」というエラーが出ます。
私が状況を整理できておらず,的外れなことを申し上げているかもしれませんが,bvp4cのように関数ハンドルを入力とする関数をSimulink内で動かすことのできるサンプルをいただけますと幸いです.
交感神経優位なあかべぇ
Bearbeitet: 交感神経優位なあかべぇ am 6 Nov. 2023
bvp4cが全然分かっていないため、とりあえずbvp4cのヘルプの例のコードをSimulinkで実行してみました。
尚弘 金
尚弘 金 am 6 Nov. 2023
ありがとうございました.いただいた例を参考にプログラムをしてみます.
尚弘 金
尚弘 金 am 6 Nov. 2023
無事にbvp4cをSimulink内で実行することができました.ありがとうございました.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu RF Blockset Models for Transceivers finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!