Образцовый массив с изменениями в двух параметрах

Этот пример показывает, как создать двумерный (2D) массив передаточных функций с помощью циклов for. Один параметр передаточной функции отличается по каждой размерности массива.

Можно использовать метод этого примера, чтобы создать более многомерные массивы с изменениями большего количества параметров. Такие массивы полезны для изучения эффектов изменений нескольких-параметров на отклике системы.

Одно вход второго порядка, одно вывод (SISO) передаточная функция

H(s)=ω2s2+2ζωs+ω2.

зависит от двух параметров: отношение затухания, ζ, и собственная частота, ω. Если оба ζ и ω отличайтесь, вы получаете несколько передаточных функций формы:

Hij(s)=ωj2s2+2ζiωjs+ωj2,

где ζi и ωj представляйте различные измерения или выбранные значения переменных параметров. Можно собрать все эти передаточные функции в одной переменной, чтобы создать двумерный образцовый массив.

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

H = tf(zeros(1,1,3,3));

В этом примере существует три значения для каждого параметра в передаточной функции H. Поэтому эта команда создает массив 3х3 одно входа, одно вывод (SISO) нулевые передаточные функции.

Создайте массивы, содержащие значения параметров.

zeta = [0.66,0.71,0.75];
w = [1.0,1.2,1.5];

Создайте массив цикличным выполнением через все комбинации значений параметров.

for i = 1:length(zeta)
  for j = 1:length(w)
    H(:,:,i,j) = tf(w(j)^2,[1 2*zeta(i)*w(j) w(j)^2]);
  end
end

H является массивом 3х3 передаточных функций. ζ отличается, когда вы перемещаетесь от модели до модели вдоль отдельного столбца H. Параметр ω отличается, когда вы проходите одна строка.

Постройте переходной процесс H, чтобы видеть, как изменение параметра влияет на переходной процесс.

stepplot(H)

Можно установить свойство SamplingGrid образцового массива помочь отслеживать, которых набор значений параметров соответствует который запись в массиве. Для этого создайте сетку значений параметров, которая совпадает с размерностями массива. Затем присвойте эти значения H.SamplingGrid с названиями параметра.

[zetagrid,wgrid] = ndgrid(zeta,w);
H.SamplingGrid = struct('zeta',zetagrid,'w',wgrid);

Когда вы отображаете H, значения параметров в H.SamplingGrid отображены наряду с каждой передаточной функцией в массиве.

Смотрите также

Похожие темы