为了了解S函数的用法,我找了几篇相关的文章看了一下,其中的例子我也照着在MATLAB中去用了一下,但却出了大错,本来我就是个菜鸟,因为高毕业设计的原因才赶鸭子上架,而且现在时间又不多了,不能系统的去了解相关的知识,所以只能向论坛的大侠们求救了!!
S函数是
k.m %k为所定义的函数名
function[y,x0]=(t,x,u,flag) %t为当前时刻,x为当前状态值,u为当前系统输入值,flag为控制返回变量。返回参数x0:状态向量初始值。返回参数y:一个6维向量。
if flag==3 %返回系统的输出向量y。
if (u(1)>5&u(1)<0&u(2)>0)|(u(1)>0&u(1)<5&u(2)<0)
y(1)=u(1);
y(2)=U(2); %Kp=K1=1
elseif
(u(1)>-5&u(1)<0&u(2)<0)|(u(1)>0&u(1)&u(2)>0)
y(1)=100*u(1); %Kp=100
y(2)=60*u(2); %K1=60
else
y(1)=80*u(1); %Kp=80
y(2)=2*u(2); %K1=2
end
elseif flag==o %返回系统变量和初始条件维数。
y=[0;0;2;2;0;0]; %输出,输入变量数均为2个。
else
y=[];
end
运行出错提示的文字是这样的:Error getting arg counts for S-function 'K' in 'xiao1/Subsystem/S-Function'. MATLAB error message:
Error: File: E:\MATLAB7.0\work\K.m Line: 2 Column: 1
Function definitions are not permitted at the prompt or in scripts
图片显示如下