Проблема обратного вызова Simulink - PullRequest
0 голосов
/ 09 февраля 2011

Эй, у меня, возможно, очень простая проблема с использованием PreLoadFcn в моей модели.

Я хочу, чтобы моя модель загружала m-файл перед началом симуляции (я думаю, для этого и используется preloadfcn).

Итак, я добавил в файл -> свойства модели -> обратные вызовы -> PreLoadFcn в строке

run('./init.m')

В этом файле установлено несколько переменных. Моя модель ссылается на эти переменные и выдает исключение, что она не может найти их, когда я просто нажимаю «Начать моделирование». Это указывает на то, что обратный вызов не делает то, что должен делать ...

Файл 'init.m' находится в том же каталоге, что и файл моделирования.

Даже попытка добавить каталог в MATLAB PATH не имела никакого эффекта.

приветствует poeschlorn

Ответы [ 3 ]

1 голос
/ 10 февраля 2011

Вы можете использовать функцию обратного вызова, чтобы увидеть, какие обратные вызовы вызываются в процессе загрузки и моделирования вашей модели.См. документацию по обратным вызовам для получения дополнительной информации.

Кроме того, init - это сценарий или функция?Это должен быть скрипт, или он должен использовать evalin ('base'), чтобы поместить переменные в базовую рабочую область.Вы также можете попытаться установить точку останова в init.m, чтобы убедиться, что она не была достигнута.

1 голос
/ 09 февраля 2011

Работает ли он просто для запуска «init» в командной строке MATLAB перед запуском модели?Если это так, вам, вероятно, следует заменить обратный вызов просто

init

, который запустит скрипт «init.m».

0 голосов
/ 17 апреля 2015

У меня тоже была такая же проблема. Теперь это было решено. решение было довольно простым. после определения функции в PreLoadFcn * Вам просто нужно сохранить файл simulink и перезапустить его. конечно, это будет работать.

привет, Гарри

...