Advertisement

神经网络辨识系统

阅读量:
复制代码
    clc;close all;clear;
    
    y(1)= 0;
    k=1;
    u(k)= sin(2*pi*k/250);
    f(k)= 0.6*sin(pi*u(k))+0.3*sin(3*pi*u(k))+0.1*sin(5*pi*u(k));
    y(k+1)= 0.3*y(k)+f(k);
    
    for k=2:100
    u(k)= sin(2*pi*k/250);
    f(k)= 0.6*sin(pi*u(k))+0.3*sin(3*pi*u(k))+0.1*sin(5*pi*u(k));
    y(k+1)= 0.3*y(k)+0.6*y(k-1)+f(k); 
    end
    
    P= [u(2:100);y(2:100);y(1:99)];
    T= [y(3:101)];
    net= newff(minmax(P),[20,20,1],{'tansig','tansig','purelin'},'trainlm','learngdm','msereg');
    [net,tr] = train(net,P,T);
    
    Q= [u(2:100);y(2:100);y(1:99)];
    nety= sim(net,Q);
    plot(1:99,y(1:99),'b',3:101,nety(1:99),'r');
    legend('系统输出','系统辨识');
    
    
    % clc;close all;clear;
    % 
    % y(1)= 0;
    % 
    % for k=1:100
    %     u(k)= sin(2*pi*k/25)+sin(2*pi*k/10);
    %     f(k)= u(k).^3;
    %     y(k+1)= y(k)/(1+y(k).^2)+f(k);
    % end
    % 
    % P= [u(1:100);y(1:100)];
    % T= [y(2:101)];
    % net= newff(minmax(P),[20,20,1],{'tansig','tansig','purelin'},'trainlm','learngdm','msereg');
    % [net,tr] = train(net,P,T);
    % 
    % % z= zeros(1,100);
    % Q= [u(1:100);y(1:100)];
    % nety= sim(net,Q);
    % figure;
    % plot(1:100,y(1:100),'b',2:101,nety(1:100),'r');
    % legend('系统输出','系统辨识');

全部评论 (0)

还没有任何评论哟~