symReadSSCParameters

Загрузка параметров из компонента Simscape

Описание

пример

[names,values,units] = symReadSSCParameters(componentName) возвращает массивы ячеек, содержащие имена, значения и модули всех параметров из Simscape™ компонента, называемого componentName.

Примеры

свернуть все

Загружает имена, значения и модули параметров компонента Simscape.

Предположим, что у вас есть компонент Simscape friction.ssc в текущей папке.

type('friction.ssc');
component friction < foundation.mechanical.rotational.branch

parameters
    brkwy_trq = { 25, 'N*m' };          % Breakaway friction torque
    Col_trq = { 20, 'N*m' };            % Coulomb friction torque
    visc_coef = { 0.001, 'N*m*s/rad' }; % Viscous friction coefficient
    trans_coef = { 10, 's/rad' };       % Transition approximation coefficient
    vel_thr = { 1e-4, 'rad/s' };        % Linear region velocity threshold
end

parameters (Access=private)
    brkwy_trq_th = { 24.995, 'N*m' };   % Breakaway torque at threshold velocity
end

function setup
    % Parameter range checking
    if brkwy_trq <= 0
        pm_error('simscape:GreaterThanZero','Breakaway friction torque' )
    end
    if Col_trq <= 0
        pm_error('simscape:GreaterThanZero','Coulomb friction torque' )
    end
    if Col_trq > brkwy_trq
        pm_error('simscape:LessThanOrEqual','Coulomb friction torque',...
                  'Breakaway friction torque')
    end
    if visc_coef < 0
        pm_error('simscape:GreaterThanOrEqualToZero','Viscous friction coefficient')
    end
    if trans_coef <= 0
        pm_error('simscape:GreaterThanZero','Transition approximation coefficient')
    end
    if vel_thr <= 0
        pm_error('simscape:GreaterThanZero','Linear region velocity threshold')
    end

    % Computing breakaway torque at threshold velocity
    brkwy_trq_th = visc_coef * vel_thr + Col_trq + (brkwy_trq - Col_trq) * ...
        exp(-trans_coef * vel_thr);
end

equations
    if (abs(w) <= vel_thr)
        % Linear region
        t == brkwy_trq_th * w / vel_thr;
    elseif w > 0
        t == visc_coef * w + Col_trq + ...
            (brkwy_trq - Col_trq) * exp(-trans_coef * w);
    else
        t == visc_coef * w - Col_trq - ...
            (brkwy_trq - Col_trq) * exp(-trans_coef * abs(w));
    end
end

end

Загрузите имена, значения и модули параметров компонента friction.ssc.

[names,values,units] = symReadSSCParameters('friction.ssc');

В этом примере все элементы получившихся массивов ячеек являются скалярами. Можно преобразовать массивы ячеек в символьные векторы.

names_sym = cell2sym(names)
names_sym =
[ Col_trq, brkwy_trq, brkwy_trq_th, trans_coef, vel_thr, visc_coef]
values_sym = cell2sym(values)
values_sym =
[ 20, 25, 4999/200, 10, 1/10000, 1/1000]

Создайте отдельные символьные переменные из элементов массива ячеек names в MATLAB® рабочей области. Эта команда создает символьные переменные Col_trq, brkwy_trq, brkwy_trq_th, trans_coef, vel_thr, и visc_coef как sym объекты в рабочей области.

syms(names)

Входные параметры

свернуть все

Имя компонента Simscape, заданное как имя файла, заключенное в одинарные кавычки. Файл должен иметь расширение .ssc. Если вы не предоставляете расширение файла, symReadSSCParameters принимает, что это .ssc. Компонент должен находиться в пути MATLAB или в текущей папке.

Пример: 'MyComponent.ssc'

Выходные аргументы

свернуть все

Имена всех параметров компонента Simscape, возвращенные как массив ячеек.

Типы данных: cell

Значения всех параметров компонента Simscape, возвращенные как массив ячеек.

Типы данных: cell

Модули всех параметров компонента Simscape, возвращенные как массив ячеек.

Типы данных: cell

Введенный в R2016a