Составной компонент — двигатель постоянного тока

В Моторном примере Постоянного электромагнита блок двигателя постоянного тока реализован как подсистема маскированная.

Следующий код реализует ту же модель посредством составного названного 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 Вращательного Трения

Эти связи являются текстовым эквивалентом графических связей в предыдущей блок-схеме.

Похожие темы