exponenta event banner

Структуры параметров

Создайте структуру в созданном коде. В структуре хранятся данные параметров.

Конструкция C

typedef struct {
  double G1;
  double G2;
} myStructType;

myStructType myStruct = {
  2.0,
  -2.0
} ; 

Процедура

1. Открыть пример модели rtwdemo_paraminline.

2. На вкладке Моделирование (Modeling) щелкните Редактор данных модели (Model Data Editor). В Редакторе данных модели (Model Data Editor) выберите вкладку Параметры (Parameters).

3. В модели щелкните блок усиления с меткой G1. В редакторе данных модели используйте столбец Значение (Value), чтобы задать значение параметра Коэффициент усиления (Gain) равным myStruct.G1.

4. Установите значение параметра Gain в поле G2 блок в myStruct.G2.

5. Рядом с myStruct.G2нажмите кнопку действия (с тремя вертикальными точками) и выберите «Создать».

6. В диалоговом окне «Создание новых данных» задайте для параметра «Значение» значение Simulink.Parameter(struct) и нажмите кнопку «Создать». A Simulink.Parameter объект с именем myStruct отображается в базовой рабочей области.

7. В диалоговом окне «Свойство Simulink.Parameter» рядом со свойством «Значение» нажмите кнопку действия и выберите «Открыть редактор переменных».

8. Щелкните правой кнопкой мыши пробел в столбце «Поле» и выберите «Создать». Присвойте имя новому полю структуры G1. Используйте столбец Значение (Value), чтобы установить значение поля в 2.

9. Добавить поле G2 значение которого - -2, а затем закройте редактор переменных.

10. В диалоговом окне свойств Simulink.Parameter на вкладке «Создание кода» установите для класса Storage значение ExportedGlobal. Структура myStruct отображается в созданном коде как глобальная переменная.

11. Создайте код из модели.

Результаты

Созданный файл заголовка rtwdemo_paraminline_types.h определяет тип структуры, имеющий случайное имя.

typedef struct {
  real_T G1;
  real_T G2;
} struct_6h72eH5WFuEIyQr5YrdGuB;

Исходный файл rtwdemo_paraminline.c определяет и инициализирует структурную переменную myStruct.

/* Exported block parameters */
struct_6h72eH5WFuEIyQr5YrdGuB myStruct = {
  2.0,
  -2.0
} ;                                    /* Variable: myStruct
                                        * Referenced by:
                                        *   '<Root>/G1'
                                        *   '<Root>/G2'
                                        */

Указать имя типа структуры

1. При необходимости укажите имя для определения типа структуры (struct). В командной строке используйте функцию Simulink.Bus.createObject для создания Simulink.Bus объект, представляющий тип структуры.

2. Имя объекта по умолчанию: slBus1. Измените имя путем копирования объекта в новую переменную MATLAB.

3. В редакторе данных модели нажмите кнопку Показать/обновить дополнительную информацию.

4. В таблице данных найдите строку, которая соответствует myStruct. Используйте столбец «Тип данных» для установки типа данных myStruct кому Bus: myStructType.

5. Создайте код из модели.

Код создает определение типа структуры. myStructType и использует этот тип для определения глобальной переменной myStruct.

myStructType myStruct = {
  2.0,
  -2.0
} ;                                    /* Variable: myStruct

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