这个例子说明了如何利用Simulink控制设计计算延迟和采样效应模型。万博1manbetx
计算延迟和采样效应会严重影响控制系统的性能。通常情况下,如果这些因素没有考虑到系统的闭环反应变得振荡和不稳定。因此,模拟控制系统的时候,你应该包括计算延迟和采样效果精确设计和模拟一个闭环系统。
有用于计算延迟和采样的影响设计补偿两种方式。第一种方法是在离散域中设计一个控制器通过离散化植物以捕获采样的影响。第二种方法是设计在连续域的控制器。这种做法有时是更方便,但在这种情况下,你需要考虑计算延迟和采样的影响。在这个例子中,应用这两种方法来重新设计利用Simulink控制设计的控制系统。万博1manbetx
在下面的示例模型,初始补偿器具有从所述补偿器中的示例下面增益单回路反馈/前置滤波器补偿设计。
P = 0.0018222
I = 0.0052662
第一个模型具有离散实现控制系统。
MDL ='scdspeed_compdelay';open_system(MDL)
在这个模型中,该块scdspeed_compdelay /计算延迟
模型计算延迟的影响。该延迟等于所述控制器,这是最坏的情况下的采样时间。零阶保持块scdspeed_compdelay /零阶保持
模型对系统的响应采样的效果。最后,速度控制器(与PID控制器块实施使用向前欧拉采样方法离散化。
您可以通过模拟系统的响应看到采样的效果。
首先,在离散TS = 0.1,所述控制器:
TS = 0.1;SIM(MDL);T2 = simout.time;Y2 = simout.signals.values;
接着,在一个增加的采样时间Ts =0.25秒离散控制器:
TS = 0.25;SIM(MDL);T3 = simout.time;Y3 = simout.signals.values;
第二个模型是一个连续的模型。
mdl_continuous ='scdspeed_contcomp';open_system(mdl_continuous)
模拟连续模型的响应。
SIM(mdl_continuous);T1 = simout.time;Y1 = simout.signals.values;
画出离散和连续模式两者的模拟。请注意,响应随着采样时间增加更多的振荡。
情节(T1,Y1,数k,T2,Y2,'R',T3,Y3,'G')xlabel(“时间(秒)”)ylabel(“发动机响应速度”);传说(“连续控制器”,'TS = 0.1','TS = 0.25');格
要使用TS = 0.25的最慢的采样时间删除闭环系统的振动效果,你需要重新设计补偿。首先,重新设计使用植物的离散版本。您可以重新设计补偿的方式类似于单回路反馈/前置滤波器补偿设计。调谐补偿器有以下收获:
P = 0.00066155
I = 0.0019118795
set_param('scdspeed_compdelay / PID控制器,'P','0.00066155');set_param('scdspeed_compdelay / PID控制器,'一世','0.0019118795');
模拟得到的闭环系统与样品时间Ts = 0.25。你这些结果后来在这个例子中检查。
TS = 0.25;SIM(MDL);TD = simout.time;YD = simout.signals.values;
作为第二个方法中,重新设计与连续当量的单位延迟和零阶保持的控制器。
设定零阶保持动态
在该区块scdspeed_compdelay /零阶保持
由块,并选择上右击线性分析 - >指定线性化。以下块对话框打开指定零阶保持动态。
此外,指定线性化为零阶举行scdspeed_compdelay /零阶保持
与连续表示。下面的代码就相当于进入这些规范到规范的对话框。
zohblk =“scdspeed_compdelay /零阶保持”;set_param(zohblk,'SCDEnableBlockLinearizationSpecification','上');代表=结构('规格','(1-β(1,' 'InputDelay'”,TS))* SS(0,1,1,0)/ TS',...'类型','表达',...'ParameterNames',“”,...'的parameterValues',“”);set_param(zohblk,'SCDBlockLinearizationSpecification',REP);
指定延迟块的线性化scdspeed_compdelay /计算延迟
用连续传输延迟。
使用这些命令来指定块的线性化。
delayblk =“scdspeed_compdelay /计算延迟”;set_param(delayblk,'SCDEnableBlockLinearizationSpecification','上');代表=结构('规格','SS(1,' 'InputDelay' 'TS)',...'类型','表达',...'ParameterNames',“”,...'的parameterValues',“”);set_param(delayblk,'SCDBlockLinearizationSpecification',REP);
控制器的设计的分析然后保持在连续域。现在,用线性化的TS延迟= 0.1和0.25的模型。首先,设置线性化I / O点。
IO(1)=的LiNiO('scdspeed_compdelay / PID控制器1,“输入”);IO(2)=的LiNiO(“scdspeed_compdelay /零阶保持”1,'的OpenOutput');
线性化在TS = 0.1模型。
TS = 0.1;系统2 =线性化(MDL,IO);
线性化在TS = 0.25模型。
TS = 0.25;SYS3 =线性化(MDL,IO);
最后,线性无采样的影响和计算延迟模型。
IO(1)=的LiNiO('scdspeed_contcomp / PID控制器1,“输入”);IO(2)=的LiNiO('scdspeed_contcomp /弧度// s至RPM'1,'的OpenOutput');SYS1 =线性化(mdl_continuous,IO);
您可以使用引擎的线性模型检验的频率响应的计算延迟的影响。在这种情况下,系统的相位响应由于由取样所引入的延迟是显著降低。
P = bodeoptions('cstprefs');p.Grid ='上';p.PhaseMatching ='上';bodeplot(SYS1,数k,系统2,'R',SYS3,'G'{1E-2,1e2},p)的图例(“连续模式”,'TS = 0.1','TS = 0.25','位置','西南')
使用最慢的采样时间的模型,重新设计使用的技术补偿单回路反馈/前置滤波器补偿设计。这样做提供了以下PI参数:
set_param('scdspeed_compdelay / PID控制器,'P','0.00065912');set_param('scdspeed_compdelay / PID控制器,'一世','0.001898342');
模拟得到的闭环系统与样品时间Ts = 0.25。
SIM(MDL)=锝simout.time;YC = simout.signals.values;
绘制设计的响应。同时使用该控制系统的重新设计方法的产率相似的控制器。这个例子说明了计算延迟和离散化的效果。这些效应降低了系统的稳定裕度,但是当你正确的模型控制系统可以实现所需的闭环行为。
情节(T1,Y1,数k,T3,Y3,'B',TD,YD,'M',TC,YC,'R')xlabel(“时间(秒)”)ylabel(“发动机响应速度”)H =图例(“续补偿器(原稿)”,“光盘。补偿器(原稿)”,...“光盘。补偿器(光盘。重新设计)”,...“光盘。补偿器(续重新设计)”,...'位置','东南')网格bdclose('scdspeed_contcomp')bdclose('scdspeed_compdelay')
H =图例(续补偿器(原稿),盘补偿器(○...)与属性:。字符串:{1×4细胞}地点: '东南' 方向: '垂直' 字号:9位置:[0.4206 0.1353 0.4660 0.1499]单位:“规范化”使用get显示所有属性