【发布时间】:2018-11-03 17:49:42
【问题描述】:
我们有一个在 dSPACE 机器上编译和运行的 Simulink 模型。我们需要能够
- 使用 dSPACE ControlDesk 更改参数值并
- 使用模型内的 Matlab 函数(或类似 Simulink 模块的类似函数)更改参数值
(1) 可以使用 Constant 块,只需输入一个数字。您可以在 dSPACE 中更改 Constant 模块的值。也可以在 Constant 块中输入变量名称,如 FOO,并将 FOO 值更改为 可调参数。
(2) 到目前为止还不可能。 'set_param' 之类的东西似乎不起作用,因为一切都是用 Simulink Coder 编译的。
任何能够从模型内部更改参数 FOO 的方法都适用于我们。
应用/为什么?:我们有诸如“机器人的目标 x 位置”之类的值。有时,这个值是手动设置的,但有时,它是由不同的参与者自动设置的(“直线行驶”、“行驶曲线”等等)。很高兴在一个确定的位置看到当前目标 x 位置,而不必担心手动将控制从手动模式切换到 actor 1、actor 2 等。(当然,我们需要确保只有一个 actor 在每个时间步)。如果需要并且我们的想法是不可能的,我们至少想要一种优雅的方式来切换控制。
当前解决方法(有问题):
我们当前的方法检测设置值的变化(可能来自不同的参与者)。 Actor 1 设置值 u1=10,然后 y=u1=10。然后演员 2 设置值 u2=30,然后 y=u2=30。但如果演员 1 再次设置 u1=10,则没有检测到任何变化,并且 y 仍然是 u2=30。
【问题讨论】:
-
dSPACE 目标是否为 Simulink 提供 "External Mode"?如果是这样,您可以使用简单的 M 脚本从 MATLAB / Simulink 更改目标系统上的值。
-
我将不得不稍后检查。虽然这个想法是用一个在 dSpace 盒子本身上编译和运行的 matlab 功能块(或等效的)来更改值,因此实际上不需要计算机。
-
为什么不用M-Function的输出作为信号来驱动“Outport 26”呢?
-
查看应用程序/原因。有时我们需要手动设置'outport 26',有时需要设置matlab函数1,有时需要设置matlab函数2等
标签: matlab parameters simulink dspace-ecu