Изменение параметров схемы

Введение

Каждый раз, когда вы изменяете параметр библиотечных блоков Simscape™ Electrical™ Specialized Power Systems, вы должны перезапустить симуляцию, чтобы оценить модель пространства состояний и обновить параметры нелинейных моделей. Однако можно изменить любой исходный параметр (Величина, Частота или Фаза) во время симуляции. Изменение происходит сразу же после применения изменения или закрытия меню исходных блоков.

Для Simulink® блоки, все параметры Simscape Electrical Specialized Степени Systems библиотечного блока, которые вы задаете в диалоговом окне, могут содержать MATLAB® выражения с использованием символьных имен переменных. Перед выполнением симуляции необходимо присвоить значение каждой из этих переменных в рабочем пространстве MATLAB. Это назначение позволяет вам выполнить параметрические исследования путем изменения значений параметров в скрипте MATLAB.

Пример выполнения скриптом MATLAB параметрического исследования

Предположим, что вы хотите выполнить параметрическое исследование в схеме с именем my_circuit найти влияние изменения индуктивности на переходные процессы переключения. Вы хотите найти самое высокое перенапряжение и значение индуктивности, для которого оно произошло.

Значение индуктивности одного из блоков содержит переменную L1, который необходимо задать в рабочей рабочей области. L1 изменяется в 10 стадиях от 10 мГ до 100 мГ, и значения, подлежащие тестированию, сохраняются в векторе L1_vec. Сигнал напряжения, который будет анализироваться, хранится в блоке ToWorkspace в формате массива с V1 имя переменной.

Можно написать скрипт MATLAB, который закольцовывает 10 значений индуктивности и отображает худший сценарий.

L1_vec= (10:10:100)*1e-3; % 10 inductances values 10/100 mH
V1_max=0;
for i=1:10
	L1=L1_vec(i);
	fprintf('Test No %d L1= %g H\n', i, L1);
	sim('my_circuit'); % performs simulation
	% memorize worst case
	if max(abs(V1))>V1_max,
		imax=i;
		V1_max=max(abs(V1));
	end
end

fprintf('Maximum overvoltage= %g V occurred for L1=%g H\n', V1_max, L1_vec(imax));