Simscape MultibodyにおいてS-Function Builder内でswitch case文は使えますか?
2 ビュー (過去 30 日間)
古いコメントを表示
void test1_Outputs_wrapper(const real_T *count,
const real_T *height,
const real_T *angle,
real_T *bit)
{
switch(case_number){
case 0:
if(*count<0.5){
*bit=0;
}else{
case_number=1;
}
break;
case 1:
if(0.5<=*count){
*bit=1024;
}else{
case_number=0;
}
break;
case 2:
if(1<*height){
*bit=-1023;
}else{
*bit=0;
}
break;
現在,Simuscape MultibodyでS-Function Builderを用いてアクチュエータに命令を出したいのですが「*count」という時間を入力しているものの上記のプログラム内で反映されません.CLOCKでの入力ではダメなのでしょうか?
4 件のコメント
Toshinobu Shintai
2019 年 10 月 5 日
添付ファイルにS-Function Builderでsiwtch caseを使った例を作成しました。バージョンはR2019bです。私の環境では問題なく機能しています。
ちなみに私は一番最初にminato_tohjima様が貼り付けたCコードを読み込んではいませんので、そのコードが意図した通りに記述されているか、については私は知りません。C言語のコンパイラの不具合の可能性もあるので、その場合はMATLAB側では対処できません。
もしC言語の文法に関する質問に発展するようであれば、C言語のコミュニティで質問してください(MATLAB Answersではしないように)。
また、S-Function Builderのさらなる使い方についての質問に発展するようであれば、まずは他のAnswersを確認し、その質問が存在していないようであれば、新規に質問を作成してください。
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Simscape Multibody についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!