Запишите действия события для устаревших моделей

При миграции устаревшего SimEvents® модели, часто необходимо создавать действия события в этих экземплярах:

  • Установка значений атрибута

  • Получение значений атрибута

  • Генерация генерации случайных чисел

  • Используя последовательности События

  • Заменяя Функциональные блоки Атрибута

  • Используя Simulink® сигналы в основанном на событии расчете

Замените блоки Set Attribute на действия события

Используйте эти инструкции, чтобы заменить блоки Set Attribute:

  • Если блоки Set Attribute сразу следуют за блоками генератора сущности, чтобы инициализировать атрибуты в блоке Entity Generator, закодируйте Generate действие с вкладкой Event actions, чтобы установить начальное значение атрибута. Например:

    entitySys.id=5;
  • Если атрибуты изменения блоков Set Attribute, в блоке Entity Generator, кодируют Create действие с вкладкой Event actions.

Этот пример иллюстрирует Generation действие, чтобы инициализировать значения атрибута:

Возвратитесь к рабочему процессу миграции.

Значения Get Attribute

Если вы пишете действия события, чтобы получить значения атрибута, используйте блок Simulink Function:

  1. Поместите блок расчета в блок Simulink Function.

  2. Передайте значение атрибута в качестве аргумента от действия события до блока Simulink Function.

Замените распределения случайных чисел в действиях события

Можно сгенерировать использование случайных чисел:

Распределение случайных чисел

Замените режимы распределения блока Event-Based Random Number случайных чисел на эквивалентный MATLAB® код в действиях события. Для получения дополнительной информации о генерации случайных распределений, смотрите Языки Действия События и Генерацию случайных чисел.

Если вам нужны дополнительные распределения случайных чисел, см. Statistics and Machine Learning Toolbox.

Если вы генерируете случайные числа, возвратитесь к Рабочему процессу Миграции.

Пример произвольной замены дискретного распределения

Вот пример того, как воспроизвести произвольное дискретное распределение для устаревшего блока Event-Based Random Number. Примите, что блок имеет эти установки параметров:

  • Distribution: Arbitrary discrete

  • Value vector: [2 3 4 5 6]

  • Probability vector: [0.3 0.3 0.1 0.2 0.1]

  • Initial seed: 12234

Как общее руководство:

  1. Установите начальный seed, например:

    persistent init
    if isempty(init)
    		rng(12234);
    		init=true;
    end
  2. Определите то, чему присвоен вектор значения в устаревшей модели, и непосредственно присвойте его в коде действия в новой модели. В этом примере вектор значения присвоен FinalStop.

  3. Чтобы присвоить значения в соответствующей области значений, вычислите вектор интегральной вероятности. Для удобства используйте вектор вероятности, чтобы вычислить совокупное, вероятно, вектор. Например, если вектор вероятности:

    [0.3 0.3 0.1 0.2 0.1]

    Вектор интегральной вероятности:

    [0.3 0.6 0.7 0.9 1]
  4. Создайте случайную переменную, чтобы использовать в коде, например:

    x=rand();

Вот пример кода для этого блока в качестве примера, чтобы вычислить распределение. Вектор значения присвоен FinalStop:

% Set initial seed.
persistent init
if isempty(init)
		rng(12234);
		init=true;
end
% Create random variable, x.
x=rand();
%
% Assign values within the appropriate range using the cumulative probability vector.
%
if x < 0.3
    entity.FinalStop=2;
elseif x >= 0.3 && x< 0.6
    entity.FinalStop=3;
elseif x >= 0.6 && x< 0.7
    entity.FinalStop=4;
elseif x >= 0.7 && x< 0.9
    entity.FinalStop=5;
else
    entity.FinalStop=6;
end

Если вы генерируете случайные числа, возвратитесь к Рабочему процессу Миграции.

Замените блок Event-Based Sequence на действия события

Замените блоки Event-Based Sequence, которые генерируют последовательность чисел от заданных вектор-столбцов с действиями события:

Замените функциональные блоки атрибута на действия события

Замените блоки Attribute Function, которые управляют атрибутами с помощью кода MATLAB с действиями события:

  1. Скопируйте код Attribute Function, без синтаксиса функций, к вкладке Event actions в соответствующем действии события.

  2. Чтобы относиться к атрибуту сущности, используйте сущность формата. Attribute1.

Для короткого или простого кода используйте построения как они:

Если вы имеете дольше или более сложный код, рассматриваете заменяющий блок Attribute Function на Simulink Function и копирующий код без модификации в блок Simulink Function.

Возвратитесь к рабочему процессу миграции.

Если Используя сигналы Simulink в основанном на событии расчете

Если вы используете Сигналы Simulink в основанном на событии расчете, отправьте сигналы в блок Simulink Function.

  1. Скопируйте основанный на событии код расчета в блок Simulink Function.

  2. Отправьте Сигналы Simulink как входные параметры с блоком Simulink Function.

Например:

Похожие темы