exponenta event banner

Рекомендации по использованию сложных данных в диаграммах C

Комплексные данные - это данные, значение которых является комплексным числом. Например, на диаграмме Stateflow ® в модели Simulink ® входной сигнал со значением3 + 5i является сложным. См. раздел Сложные данные в диаграммах потока состояний.

При использовании сложных данных в диаграммах Stateflow, использующих C в качестве языка действий, следуйте этим рекомендациям.

Выполнение операций математической функции с помощью функции MATLAB

Математические функции, такие как sin, cos, min, max, и abs не работают со сложными данными в диаграммах C. Однако функцию MATLAB ® можно использовать в диаграмме для выполнения операций математических функций над сложными данными.

Простой пример

На следующей диаграмме функция MATLAB вычисляет абсолютное значение комплексного числа:

Значение comp_num является 1+2i. Вычисление абсолютного значения дает ответ 2.2361.

Расчет абсолютного значения

Предположим, что нужно найти абсолютное значение комплексного числа. Выполните следующие действия.

  1. Добавьте функцию MATLAB к диаграмме со следующей подписью:

    y = myabs(u)
  2. Дважды щелкните поле функции, чтобы открыть редактор.

  3. В редакторе введите следующий код:

    function y = myabs(u)
    %#codegen
    y = abs(u);

    Функция myabs принимает сложный ввод u и возвращает абсолютное значение в качестве выходного y.

  4. Настройка входного аргумента u для принятия комплексных значений.

    1. Откройте обозреватель моделей.

    2. На панели Иерархия модели (Model Hierarchy) Проводника моделей (Model Explorer) перейдите к функции MATLAB. myabs.

    3. На панели Содержимое (Contents) Обозревателя моделей (Model Explorer) щелкните правой кнопкой мыши входной аргумент. u и выберите «Свойства» в контекстном меню.

    4. В диалоговом окне «Свойства данных» выберите On в поле Сложность и нажмите кнопку ОК.

Нельзя передавать вещественные значения на входы функций комплексного типа. Дополнительные сведения см. в разделе Правила использования сложных данных в диаграммах C.

Выполнение комплексного разделения с помощью функции MATLAB

Разделение со сложными операндами недоступно в виде двоичной операции или операции назначения в диаграммах C. Однако функцию MATLAB в диаграмме можно использовать для выполнения разделения сложных данных.

Простой пример

На следующей диаграмме функция MATLAB выполняет деление на два сложных операнда:

Значения comp_num и comp_den являются 1+2i и 3+4iсоответственно. Деление этих значений дает ответ 0.44+0.08i.

Выполнение комплексного разделения

Чтобы разделить два комплексных числа:

  1. Добавьте функцию MATLAB к диаграмме со следующей подписью функции:

    y = mydiv(u1, u2)
  2. Дважды щелкните поле функции, чтобы открыть редактор.

  3. В редакторе введите следующий код:

    function y = mydiv(u1, u2)
    %#codegen
    y = u1 / u2;

    Функция mydiv принимает два комплексных входа, u1 и u2и возвращает комплексное частное двух чисел в качестве выходного значения y.

  4. Настройте входные и выходные аргументы для принятия комплексных значений.

    1. Откройте обозреватель моделей.

    2. На панели Иерархия модели (Model Hierarchy) Проводника моделей (Model Explorer) перейдите к функции MATLAB. mydiv.

    3. Для каждого входного и выходного аргумента выполните следующие действия.

      1. На панели Содержимое (Contents) Обозревателя моделей (Model Explorer) щелкните правой кнопкой мыши аргумент и выберите в контекстном меню пункт Свойства (Properties).

      2. В диалоговом окне «Свойства данных» выберите On в поле Сложность и нажмите кнопку ОК.

Нельзя передавать вещественные значения на входы функций комплексного типа. Дополнительные сведения см. в разделе Правила использования сложных данных в диаграммах C.

Связанные темы