Я смотрю на передаточные функции (передаточная матрица) системы с несколькими входами и одним выходом (MISO). Система имеет 32 динамических состояния, четыре входа и один выход. Система A, B, C и матрицы вычисляются в коде Matlab, а модель пространства состояний создается как sys=ss(A,B,C,D).
Мой вопрос заключается в том, почему передаточные функции, полученные путем применения функции «tf» к «sys» (структура 1 * 4), отличаются от тех, которые получены путем применения функции «tf» к отдельным системным моделям «sys (1)», "sys(2)", "sys(3)" и "sys(4)", тогда как системные матрицы, полученные индивидуумами от "sys(1)" до "sys(4), полностью совпадают с соответствующими матрицами и матрицами" столбцы "sys"?
Я попробовал то же самое для простой системы 4-го порядка, и они полностью совпадают. Я также попробовал это для системы с 32-м состоянием (той же размерности, что и моя исходная система), где все системные матрицы генерируются функцией randn. Затем я попытался найти коэффициенты передаточной функции, используя cell2mat(T.den) и cell2mat(T.num) для sys и для sys(1) в sys(4). Все коэффициенты знаменателя совпадают. Также, за исключением одной из передаточных функций, совпадают и коэффициенты числителя.
Следует отметить, что в исходном примере матрица A является единственной, но в синтетическом примере 2 (размерность 32) число обусловленности системной матрицы составляет около 120. Вы можете найти код ниже. Ваша помощь высоко ценится.
clear all;
clc;
%% Building the system matrices
A=randn(32,32);
B=randn(32,4);
C=randn(1,32);
D=randn(1,4);
sys=ss(A,B,C,D); % creating the state space model
TFF=tf(sys); % calculating the tranfer matrix
%% extracting the numerator and denominator coefficients of 4 transfer
%functions
for i=1:4
Ti=TFF(i);
Tin(i,:)=cell2mat(Ti.num); % numerator coefficients
Tid(i,:)=cell2mat(Ti.den); % denominator coefficients
clear Ti
end
%% calculatingthe numerator and denominator coefficients based on individual
%transfer functions
TF1=tf(sys(1));
T1n=cell2mat(TF1.num);
T1d=cell2mat(TF1.den);
TF2=tf(sys(2));
T2n=cell2mat(TF2.num);
T2d=cell2mat(TF2.den);
TF3=tf(sys(3));
T3n=cell2mat(TF3.num);
T3d=cell2mat(TF3.den);
TF4=tf(sys(4));
T4n=cell2mat(TF4.num);
T4d=cell2mat(TF4.den);
num2str([T1n.'-Tin(1,:).']) % the error between the numerator coefficients
% of the TF1 by 2 aproaches
num2str([T2n.'-Tin(2,:).'])
num2str([T3n.'-Tin(3,:).'])
num2str([T4n.'-Tin(4,:).'])
num2str([T1d.'-Tid(1,:).'])
num2str([T2d.'-Tid(2,:).'])
num2str([T3d.'-Tid(3,:).'])
num2str([T4d.'-Tid(4,:).'])