Лучшые практики для Использования комплексных данных в графиках C

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

Когда вы используете комплексные данные в диаграммах 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. Откройте Model Explorer.

    2. В панели Model Hierarchy Model Explorer переместитесь к функции MATLAB по myabs.

    3. В панели Contents Model Explorer щелкните правой кнопкой по входному параметру u и выберите Properties из контекстного меню.

    4. В диалоговом окне Свойств данных выберите On в поле Complexity и нажмите OK.

Вы не можете передать действительные значения входным параметрам функции составного типа. Для получения дополнительной информации см. Правила для Использования Комплексных данных в Графиках 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. Откройте Model Explorer.

    2. В панели Model Hierarchy Model Explorer переместитесь к функции MATLAB по mydiv.

    3. Для каждого аргумента ввода и вывода выполните эти шаги:

      1. В панели Contents Model Explorer щелкните правой кнопкой по аргументу и выберите Properties из контекстного меню.

      2. В диалоговом окне Свойств данных выберите On в поле Complexity и нажмите OK.

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

Похожие темы