Проверка блока статического диапазона не распознает переменную в базовой рабочей области - PullRequest
1 голос
/ 28 января 2011

У меня есть модель Simulink с блоком Check Static Range . В моей базовой рабочей области у меня есть переменная с именем myNum=3. Внутри блока Check Static Range есть поле для редактирования, называемое «Обратный вызов симуляции при сбое подтверждения». В этом поле ввода я написал disp(num2str(myNum)). Я ожидаю увидеть значение myNum, отображаемое в командном окне, когда происходит утверждение. Вместо этого я получаю « Ошибка оценки обратного вызова« AssertionFcn »блока Checks_SRange ... Неопределенная функция или переменная« myNum ». »

Когда я попробовал тот же обратный вызов с блоком Assertion , он работал без проблем. Как сделать так, чтобы блок Check Static Range распознал мои переменные в рабочей области?

Ответы [ 2 ]

1 голос
/ 29 января 2011

Блоки Check Static Range имеют блок подтверждения под маской. Строка обратного вызова Simulink оценивается в рабочей области маски, а не в базовой рабочей области, поэтому вы видите ошибку. Попробуйте вместо этого выполнить принудительную оценку в базовом рабочем пространстве,

дисп (num2str (Evalin ( 'база', 'тупит'))) * * 1003

0 голосов
/ 28 января 2011

У меня нет Matlab здесь для тестирования.Вы помещали кавычки вокруг содержимого поля редактирования?Работал ли 'disp (' '3' ')'?(с двойными одинарными кавычками, так как вы в строке)

...