Определение начальных целевых значений для членских переменных

Членские компоненты должны быть объявлены, как скрытый, и поэтому их переменные не появляются во вкладке Variables диалогового окна блока верхнего уровня. Однако, если определенная членская переменная компонента важна для инициализации, можно связать ее значение с параметром инициализации в блоке объявлений parameters верхнего уровня. В этом случае пользователь блока сможет настроить начальное целевое значение членской переменной компонента из диалогового окна блока верхнего уровня при создании и симуляции модели.

Примечание

Пользователь блока не может изменить приоритет инициализации членской переменной компонента. Вы задаете переменный приоритет инициализации, когда вы объявляете членский компонент. Синтаксис эквивалентен описанный в Переменном Приоритете для Образцовой Инициализации.

Например, вы имеете составной блок двигателя постоянного тока (подобный тому, описанному в Составном Компоненте — двигатель постоянного тока), и хотите, чтобы пользователь блока задал начальное целевое значение для текущего индуктора с низким приоритетом. Следующий код включает библиотеку Foundation блок Inductor в ваш файл собственного компонента со способностью управлять ее индуктивностью в верхнем уровне (при помощи параметров блоков Rotor Inductance) и также задать низкоприоритетную начальную цель для индуктора текущая переменная:

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

В этом случае пользователь блока может задать значение для параметра Initial current target for Rotor Inductor, который появляется в диалоговом окне блока составного компонента. Это значение присвоено как начальная цель переменной i_L (переменная Initial current членского блока Inductor) с низким приоритетом инициализации. В зависимости от результатов решения цель может или не может быть удовлетворена, когда решатель вычисляет начальные условия для симуляции. Для получения дополнительной информации смотрите Инициализацию Переменной Блочного уровня.

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

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

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

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

Больше о