В примере двигателя постоянного тока с постоянными магнитами блок двигателя постоянного тока реализован как маскированная подсистема.
Следующий код реализует ту же модель с помощью составного компонента, называемого 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
, с правой стороны блока
The parameters
В блоке объявления перечислены все параметры, которые будут доступны в диалоговом окне составного блока.
The components
блок объявляет все представителя (составляющие) компоненты, задавая их полные имена начиная с директории пакета верхнего уровня. В этом примере используются компоненты из библиотеки Simscape Foundation:
Резистор
Катушка индуктивности
Вращательный Электромеханический Преобразователь
Вращательное трение
Инерция
The components
блок также связывает параметры верхнего уровня, объявленные в parameters
объявление блока, к параметрам базовых представителей компонентов. Для примера, параметр Rotor Resistance составного блока (rotor_resistance
) соответствует параметру Resistance (R
) блока Резистор в библиотеке Фундамента.
Вы не должны связывать все параметры представителя блоков с параметрами верхнего уровня. Для примера блок Вращательное Трение в библиотеке Foundation имеет параметр Transition approximation coefficient, который не сопоставлен ни с одним параметром на верхнем уровне. Поэтому составная модель всегда использует значение по умолчанию этого параметра, заданное в компоненте Вращательного трения, 10 рад/с.
The connections
блок определяет соединения между узлами (портами) представителя компонентов и их соединения с портами верхнего уровня полученного составного блока, объявленные в nodes
объявление блока составного компонента:
Положительный электрический порт p
составной компонент соединяется с положительным электрическим портом p
резистора
Отрицательный электрический порт n
резистора соединяется с положительным электрическим портом p
индуктивности
Отрицательный электрический порт n
индуктивности соединяется с положительным электрическим портом p
Вращающегося Электромеханического Конвертера
Отрицательный электрический порт n
Вращательного Электромеханического Конвертера соединяется с отрицательным электрическим портом n
составного компонента
Механический вращательный порт R
составного компонента соединяется со следующими портами механического вращений: R
Вращающегося Электромеханического Конвертера, R
Вращательного трения и I
Инерции
Механический вращательный порт C
составного компонента соединяется со следующими портами механического вращений: C
Вращающегося Электромеханического Конвертера и C
Вращательного трения
Эти соединения являются текстовым эквивалентом графических соединений в предыдущем блоке.