做一个简单的控制器,输入为一组离散的值,经过计算后得到下一个时刻的预测值Target,大概功能就是这样。现在是在m文件中,请问怎么能把该m文件作为一个模块在Simulin...
做一个简单的控制器,输入为一组离散的值,经过计算后得到下一个时刻的预测值Target,大概功能就是这样。现在是在m文件中,请问怎么能把该m文件作为一个模块在Simulink中调用?想实现的功能是:在Simulink中设置一个输入,通过该控制器后,能够实时得到输出值Target。附m文件代码如下,如能指点,不胜感激!
clc,clear
x0=[%输入数据];
x1=zeros(size(x0));
n=length(x0);
x1(1)=x0(1);
for i=2:n
x1(i)=x1(i-1)+x0(i)
end
z=zeros(size(x0));
alpha=0.5;
for i=2:n
z(i)=alpha*x1(i)+(1-alpha)*x1(i-1)
end
Y=zeros(n-1,1);
B=zeros(n-1,2);
for i=2:n
Y(i-1,1)=x0(i);
B(i-1,1)=-z(i);
B(i-1,2)=1;
end
Para=inv(B'*B)*B'*Y;
a=Para(1);
b=Para(2);
t=0:1:12;
Target = (x0(1)-b/a)*exp(-a*n)*(1-exp(a));%预测第n+1年的数值