init
This commit is contained in:
29
FOTF Toolbox/ffuz_param.m
Normal file
29
FOTF Toolbox/ffuz_param.m
Normal file
@ -0,0 +1,29 @@
|
||||
function [sys,x0,str,ts]=ffuz_param(t,x,u,flag,T,fuz,K0)
|
||||
% ffuz_param - S-function of the fuzzy inference system
|
||||
|
||||
% Copyright (c) Dingyu Xue, Northeastern University, China
|
||||
% Last modified 28 March, 2017
|
||||
switch flag
|
||||
case 0, [sys,x0,str,ts] = mdlInitializeSizes(T);
|
||||
case 2, sys = mdlUpdates(x,u);
|
||||
case 3, sys = mdlOutputs(x,u,fuz,K0);
|
||||
case {1, 4, 9}, sys = [];
|
||||
otherwise, error(['Unhandled flag=',num2str(flag)]);
|
||||
end
|
||||
function [sys,x0,str,ts]=mdlInitializeSizes(T)
|
||||
sizes=simsizes;
|
||||
sizes.NumContStates=0; sizes.NumDiscStates=2;
|
||||
sizes.NumOutputs=5; sizes.NumInputs=1;
|
||||
sizes.DirFeedthrough=0; sizes.NumSampleTimes=1;
|
||||
sys=simsizes(sizes); x0=zeros(2,1); str=[]; ts=[T 0];
|
||||
%
|
||||
function sys = mdlUpdates(x,u)
|
||||
sys=[u(1); u(1)-x(1)];
|
||||
%
|
||||
function sys = mdlOutputs(x,u,fuz,K0)
|
||||
Kfpid=K0+evalfis([x(1),x(2)],fuz)';
|
||||
assignin('base','Kp',Kfpid(1));
|
||||
assignin('base','Ki',Kfpid(2));
|
||||
assignin('base','Kd',Kfpid(3));
|
||||
assignin('base','lam',Kfpid(4));
|
||||
assignin('base','mu0',Kfpid(5)); sys=Kfpid;
|
||||
Reference in New Issue
Block a user