Установка собственного генератора случайных чисел даже при использовании SimState в Simulink - PullRequest
3 голосов
/ 07 февраля 2012

У меня проблема в том, что мне нужно запустить несколько симуляций с использованием ранее сохраненного SimState с различными начальными значениями случайности.Мне пока не удалось заставить это работать.

Я пытался использовать

set_param('mod/Random Number', 'Seed', '3324')

, и это работает, если я не использую ранее сохраненное SimState, но как только япопробуйте это с SimState, все симуляции останутся с одинаковыми случайными числами (я полагаю, что вновь установленное начальное число игнорируется, и вместо этого используется начальное число, сохраненное в SimState, хотя я попытался просмотреть структуру данных SimState, и яне могу понять, содержит ли оно хотя бы прошлое семя и будет ли так, как я собираюсь его изменить).

Какой мой лучший подход здесь?В идеале я бы просто вызвал одну функцию (shuffle_seeds), и все начальные значения во всех случайных блоках были бы сброшены на что-то новое.

Примечание: мое временное решение заключается в использовании пользовательского порта ввода (на корневом уровне)) и затем вводить эти входные данные равномерно или нормально распределенными числами для каждого временного шага, но это не очень хорошее решение (и довольно сложно приступить к работе, поскольку значения интерполируются, если время выборки меньше 1 используется в любом другом блоке).

1 Ответ

1 голос
/ 08 февраля 2012

Включены или выключены «Inline Parameters»? Если он включен, вы можете попытаться сделать параметр seed настраиваемым параметром. Более подробная информация о настраиваемых параметрах содержится в документации . Если встроенные параметры выключены, я думаю, что это будет работать, потому что SimState не будет в SimState, хотя я не уверен в этом.

...