状态方程中的特性矩阵A~D随时间变化,如何定义?
请教各位个问题,关于状态空间法中的四个特性矩阵随时间变化时,A~D在s-function中如何定义呢?
问题是这样的,状态空间法中求解时A~D一般是常数矩阵,遇到耦合的问题,导致A~D是时变的,即为时间t的函数,这时候可以用其他的办法求解出来,但是,我就想,能否在s-function中直接定义A~D四个时变矩阵。我写的s-function代码贴出来是这样的:
function = stest(t,x,u,flag)
switch flag,
case 0,
=mdlInitializeSizes();
case 1,
sys=mdlDerivatives(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case {2,4,9},
sys=[];
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
function =mdlInitializeSizes()
A=zeros(4,4);
D=zeros(2,2);
sizes = simsizes;
sizes.NumContStates = size(A,1);
sizes.NumDiscStates = 0;
sizes.NumOutputs = size(A,1)+size(D,1);
sizes.NumInputs = size(D,2);
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0 = zeros(size(A,1),1);
str = [];
ts = [-1 0];
function sys=mdlDerivatives(t,x,u)
A=;
B=;
sys = A*x+B*u;
function sys=mdlOutputs(t,x,u)
C=;
D=;
sys = ;
运行就会提示undefined function or variable
麻烦高手帮我解答一下,十分感谢。
页:
[1]