0

在使用lsimmatlab 的命令时,我发现程序中的初始条件不会影响模拟的输出。

y = lsim(F,input,time,x0);

哪里F是传递函数,以及x0我用状态空间模型计算的初始条件。的值x0不影响y,我什至用不同的数字替换它,模拟的输出y总是相同的。

我实际上是在尝试从实际测量的输出中获取 tf 的参数。所以这是代码的主要部分:

tsmpl = 1e-2;
Sizeof_y = length(y_real);
R        = zeros(Sizeof_y,3);      

R(1,:) = [y_real(1) input(1) 0];

for i=2:Sizeof_y
          R(i,:)=[y_real(i-1) input(i) input(i-1)]; 
end
p   = pinv(R)*y_real;
z   = tf('z',tsmpl);
num = p(2)*z+p(3);
den = z-p(1);
F   = num/den;
sys = ss(F); 

x0  = (y_real(1) - (sys.d*sig(1)))*pinv(sys.c);

y  = lsim(F,input,time,x0);

y_real是测量的输出。它是复数的向量。
time 是表示过程持续时间的时间向量。(由测量给出)time = 6:0.01:24
input 表示测试信号,它是一个定义如下的向量:

Size_input = length(time);   

Size_sine  = length(halftime) ;   %halftime is the duration of the exitation also known from the measurment
input      = zeros(Size_input,1);

input(1:Size_sine) = complex(30);

向量y_realtimeinput具有相同的长度。

我会很感激任何想法:))

4

0 回答 0