У нас есть модель Simulink, которая компилируется и запускается на коробке dSPACE.Нам нужно иметь возможность
- изменить значение параметра с помощью dSPACE ControlDesk и
- изменить значение параметра с помощью функции Matlab внутри модели (или чего-то подобного, подобногоБлок Simulink)
(1) возможно с блоком Constant, просто введя число.Вы можете изменить значение блока Constant в dSPACE.Также можно ввести имя переменной, например, FOO, в блоке Constant и изменить это значение FOO как настраиваемый параметр .
(2) пока невозможно.Такие вещи, как 'set_param', похоже, не работают, потому что все компилируется с помощью Simulink Coder.
Любой метод, способный изменить параметр FOOизнутри модель будет работать для нас.
Применение / Почему? : У нас есть значения, такие как «цель х позиция робота».Иногда это значение устанавливается вручную, но иногда оно устанавливается автоматически различными участниками («Двигайтесь прямо», «Управляйте кривыми» и т. Д.).Было бы неплохо увидеть текущую целевую позицию х в одном определенном месте, и не нужно беспокоиться о ручном переключении управления из ручного режима в актера 1, актера 2 и т. Д. (Конечно, тогда нам нужно убедиться, что активен только один актер вкаждый раз шаг).Если это необходимо и наша идея невозможна, мы бы хотя бы хотели элегантный способ переключить управление.
Текущее решение (есть проблемы) :
Наш текущий метод обнаруживает изменения в установленных значениях (которые могут исходить от разных действующих лиц).Актер 1 устанавливает значение u1 = 10, тогда y = u1 = 10.Затем субъект 2 устанавливает значение u2 = 30, затем y = u2 = 30.Но если субъект 1 затем снова устанавливает u1 = 10, никаких изменений не обнаружено, а y по-прежнему равно u2 = 30.