首页 文章

将simulink集成到matlab脚本中

提问于
浏览
1

我有以下问题 . 我想将一个simulink模型集成到一个matlab脚本中,用循环中的simulink部分循环完成不同的事情 . 当我在工作空间中定义我用于simulink模型的参数时,下面的程序实际上做了我所希望的 . 但是这个解决方案并不能让我满意 . 我想将参数作为 sim 函数的第二个值传递 . 不幸的是,我无法理解这一点 . 我实际上复制了部件以从matlab站点创建一个结构,其中给出了以下代码示例 .

myStruct = Simulink.Parameter;
myStruct.Value = struct('number',1,'units',24);
myStruct.CoderInfo.StorageClass = 'ExportedGlobal';

不幸的是我得到以下错误 Input argument "m_startSpeed" is undefined. 因为在我的脚本中参数 m_startSpeed 是我在运行脚本时输入的值 .

function [optBreakPoint] = computeBreakPoint(m_startSpeed, m_endSpeed, m_length)
    myStruct = Simulink.Parameter;
    myStruct.Value = struct('m' , 1500, 'R' , 0.25, 'mi' , 1, 'f' , 0.1, 'F' , 50000,'BreakForce' , -10, 'startSpeed' , m_startSpeed, 'breakPoint' , m_length);
    myStruct.CoderInfo.StorageClass = 'ExportedGlobal';
    endSpeed = m_endSpeed;
    while(1)
        [T, X, Y] = sim('car', myStruct);
        optBreakPoint = breakPoint;
        break;
    end
    plot(T, X);
end

我该如何解决这个问题?

1 回答

  • 0

    输入结构(即sim函数的第二输入)包含有关如何模拟模型的信息(即来自模型配置对话框或配置集的信息),而不是模型中块的参数 .

    看看两者

    >> doc sim
    

    http://www.mathworks.com/help/simulink/slref/sim.html作为该结构应该是什么样子的一个例子 .

    块参数是从工作空间获得的 - 默认情况下是基础工作空间,但您可以通过更改模型的“SrcWorkspace”参数来指定 .

    上述文档页面也讨论了此属性 .

相关问题