Структуры сигналов

Этот пример показывает, как создать структуру данных сигнала в сгенерированном коде.

C построение

typedef struct {
   double signal1;
   double signal2;
   double signal3;
} my_signals_type;

Процедура

1. Чтобы представлять тип структуры в модели, создайте объект Simulink.Bus. Используйте объект в качестве типа данных сигналов шины в вашей модели.

2. Создайте модель ex_signal_struct при помощи блоков Усиления, блока Bus Creator и блока Unit Delay. Блоки Усиления и Единичной задержки делают структуру более идентифицирующейся в сгенерированном коде.

3. Чтобы сконфигурировать блок Bus Creator, чтобы принять три входных параметров, в диалоговом окне блока, определяют Номер входных параметров к 3.

4. В модели выберите Edit> Bus Editor.

5. Используйте Редактор Шины, чтобы создать объект Simulink.Bus под названием my_signals_type, который содержит три элемента сигнала: signal1, signal2 и signal3. Смотрите Создают Объекты Шины с Редактором Шины (Simulink).

Этот объект шины представляет тип структуры, который вы хотите, чтобы сгенерированный код использовал.

6. В диалоговом окне блока Bus Creator Выходные данные набора вводят к Bus: my_signals_type.

7. Выберите Output как невиртуальную шину. Нажать ОК. Невиртуальная шина появляется в сгенерированном коде как структура.

8. В модели выберите View> Model Data Editor. В Model Data Editor, на вкладке Signals, от представления Change выпадающий список, выбирают Code.

9. В модели кликните по выходному сигналу блока Bus Creator.

10. В Model Data Editor, для вывода блока Bus Creator, определенного Имени к sig_struct_var.

11. Установите Класс памяти на ExportedGlobal. Вывод блока Bus Creator появляется в сгенерированном коде как отдельная глобальная переменная структуры под названием sig_struct_var.

12. Сгенерируйте код из модели.

Результаты

Сгенерированный заголовочный файл ex_signal_struct_types.h задает структуру, вводит my_signals_type.

typedef struct {
  real_T signal1;
  real_T signal2;
  real_T signal3;
} my_signals_type;

ex_signal_struct.c исходного файла выделяет память для глобальной переменной sig_struct_var, который представляет вывод блока Bus Creator.

/* Exported block signals */
my_signals_type sig_struct_var;        /* '<Root>/Bus Creator' */

В том же файле, в функции модели step, доступы к алгоритму sig_struct_var и поля sig_struct_var.

Смотрите также

Похожие темы