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

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

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

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

Похожие темы