我通过向其发送输入并从中获取输出来迭代单输入单输出线性系统。系统传递函数的分母和分母Nom
分别Den
用代码表示。
Nom
并且Den
是在对某些多项式进行一些复杂运算后计算出来的,所以我没有关于这些多项式程度的先验信息。我唯一知道的是系统是正确的(即,度数Den
大于或等于度数Nom
)。
我的代码是这样的:
% ...
Nom = (...); % calculated after some complex operations
Den = (...); % calculated after some complex operations
[A, B, C, D] = tf2ss(Nom, Den);
x = zeros(size(B)); % state vector
xp = x; % derivative of the state vector
% ...
for t = 0 : SAMPLING_PERIOD : TIME_END
% ...
xp = A * x + B * u; % 'u' is some scalar input, calculated in the code previously
y = C * x + D * u; % 'y' is some irrelevant output signal, to be used in somewhere else in the code
x = xp * SAMPLING_PERIOD;
% ...
end
% ...
当Den
是 0阶(也需要Nom
是 0阶)时,返回 、tf2ss()
和 的A
空矩阵。这在我的其他代码部分有些问题。我需要这些矩阵至少是 1×1。B
C
D
所以,我的问题是,对于那些返回空的人,我可以使用哪些等效的非空矩阵来代替A
,和?例如,我可以假设所有空矩阵都是 1×1 零矩阵吗?B
C
D
例子:
[A, B, C, D] = tf2ss([1], [2])
返回
A = [] % Empty matrix
B = [] % Empty matrix
C = [] % Empty matrix
D = 0.5 % 1-by-1 matrix