初始条件为

时间:2017-02-01 15:11:45

标签: matlab simulation state-space

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

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具有相同的长度。

我会感激任何想法:))

0 个答案:

没有答案