本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.
如何对PID实现同步控制,什幺样可以实现呢?
在工业控制中,PID控制(比例-积分-微分控制)得到了广泛的应用,这是因为PID控制具有以下优点:01不需要知道被控对象的数学模型。
实际上大多数工业对象准确的数学模型是无法获得的,对于这一类系统,使用PID控制可以得到比较满意的效果。据日本统计,目前PID及变型PID约占总控制回路数的90%左右。
02PID控制器具有典型的结构,程序设计简单,参数调整方便。
03有较强的灵活性和适应性,根据被控对象的具体情况,可以采用各种PID控制的变种和改进的控制方式,如PI、PD、带死区的PID、积分分离式PID、变速积分PID等。
随着智能控制技术的发展,PID控制与模糊控制、神经网络控制等现代控制方法相结合,可以实现PID控制器的参数自整定,使PID控制器具有经久不衰的生命力。
二,PLC实现PID控制的方法如图所示为采用PLC对模拟量实行PID控制的系统结构框图。
用PLC对模拟量进行PID控制时,可以采用以下几种方法:如图用PLC实现模拟量PID控制的系统结构框图使用PID过程控制模块。
这种模块的PID控制程序是PLC生产厂家设计的,并存放在模块中,用户在使用时只需要设置一些参数,使用起来非常方便,一块模块可以控制几路甚至几十路闭环回路。
但是这种模块的价格昂贵,一般在大型控制系统中使用。如三菱的A系列、Q系列PLC的PID控制模块。
三,FX2N的PID指令PID指令的编号为FNC88,如图6-36所示源操作数[S1]、[S2]、[S3]和目标操作数[D]均为数据寄存器D,16位指令,占9个程序步。
[S1]和[S2]分别用来存放给定值SV和当前测量到的反馈值PV,[S3]~[S3]+6用来存放控制参数的值,运算结果MV存放在[D]中。源操作数[S3]占用从[S3]开始的25个数据寄存器。
如图PID指令PID指令是用来调用PID运算程序,在PID运算开始之前,应使用MOV指令将参数(见表6-3)设定值预先写入对应的数据寄存器中。如果使用有断电保持功能的数据寄存器,不需要重复写入。
如果目标操作数[D]有断电保持功能,应使用初始化脉冲M8002的常开触点将其复位。表6-3PID控制参数及设定ID指令可以同时多次使用,但是用于运算的[S3]、[D]的数据寄存器元件号不能重复。
PID指令可以在定。
基于BP神经网络的PID控制器设计
参考一下刘金琨的《先进PID控制》这本书 爱发猫 www.aifamao.com 。
例子:被控对象yout(k)=a(k)yout(k-1)/(1+yout(k-1)^2)+u(k_1)其中a(k)=1.2(1-0.8e^(-0.1k))输入信号:rin(k)=1.0和rin(k)=sin(2t)%BPbasedPIDControlclearall;closeall;xite=0.25;//学习速率alfa=0.05;//惯性系数S=1;%SignaltypeIN=4;H=5;Out=3;%NNStructureifS==1%StepSignalwi=[-0.6394-0.2696-0.3756-0.7023;-0.8603-0.2013-0.5024-0.2596;-1.07490.5543-1.6820-0.5437;-0.3625-0.0724-0.6463-0.2859;0.14250.0279-0.5406-0.7660];%wi=0.50*rands(H,IN);wi_1=wi;wi_2=wi;wi_3=wi;wo=[0.75760.26160.5820-0.1416-0.1325;-0.11460.29490.83520.22050.4508;0.72010.45660.76720.49620.3632];%wo=0.50*rands(Out,H);wo_1=wo;wo_2=wo;wo_3=wo;endifS==2%SineSignalwi=[-0.28460.2193-0.5097-1.0668;-0.7484-0.1210-0.47080.0988;-0.71760.8297-1.60000.2049;-0.08580.1925-0.63460.0347;0.43580.2369-0.4564-0.1324];%wi=0.50*rands(H,IN);wi_1=wi;wi_2=wi;wi_3=wi;wo=[1.04380.54780.86820.14460.1537;0.17160.58111.12140.50670.7370;1.00630.74281.05340.78240.6494];%wo=0.50*rands(Out,H);wo_1=wo;wo_2=wo;wo_3=wo;endx=[0,0,0];u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;Oh=zeros(H,1);%OutputfromNNmiddlelayerI=Oh;%InputtoNNmiddlelayererror_2=0;error_1=0;ts=0.001;fork=1:1:6000time(k)=k*ts;ifS==1rin(k)=1.0;elseifS==2rin(k)=sin(1*2*pi*k*ts);end%Unlinearmodela(k)=1.2*(1-0.8*exp(-0.1*k));yout(k)=a(k)*y_1/(1+y_1^2)+u_1;error(k)=rin(k)-yout(k);xi=[rin(k),yout(k),error(k),1];x(1)=error(k)-error_1;x(2)=error(k);x(3)=error(k)-2*error_1+error_2;epid=[x(1);x(2);x(3)];I=xi*wi’;forj=1:1:HOh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j)));%MiddleLayerendK=wo*Oh;%OutputLayerforl=1:1:OutK(l)=exp(K(l))/(exp(K(l))+exp(-K(l)));%Gettingkp,ki,kdendkp(k)=K(1);ki(k)=K(2);kd(k)=K(3);Kpid=[kp(k),ki(k),kd(k)];du(k)=Kpid*epid;u(k)=u_1+du(k);ifu(k)>=10%Restrictingtheoutputofcontrolleru(k)=10;endifu(k)。
什幺是PID调节器,并举例说明P、I、D的调节作用。
PID调节器是一个在工业控制应用中常见的反馈回路部件,PID是以它的三种纠正算法而命名的。这三种算法都是用加法调整被控制的数值。而实际上这些加法运算大部分变成了减法运算因为被加数总是负值。
以下是PID的调节作用举例:1.比例-来控制当前,误差值和一个负常数P(表示比例)相乘,然后和预定的值相加。P只是在控制器的输出和系统的误差成比例的时候成立。
这种控制器输出的变化与输入控制器的偏差成比例关系。比如说,一个电热器的控制器的比例尺范围是10°C,它的预定值是20°C。
那幺它在10°C的时候会输出100%,在15°C的时候会输出50%,在19°C的时候输出10%,注意在误差是0的时候,控制器的输出也是0。
2.积分-来控制过去,误差值是过去一段时间的误差和,然后乘以一个负常数I,然后和预定值相加。I从过去的平均误差值来找到系统的输出结果和预定值的平均误差。
一个简单的比例系统会振荡,会在预定值的附近来回变化,因为系统无法消除多余的纠正。通过加上一个负的平均误差比例值,平均的系统误差值就会总是减少。所以,最终这个PID回路系统会在预定值定下来。
3.微分 -来控制将来,计算误差的一阶导,并和一个负常数D相乘,最后和预定值相加。这个导数的控制会对系统的改变作出反应。导数的结果越大,那幺控制系统就对输出结果作出更快速的反应。
这个D参数也是PID被称为可预测的控制器的原因。D参数对减少控制器短期的改变很有帮助。一些实际中的速度缓慢的系统可以不需要D参数。
扩展资料:用更专业的话来讲,一个PID控制器可以被称作一个在频域系统的滤波器。这一点在计算它是否会最终达到稳定结果时很有用。
如果数值挑选不当,控制系统的输入值会反复振荡,这导致系统可能永远无法达到预设值。
传递函数1/s(s+1)(s+2)的节约响应曲线、PID控制器的控制曲线、模糊自适应PID控制器的控制曲线如下示: 80
遗传算法和神经网络是两个改进方向。前者是一个全局寻优算法,后者是拟合算法(类似于自适应)。
全局寻优就是找到一组控制参数,使得阶跃响应与理想输出之间误差的某一范数最小,控制参数可以是你的模糊控制器参数,神经网络参数,pid前面的系数等等等等。
拟合算法就是找到某个函数关系,使得输入输出之间的误差最小,很类似数值方法里面的插值。要达到相同或者更好的控制效果是必然的。
比如你用遗传算法找到一组最好的模糊pid控制器参数,然后和你自己试凑的模糊pid相比,那肯定是更好,但是原理上没有什幺改观,控制器还是原来的控制器,只是找到了最优参数,另外实时性要求不高的话建议不用遗传算法,用更精确的全局寻优算法,比如粒子群,蚁群算法等。
神经网络PID控制器古典的是用神经网络拟合pid参数,现代的都是把PID环节做成隐含层神经元,因为你这个被控对象很简单,所以我个人观点,加上一些常用的神经网络控制算法就够用了,比如某些环节加一个加权和。
这个东西说实在的你要做作业是个不错的练习,但是写论文显得略微落伍了。单纯的全局寻优算法和神经网络控制前些年做的有点烂了,写论文的话实在是很难找出来创新点。
s函数-神经网络PID
我毕设是这个研究好几天了终于有点头绪.虽然你是3年前发的我忍不住跟你分享一下.估计还会有人需要。我找了整整几天在网上找不到任何有用的资料等过几天答辩完了有新的理解会回来补充,就当造福后人了。
switchflag,case0[sys,x0,str,ts]=mdlInitializeSizes(nh);case3sys=mdlOutputs(t,x,u,nh,xite,alfa,KF1,KF2,wi,wo);case{1,2,4,9}sys=[];otherwiseerror([‘Unhandledflag=’,num2str(flag)]);endflag是标志位.不同的flag取值代表函数进行不同的运算,这里flag=0进行初始化运算,=3进行sys输出运算,其他的不运算。
function[sys,x0,str,ts]=mdlInitializeSizes(nh)sizes=simsizes;sizes.NumContStates=0;sizes.NumDiscStates=0;sizes.NumOutputs=4+7*nh;%dynamicallysized?
sizes.NumInputs=14*nh+7;%dynamicallysized?
sizes.DirFeedthrough=1;%hasdirectfeedthroughsizes.NumSampleTimes=1;sys=simsizes(sizes);str=[];x0=[];ts=[-10];这些是必要的参数设置,分别是连续参数为0,离散参数为0,输出个数4+7*nh,输入个数14*nh+7(不知道4和7是哪来的?
分别是输入参数和返回参数的数量),直接馈入(我也不知道是什幺)为1,取样次数为1.设置完赋给sys输出。
str是没用的东西,x0是初始状态为空矩阵,这里你打错字了是ts=[T0],ts是一个1X2的向量,ts(1)是采样周期,ts(2)是偏移量。
wi_2=wi+reshape(u(8:7+4*nh),nh,4);wo_2=wo+reshape(u(8+4*nh:7+7*nh),3,nh);wi_1=wi+reshape(u(8+7*nh:7+11*nh),nh,4);wo_1=wo+reshape(u(8+11*nh:7+14*nh),3,nh);这个是学习网络的建立过程,具体我也不懂。
xx=[u(1)-u(2);u(1);u(1)+u(3)-2*u(2)];这句是增量式PID控制算法,应该是你说的PID部分,我也不太懂。程序部分我就知道这些。
还有我好久才查到的,nh代表神经元个数,xite是学习速率,alfa惯性系数。希望对再来看的人有帮助。
路径跟踪的神经网络pid控制怎幺设计
1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。
可以这幺说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。
一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。
2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。
这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。
在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。
在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。
在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。
关于基于神经网络的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_1);wadd(k)=abs(wkp(k))+abs(wki(k))+abs(wkd(k));w11(k)=wkp(k)/wadd(k);w22(k)=wki(k)/wadd(k);w33(k)=wkd(k)/wadd(k);w=[w11(k),w22(k),w33(k)];u(k)=u_1+0.15*w*x;%输入限幅ifu(k)>10u(k)=10;endifu(k)。
神经网络自整定PID真的有效吗?我看图书馆的参考书上和知网论文上的方法,感觉推导过程都不对啊?
楼主的这个问题已经是六年前的问题了(今天2021年5月),不知道楼主现在还关注这个话题不?神经网络自整定PID肯定是有效的。
目前,神经网络自整定PID主要面临三个问题:一是初值选择的问题,不合理的初值很容易使闭环系统不稳定;二是神经网络自整定PID自身需要人为设定的参数较多,PID控制自身只需要三个人为设定参数,神经网络自整定PID则需要四个(三个初值和一个学习因子),这使得神经网络自整定PID比传统PID算法还要麻烦;三是缺乏完整的理论稳定性证明,神经网络自整定PID在线更新规则早已稳定,并且被广泛引用和应用,而基于神经网络自整定PID的闭环系统稳定性证明一直没有得到很好的解决,某种程度上,这限制了神经网络自整定PID的推广。
我个人也做了一些这样的研究,感兴趣的话可以参考我的一篇期刊论文。
Data-DrivenTrackingControlBasedonLMandPIDNeuralNetworkwithRelayFeedbackforDiscreteNonlinearSystems。
Be First to Comment