В Моторном примере Постоянного электромагнита блок двигателя постоянного тока реализован как подсистема маскированная.
Следующий код реализует ту же модель посредством составного названного DC Motor
компонента. Составной компонент использует компоненты от библиотеки Simscape™ Foundation как базовые блоки и соединяет их как показано в предыдущей блок-схеме.
component DC_Motor % DC Motor % This block models a DC motor with an equivalent circuit comprising a % series connection of a resistor, inductor, and electromechanical converter. % Default values are as for the DC Motor Simscape example, ssc_dcmotor. nodes p = foundation.electrical.electrical; % +:left n = foundation.electrical.electrical; % -:left R = foundation.mechanical.rotational.rotational; % R:right C = foundation.mechanical.rotational.rotational; % C:right end parameters rotor_resistance = { 3.9, 'Ohm' }; % Rotor Resistance rotor_inductance = { 12e-6, 'H' }; % Rotor Inductance motor_inertia = { 0.01, 'g*cm^2' }; % Inertia breakaway_torque = { 0.02e-3, 'N*m' }; % Breakaway friction torque coulomb_torque = { 0.02e-3, 'N*m' }; % Coulomb friction torque viscous_coeff = { 0, 'N*m*s/rad' }; % Viscous friction coefficient breakaway_velocity = { 0.1, 'rad/s' }; % Breakaway friction velocity back_emf_constant = { 0.072e-3, 'V/rpm' }; % Back EMF constant end components(ExternalAccess=observe) rotorResistor = foundation.electrical.elements.resistor(R = rotor_resistance); rotorInductor = foundation.electrical.elements.inductor(l = rotor_inductance); rotationalElectroMechConverter = foundation.electrical.elements.rotational_converter(K = ... back_emf_constant); friction = foundation.mechanical.rotational.friction(brkwy_trq = ... breakaway_torque, Col_trq = coulomb_torque, ... visc_coef = viscous_coeff, brkwy_vel = breakaway_velocity); motorInertia = foundation.mechanical.rotational.inertia(inertia = motor_inertia); end connections connect(p, rotorResistor.p); connect(rotorResistor.n, rotorInductor.p); connect(rotorInductor.n, rotationalElectroMechConverter.p); connect(rotationalElectroMechConverter.n, n); connect(rotationalElectroMechConverter.R, friction.R, motorInertia.I, R); connect(rotationalElectroMechConverter.C, friction.C, C); end end
Раздел объявления составного компонента запускается с nodes
разделите, который задает порты подключения верхнего уровня получившегося составного блока:
Два электрических порта сохранения, +
и -
, на левой стороне блока
Два порта сохранения вращательного механического устройства, R
и C
, на правой стороне блока
parameters
блок объявлений перечисляет все параметры, которые будут доступны в составном диалоговом окне блока.
components
блок объявляет всего участника (составляющая) компоненты, задавая их полные имена, начинающие с директории пакета верхнего уровня. Этот пример использует компоненты от библиотеки Simscape Foundation:
Резистор
Индуктор
Вращательный электромеханический конвертер
Вращательное трение
Инерция
components
блок также соединяет параметры верхнего уровня, объявленные в parameters
блок объявлений, к параметрам базовых членских компонентов. Например, параметр Rotor Resistance составного блока (rotor_resistance
) соответствует параметру Resistance (R
) из блока Resistor в библиотеке Foundation.
Вы не должны соединять все параметры членских блоков к параметрам верхнего уровня. Например, блок Rotational Friction в библиотеке Foundation имеет параметр Transition approximation coefficient, который не сопоставлен ни с каким параметром в верхнем уровне. Поэтому составная модель всегда использует значение по умолчанию этого параметра, заданного во Вращательном компоненте Трения, 10 рад/с.
connections
блок задает связи между узлами (порты) членских компонентов и их связи с портами верхнего уровня получившегося составного блока, объявленного в nodes
блок объявлений составного компонента:
Положительный электрический порт p
из составного компонента соединяется с положительным электрическим портом p
из Резистора
Отрицательный электрический порт n
из Резистора соединяется с положительным электрическим портом p
из Индуктора
Отрицательный электрический порт n
из Индуктора соединяется с положительным электрическим портом p
из вращательного электромеханического конвертера
Отрицательный электрический порт n
из Вращательного Электромеханического Конвертера соединяется с отрицательным электрическим портом n
из составного компонента
Порт R
вращательного механического устройства из составного компонента соединяется со следующими портами вращательного механического устройства:
R
из вращательного электромеханического конвертера, R
из вращательного трения и I
из Инерции
Порт C
вращательного механического устройства из составного компонента соединяется со следующими портами вращательного механического устройства:
C
из вращательного электромеханического конвертера и C
из вращательного трения
Эти связи являются текстовым эквивалентом графических связей в предыдущей блок-схеме.