Обновление файлов компонентов Simscape для использования нового синтаксиса
ssc_update package
ssc_update запускает сценарий, который обновляет файлы устаревших компонентов, содержащие across и through заявления. При обнаружении файла компонента Simscape™, написанного в старом формате, сценарий создает резервную копию файла (), удаляет filename.ssc.bakthrough и across заявления из setup раздел, заменяет through операторы с соответствующими branches и добавляет уравнения, эквивалентные across заявления для equations раздел файла.
ssc_update обновляет все устаревшие файлы компонентов, расположенные в пакете. Аргумент, package, должно быть именем пакета верхнего уровня. package
Примечание
Имя каталога пакета начинается с ведущего + символ, в то время как аргумент ssc_update необходимо опустить + персонаж.
Если запустить ssc_update из структуры каталога пакета, можно опустить аргумент.
Например, у вас есть пользовательский пакет +MyCapacitors, который содержит файл компонента IdealCapacitor.ssc, написана в старом формате:
component IdealCapacitor
% Ideal Capacitor
% Models an ideal (lossless) capacitor.
nodes
p = foundation.electrical.electrical; % +:top
n = foundation.electrical.electrical; % -:bottom
end
parameters
C = { 1, 'F' }; % Capacitance
V0 = { 0, 'V' }; % Initial voltage
end
variables
i = { 0, 'A' }; % Current through variable
v = { 0, 'V' }; % Voltage across variable
end
function setup
if C <= 0
error( 'Capacitance must be greater than zero' )
end
through( i, p.i, n.i ); % Through variable i from node p to node n
across( v, p.v, n.v ); % Across variable v from p to n
v = V0;
end
equations
i == C*v.der; % Equation
end
end
Чтобы обновить файл до нового формата, в командной строке MATLAB ® введите :
ssc_update MyCapacitors;
Эта команда создает резервную копию файла компонента. IdealCapacitor.ssc.bak, в той же папке, где находится исходный файл, и перезаписывает IdealCapacitor.ssc файл следующим образом:
component IdealCapacitor
% Ideal Capacitor
% Models an ideal (lossless) capacitor.
nodes
p = foundation.electrical.electrical; % +:top
n = foundation.electrical.electrical; % -:bottom
end
parameters
C = { 1, 'F' }; % Capacitance
V0 = { 0, 'V' }; % Initial voltage
end
variables
i = { 0, 'A' }; % Current through variable
v = { 0, 'V' }; % Voltage across variable
end
function setup
if C <= 0
error( 'Capacitance must be greater than zero' )
end
v = V0;
end
branches
i : p.i -> n.i; % Through variable i from node p to node n
end
equations
v == p.v - n.v; % Across variable v from p to n
i == C*v.der; % Equation
end
end
Как видите, оригинал through заявление
through( i, p.i, n.i ); % Through variable i from node p to node n
был заменен на branches раздел:
branches i : p.i -> n.i; % Through variable i from node p to node n end
across заявление
across( v, p.v, n.v ); % Across variable v from p to n
был заменен уравнением
v == p.v - n.v; % Across variable v from p to n
в equations раздел.
Два других утверждения в setup раздел оставлен без изменений.
Примечание
Начиная с R2019a, используя setup не рекомендуется. Другие конструкции, доступные на языке Simscape, позволяют достичь таких же результатов без ущерба для возможностей выполнения. Дополнительные сведения см. в разделе Настройка не рекомендуется.