exponenta event banner

Задание начальных целевых значений для переменных-членов

Компоненты-члены должны быть объявлены с помощью ExternalAccess=observe, и поэтому их переменные не отображаются на вкладке «Переменные» диалогового окна блока верхнего уровня. Однако если определенная переменная компонента элемента важна для инициализации, можно связать ее значение с параметром инициализации в верхнем уровне. parameters блок объявления. В этом случае пользователь блока сможет настроить начальное целевое значение переменной компонента элемента из диалогового окна блока верхнего уровня при построении и моделировании модели.

Примечание

Пользователь блока не может изменить приоритет инициализации переменной компонента-члена. Приоритет инициализации переменной задается при объявлении компонента-члена. Синтаксис аналогичен описанному в разделе Приоритет переменной для инициализации модели.

Например, имеется составной блок DC Motor (аналогичный описанному в разделе Composite Component - DC Motor), и пользователь блока должен указать начальное целевое значение тока индуктора с низким приоритетом. Следующий код включает блок индуктора библиотеки Foundation в пользовательском файле компонента с возможностью управления его индуктивностью на верхнем уровне (с помощью параметра блока индуктивности ротора), а также для задания начальной цели низкого приоритета для переменной тока индуктора:

component DCMotor2
[...]
  parameters
     rotor_inductance = { 12e-6, 'H' };    % Rotor Inductance
     i0 = { 0, 'A' };  % Initial current target for Rotor Inductor
     [...]
  end
  components(ExternalAccess=observe)
     rotorInductor = foundation.electrical.elements.inductor(l = rotor_inductance, 
                                      i_L = {value = i0, priority = priority.low});
     [...]
  end
[...]
end

В этом случае пользователь блока может указать значение параметра Начальный целевой ток для индуктора ротора, которое появляется в диалоговом окне блока составного компонента. Это значение назначается в качестве начального целевого значения переменной i_L (Начальная переменная тока блока индуктора элемента), с низким приоритетом инициализации. В зависимости от результатов решения цель может быть удовлетворена, если решатель вычисляет начальные условия для моделирования. Дополнительные сведения см. в разделе Инициализация переменных на уровне блоков.

Можно использовать альтернативный синтаксис, который позволяет назначать переменные значения и поля данных приоритета отдельно, используя точечную нотацию. Например, следующий оператор:

      rotorInductor = foundation.electrical.elements.inductor(l = rotor_inductance, 
                                      i_L.value = i0, i_L.priority = priority.low);
     

эквивалентно объявлению компонента индуктора из предыдущего примера.

Связанные примеры

Подробнее