Изучение MATLAB: комплексное руководство по получению полюсов передаточных функций

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

Метод 1: использование функции tf
MATLAB предоставляет функцию tfдля определения передаточных функций. Чтобы получить полюса, мы можем использовать функцию poleдля объекта передаточной функции.

% Define the transfer function
num = [1]; % Numerator coefficients
den = [1, 2, 1]; % Denominator coefficients
G = tf(num, den);
% Get the poles
p = pole(G);
disp(p);

Метод 2: использование функции zpk
Функция zpkв MATLAB позволяет нам определять передаточные функции в форме с нулевым коэффициентом усиления. Мы можем напрямую извлечь полюса, используя функцию poleдля объекта zpk.

% Define the transfer function in zero-pole-gain form
z = []; % Zeros
p = [-1, -2]; % Poles
k = 1; % Gain
G = zpk(z, p, k);
% Get the poles
p = pole(G);
disp(p);

Метод 3: использование функции ss.
Если у вас есть представление системы в пространстве состояний, вы можете использовать функцию ssдля создания состояния. пространственную модель, а затем извлеките полюса с помощью функции pole.

% Define the state-space representation
A = [-1, 0; 0, -2]; % State matrix
B = [1; 1]; % Input matrix
C = [1, 1]; % Output matrix
D = 0; % Feedthrough matrix
sys = ss(A, B, C, D);
% Get the poles
p = pole(sys);
disp(p);

Метод 4: использование функции tf2zp
Функция tf2zpв MATLAB позволяет нам преобразовать передаточную функцию в форму с нулевым коэффициентом усиления. Затем мы можем извлечь полюса из полученного представления с нулевым усилением полюсов.

% Define the transfer function
num = [1]; % Numerator coefficients
den = [1, 2, 1]; % Denominator coefficients
% Convert transfer function to zero-pole-gain form
[z, p, k] = tf2zp(num, den);
% Get the poles
disp(p);

В этой статье мы исследовали несколько методов получения полюсов передаточных функций в MATLAB. Мы рассмотрели различные подходы с использованием таких функций, как tf, zpk, ssи tf2zp. Понимание того, как извлекать полюса, необходимо для анализа системы, оценки устойчивости и проектирования контроллера. Используя эти методы, вы можете расширить свои возможности проектирования систем управления с помощью MATLAB.