【问题标题】:How to take values generated from a MATLAB program and display them in a Simulink block?如何获取从 MATLAB 程序生成的值并将它们显示在 Simulink 模块中?
【发布时间】:2018-12-19 20:57:42
【问题描述】:

我有一个工作的 MATLAB 程序连接到 Arduino 和显示当前角度的旋转传感器。我想在 Simulink 模型上显示这个角度,这样我就可以根据当前角度控制电机。有没有什么方法可以做到这一点,而无需在 Simulink 中创建角度传感器,而只需使用我已经工作的 MATLAB 代码?

【问题讨论】:

  • “显示”块呢?在此之前添加一个“mux”并根据需要显示变量。

标签: matlab arduino simulink encoder


【解决方案1】:

您的问题不是很清楚,这取决于您是在在模拟之前还是在模拟期间尝试这样做。

如果您想在仿真之前执行此操作,只需创建一个常量块,其变量名称取自工作区,并让您的函数在工作区中设置该变量。

如果您想模拟过程中进行,会有点困难,但仍然可以。让我们创建一个 MVCE 示例。 simulink模型mask.slx包含一个常数,设置为0,这个常数值显示在右侧的显示块中。模拟时间设置为inf,所以玩的时候必须手动停止。

可以使用这个简单的 Matlab 调用在模拟运行时检查常量的值

set_param('mask/Value_to_set', 'Value', '10')

您还应该考虑常量必须是可调增益(默认情况下)。

(如您所见,模拟正在运行)。

您可以使用一些额外(当然更好)的解决方案:

  1. 将您的 Matlab 函数包含在 MATLAB 用户定义函数模块中,并在每次仿真迭代时调用它。如果你有编译问题,你应该遵循coder.extrinsic的方式(here an example for fmincon
  2. 使用适用于 Arduino Uno 硬件插件的 Simulink 支持包,该插件可在插件商店中获得。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多