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

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

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

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

Математические функции, такие как sin, cos, min, max, и abs не работайте со комплексными данными в графики. Однако можно использовать 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.

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

Выполните комплексное деление с функцией MATLAB

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

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

Похожие темы