关于MATLAB/Simulink中的S函数报错: Output returned by S-function 'xxx' in 'xxx' during flag=3 call must be a real vector of length x

S函数在系统仿真时经常用到,它可以实现难以用simulink模块搭建出来的功能,即以代码的方式实现所需功能。最近笔者考虑将带可变参数的传递函数用S-function来实现,遇到以下报错:


根据报错信息,问题出在‘mdlOutputs’子程序中,原因可能是
① 输出为非实数 ② 输出的长度和初始设置不统一

针对这两个问题,容易发现解决,可参考其他帖子。
笔者检查后发现并不是这两个问题,而是变参数计算的程序位置放错造成的,这是由于对S函数运行过程欠缺理解。


根据上图S函数仿真步骤,仿真在初始化mdlInitializeSizes(flag=0)后,会通过初始参数计算第一步输出mdlOutputs(flag=3),而并不是定势思维地先更新状态(flag=1或2)。而笔者程序中变参数的计算部分我放在了状态更新子程序mdlDerivatives中,造成计算输出时无法获得参数,计算失败而报错。当把参数更新放到mdlOutputs中,发现问题解决。

所以,当你遇到此问题,并排除已知的两个问题后仍未解决,可考虑是否因为输出计算时参数未知而造成出错。

MATLAB/Simulink中的S函数报错相关推荐

  1. 解决VS2017中使用scanf函数报错的问题

    解决VS2017中使用scanf函数报错的问题 参考文章: (1)解决VS2017中使用scanf函数报错的问题 (2)https://www.cnblogs.com/tanghaiyong/p/11 ...

  2. python3中调用map函数报错map object at 0x000001EF004D97B8

    python3中调用map函数报错<map object at 0x000001EF004D97B8> 在python中这样的一段代码报错: a=map(int,input().split ...

  3. mysql cast报错_在mysql中使用cast函数报错

    今天遇到在使用mysql的cast函数报错的问题,这个函数的意思是把当前的字段转成某种类型的字段,我使用cast(xxxx as int) 这种方式,但是发现报错了,查阅资料发现 参考这个百度,总结来 ...

  4. Matlab/Simulink中的S函数模块嵌入人工智能、神经网络算法设计仿真案例详解(以基于RBF神经网络算法的VSG转动惯量自调节为例)

    参考文献 An improved virtual synchronous generator power control strategy  Deep reinforcement learning b ...

  5. MATLAB可以使用但是使用help函数报错问题的解决

    今天这篇总结一下我遇到这个问题的最终解决方案: 安装了MATLAB2018b版本后,一开始使用没有发现有什么问题,后来使用help函数时候才报错,代码是下面这一堆:Exception in threa ...

  6. matlab/simulink中自定义m-s函数作为simulink模块使用实例

    一般而言matlab/simulink能满足多数使用要求,但是往往在研究中会使用User-difinition s-function或者调用c,c++的库函数,这时候就需要matlab能进行c,c++ ...

  7. matlab2020b中的nargin函数报错问题

    matlab2020b中的nargin函数运行时出现了以下问题: 错误使用 nargin 您只能从 MATLAB 函数中调用 nargin/nargout. 将这此路径添加的matlab设置路径中,然 ...

  8. php addslashes没用_php中使用addslashes函数报错问题的解决方法

    大家看下面的代码,能发现错误在哪里吗? echo function_exists('addcslashes');//检测是否存在该函数 echo get_magic_quotes_gpc().' '; ...

  9. Matlab/Simulink中查表函数的应用

    1.1-D Lookup Table 模块 1-D Lookup Table 模块是最简单的查表模块 所谓查表,就是说目标为一个填满数据的表格或向量(1维)或矩阵(多维),根据对应维数的输人能够在表中 ...

最新文章

  1. 搞定一个C++项目最快需要多久?
  2. 雷蛇键盘灯光配置文件_指尖的流光溢彩,雷蛇黑寡妇蜘蛛V3竞技版开箱
  3. php怎么输出以前的时间,php输出指定时间以前时间格式的方法_PHP
  4. 【 IT版 】啥是佩奇?
  5. 【tyvj3303】连接格点,区分多维与单维很关键
  6. 11月23日python笔记(python基础2.6-3.0)
  7. 程序结构程序设计(二)
  8. HTML5:web socket 和 web worker
  9. ZOJ3953 Intervals
  10. rdkit GetAtoms获取化合物每个位置的索引;rdkit FindMCS大公共相同结构 找不同化合物之间的差异
  11. docker视频教程下载
  12. 数学分析教程(科大)——2.7笔记+习题
  13. Elk-Metricbeat配置Tomcat的日志分析 (Metricbeat-part3)
  14. Python基础练习-每日一题-大家来找茬!
  15. 安装linux时如何选择内存,安装Linux时硬盘划分以及挂载点问题
  16. app运营中,如何提高用户活跃度?
  17. Linux系统下KVM虚拟机的基本管理和操作
  18. 微信自动回复(新年快乐)
  19. 【JAVA大厂面试必问】大厂面试八股文整理, 中厂小厂也爱问的八股文!
  20. 海康iv4200支持多少_追赶极速:海康威视C2000 Pro 2T固态硬盘到手简评

热门文章

  1. Android Studio 4.1.2 自定义 APP 启动图标样式步骤【APP开发之入门四】
  2. 欧美义务教育改革新视野:重估“家庭学校”的价值
  3. c语言欺凌,《中国校园欺凌调查报告》发布 语言欺凌占主导
  4. 计算机安全技术相关实例,计算机安全技术TOOLS教程课件5.14 实例:无线网络安全配置.doc...
  5. 关于openCV安装配置最为详尽的一篇文章
  6. ios swift MVVM实例(Model-View-ViewModel)
  7. 数字后端 - STA
  8. java 容器都有哪些?
  9. XILINX Ultrascale/Ultrascale+ 高速收发器时钟MGTHREFCLK原语调用
  10. 面向对象程序设计c++版董正言张聪课本课后习题答案第五章