关于基于神经网络的PID液位控制用MATLAB怎么编程啊?求高手指点!!!!
。
其实只需要PID参数能够顺利确定就行了,这里有个程序,你试试看closeallclearallclctic%初始化x=[0;0;0];xiteP=0.4;xiteI=0.3;xiteD=0.4;K=0.15;%很关键,越大,快速性越好,但超调量大,甚至不稳定。
wkp_1=rand;wki_1=rand;wkd_1=rand;error_1=0;error_2=0;y_1=0;y_2=0;y_3=0;u_1=0;u_2=0;u_3=0;ts=0.001;%采样时间fork=1:1000time(k)=k*ts;rin(k)=1.0*sign(sin(2*2*pi*k*ts));%参考信号rin(k)=1.0*sgn(sin(4*pi*t))yout(k)=0.368*y_1+0.26*y_2+0.1*u_1+0.632*u_2;%被控对象y(k)=0.368y(k-1)+0.26y(k-2)+0.1u(k-1)+0.632error(k)=rin(k)-yout(k);%偏差和控制量求取x(1)=error(k)-error_1;%Px(2)=error(k);%Ix(3)=error(k)-2*error_1+error_2;%Dwkp(k)=wkp_1+xiteP*error(k)*u_1*(2*error(k)-error_1);wki(k)=wki_1+xiteI*error(k)*u_1*(2*error(k)-error_1);wkd(k)=wkd_1+xiteD*error(k)*u_1*(2*error(k)-error