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

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

Примечание

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

Например, у вас есть составной блок DC Motor (подобный блоку, описанному в Composite Component - DC Motor), и вы хотите, чтобы пользователь блока задал начальное целевое значение для тока индуктивности с низким приоритетом. Следующий код включает блок Foundation library 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 переменная представителя Индуктор блока), с низким приоритетом инициализации. В зависимости от результатов решения, цель может быть или не может быть удовлетворена, когда решатель вычисляет начальные условия для симуляции. Для получения дополнительной информации см. Раздел «Инициализация переменной уровня блоков»

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

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

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

Похожие примеры

Подробнее о