c8mhebb.m

来自「包含大量遗传算法程序」· M 代码 · 共 24 行

M
24
字号
function [sys,x0,str,ts]=c8mhebb(t,x,u,flag,deltaK)
switch flag,
   case 0, [sys,x0,str,ts]=mdlInitializeSizes;
   case 2, sys=mdlUpdate(t,x,u,deltaK);
   case 3, sys = mdlOutputs(t,x,u);
   case {1, 4, 9}, sys = [];
   otherwise, error(['Unhandled flag = ',num2str(flag)]);
end;
% --- 模块初始化函数  mdlInitializeSizes
function [sys,x0,str,ts] = mdlInitializeSizes
sizes = simsizes; % 读入系统变量的默认值
sizes.NumContStates = 0; sizes.NumDiscStates = 3;
sizes.NumOutputs = 4; sizes.NumInputs = 4;
sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1;
sys = simsizes(sizes); x0 = [0.3*rand(3,1)];
str = []; ts = [-1 0]; % 继承输入信号的采样周期
% --- 离散状态更新函数  mdlUpdate
function sys = mdlUpdate(t,x,u,deltaK)
sys=x+deltaK*u(1)*u(4)*(2*u(1)-u(2));
% --- 输出量计算函数  mdlOutputs
function sys = mdlOutputs(t,x,u)
xx= [u(1)-u(2) u(1) u(1)+u(3)-2*u(2)];
sys=[u(4)+0.12*xx*x/sum(abs(x)); x/sum(abs(x))];

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?