Комплексные данные являются данными, значение которых является комплексным числом. Например, в Stateflow® строят диаграмму в модели Simulink®, входном сигнале со значением 3 + 5i является комплексным. Смотрите Комплексные данные в диаграммах Stateflow.
Когда вы используете комплексные данные в диаграммах Stateflow, которые используют C в качестве языка действия, применяют эти лучшые методы.
Математические функции такой как sin, cos, min, max, и abs не работайте с комплексными данными в графиках C. Однако можно использовать функцию MATLAB® в графике, чтобы выполнить операции математической функции на комплексных данных.
В следующем графике функция MATLAB вычисляет абсолютное значение комплексного числа:

Значение comp_num 1+2i. Вычисление абсолютного значения дает ответ 2.2361.
Предположим, что вы хотите найти абсолютное значение комплексного числа. Выполните эти шаги:
Добавьте функцию MATLAB в свой график с этой подписью:
y = myabs(u)
Дважды кликните функциональное поле, чтобы открыть редактор.
В редакторе введите код ниже:
function y = myabs(u) %#codegen y = abs(u);
Функция myabs берет комплексный вход u и возвращает абсолютное значение как выход y.
Сконфигурируйте входной параметр u принять комплексные числа.
Откройте Model Explorer.
В панели Model Hierarchy Model Explorer перейдите к функции MATLAB myabs.
В панели Contents Model Explorer щелкните правой кнопкой по входному параметру u и выберите Properties из контекстного меню.
В диалоговом окне Свойств данных выберите On в поле Complexity и нажимают OK.
Вы не можете передать действительные значения входным параметрам функции составного типа. Для получения дополнительной информации см. Правила для Использования Комплексных данных в Графиках C.
Деление с комплексными операндами не доступно как двоичный файл или операция присвоения в графиках C. Однако можно использовать функцию MATLAB в графике, чтобы выполнить деление на комплексных данных.
В следующем графике функция MATLAB выполняет деление на двух комплексных операндах:

Значения comp_num и comp_den 1+2i и 3+4i, соответственно. Деление этих значений дает ответ 0.44+0.08i.
Разделить два комплексных числа:
Добавьте функцию MATLAB в свой график с этой функциональной подписью:
y = mydiv(u1, u2)
Дважды кликните функциональное поле, чтобы открыть редактор.
В редакторе введите код ниже:
function y = mydiv(u1, u2) %#codegen y = u1 / u2;
Функция mydiv берет два комплексных входных параметров, u1 и u2, и возвращает комплексное частное этих двух чисел как выход y.
Сконфигурируйте аргументы ввода и вывода, чтобы принять комплексные числа.
Откройте Model Explorer.
В панели Model Hierarchy Model Explorer перейдите к функции MATLAB mydiv.
Для каждого аргумента ввода и вывода выполните эти шаги:
В панели Contents Model Explorer щелкните правой кнопкой по аргументу и выберите Properties из контекстного меню.
В диалоговом окне Свойств данных выберите On в поле Complexity и нажимают OK.
Вы не можете передать действительные значения входным параметрам функции составного типа. Для получения дополнительной информации см. Правила для Использования Комплексных данных в Графиках C.