estimatortester.m
来自「一个用MATLAB编写的优化控制工具箱」· M 代码 · 共 51 行
M
51 行
% Tests estimatorclear allxhat0=2.5;n=20;NL=200;Ng=1;ell=1;time=1:NL; % Time steps during a lifetimey=zeros(NL,Ng); % Initialize/allocate memory for sensed variable from environmentz=zeros(NL,Ng); % Initializesigmaz2=0.5*ones(NL,Ng); % Initialize the variance in the variable we want to estimate (could % change during a lifetime or over generation)xbar=2; % For case where have an unknown constant in the environment that want to estimatex=xbar*ones(NL,Ng); % Set variable want to estimate as a constantxhat=zeros(NL,Ng);% Set weighting parameters for cost functionw1=0.01;w2=1; w3=.1;clear Y % Dimension changes on the regressor vector so clear it each time it changesY=xhat0*ones(n,1); % Set initial condition % Run estimator for lifetime of animal for k=1:NL % Generate sensed signals, including initial values that are instincts z(k,ell)=sigmaz2(k,ell)*randn; % Generate noise y(k,ell)=x(k,ell)+z(k,ell); % Generate signal that is sensed Y=[y(k,ell); Y(1:(n-1),1)]; % Shift regression vector, load in new value xhat(k,ell)=mean(Y); endJ=w1*n+w2*(1/NL)*(x(:,ell)-xhat(:,ell))'*(x(:,ell)-xhat(:,ell))... -w3*(x(1,ell)-xhat0)^2% Plot resultsfigure(1) clfplot(time,x,'r.',time,y,'g--',time,xhat,'b-')xlabel('Iteration')title('x (dotted), y (dashed), xhat (solid)')
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?