朋友们,这个sim函数是出了什么问题了呢

img


将simulink输出的数值输入函数,不知道为什么会出现这样的问题

Simulation Error: 'Returning workspace outputs is supported with only single return argument'这个错误是指你的程序第29行,等号左边只能支持一个返回值,不支持多个返回值,如果有多个值,也只能是返回一个对象,其他值作为这个对象的属性。

根据你提供的代码和错误信息,可以看出以下几点问题:

第23-25行使用了不规范的引号,应该将单引号或双引号统一使用。例如,应该使用 'ControlP. CTRL A8C' 而不是 ’ControlP. CTRL A8C’。

第26行的注释符 % 没有正确使用,应该在注释内容前加一个空格。例如,应该使用 % assignin('base', 'AOA', AOA); 而不是 %assignin('base',’AOA',AOA) ;。

第29行的 sim 函数调用有误,应该将 [0, 0.01] 替换为 [0, 0, 0.01],以便提供正确的输入参数。

第30行的注释符 % 没有正确使用,应该在注释内容前加一个空格。例如,应该使用 % y_out = 0; 而不是 %y_out=0;。

第32-34行的注释符 % 没有正确使用,应该在注释内容前加一个空格。例如,应该使用 % FN = y_out(end, 2); 而不是 %FN = y_out(end, 2):。

第34-36行的注释符 % 没有正确使用,应该在注释内容前加一个空格。例如,应该使用 % SFC = y_out(end, 3); 而不是 %SFC= y_out(end, 3);。

第38-40行的注释符 % 没有正确使用,应该在注释内容前加一个空格。例如,应该使用 % result = [a',b',c']; 而不是 %result=[a' ,b’,c']:。

在第29行中,如果你在 sim 函数中使用了多个输出参数,那么你应该使用一个单一的变量来接收所有的输出参数,而不是使用多个变量,否则会出现类似于“Returning workspace outputs is supported with only single return argument”的错误。

最后,在你的错误信息中,可以看到该错误出现在第29行的 sim 函数调用中,这可能表明你的模型在该位置存在一些问题。你需要检查模型的输入和输出是否正确,并确保在 sim函数调用中提供正确的输入参数和选项。另外,你在代码中使用了一些未定义的变量,例如 ControlP.CTRL A8C、ControlP.CTRL FAN ALPHA 和 ControlP.CTRL HPC_ALPHA,如果这些变量没有被正确定义,也会导致错误的发生。

返回的参数的个数不对

你可以
全局变量
数组
将多余的返回值赋予结构体指针

sim的返回结果只有一个。不要用多个变量接受他的返回值

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7490584
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Simulink转C代码的实现
  • 除此之外, 这篇博客: Simulink学习笔记5--Simulink仿真设置中的 1.仿真基础 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    Simunlink在运行模型仿真时通常需要两个过程:①设置不同的仿真参数,包括仿真起始时间、终止时间、求解模型的算法、最大步长等;②启动仿真,Simulink从指定的起始时间开始到终止时间运行仿真。如果模型有错误,则Simulink停止仿真,打开故障诊断查看器,帮助产看和确定仿真过程中产生错误的原因和位置。
    如何启动、暂停、终止和交互仿真?
    启动、暂停、终止略。
    交互仿真主要是在仿真中,可以改变仿真参数、算法、查看信号等。

  • 以下回答来自chatgpt:

    我作为AI语言模型不能看到您输入的函数或具体情况,但是我可以告诉您一些常见的Simulink模拟器问题及其表现,以及可能的解决方案。

    常见问题表现:

    1. 模拟器或模型无法启动或崩溃。
    2. 模型仿真结果与预期不符。
    3. 仿真速度缓慢。
    4. 内存或计算能力不足导致仿真失败。

    可能的解决方案:

    1. 检查模型文件路径和输入输出端口是否正确连接,同时检查模型参数是否正确设置。关闭其他占用计算机资源的程序,尝试重新启动计算机和Simulink模拟器。
    2. 检查模型参数、输入和输出变量是否正确设置,以及模型内部信号传输是否正确。根据仿真结果调整模型参数,优化模型结构。
    3. 优化计算机性能,例如增加内存和CPU。关闭模型中不必要的功能并降低仿真精度,同时在仿真之前预处理数据以提高仿真速度。
    4. 检查计算机硬件是否满足模型需求,尝试使用Simscape等工具减少计算量。优化计算机(例如增加内存或CPU)或者降低仿真精度以提高计算速度。

    总之,针对不同的具体情况可能需要不同的解决方案,需要综合考虑硬件、软件、模型和仿真结果等因素。如果您提供更加具体的信息,我可以尝试为您提供更多帮助。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^