首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改变闭环控制器的比例增益,但阶跃响应不变

改变闭环控制器的比例增益,但阶跃响应不变
EN

Stack Overflow用户
提问于 2016-02-19 01:27:12
回答 1查看 135关注 0票数 1

我尝试生成闭环系统的传递函数

代码语言:javascript
复制
Gcl = (KpGp) / [1 +(KpGp)] 

我想看看当比例增益Kp从5变为15时,阶跃响应将如何变化。

我正在研究P控制器的Kp效应。

代码语言:javascript
复制
A=1.2;
tau=1.4;
td=0.2;
Gp=tf(A,[tau 1],'InputDelay',td);

[y,t]=step(Gp,12);

kp=5;
Gol= series(Kp,Gp);
Gcl= feedback(Gol,1);
[y1,t1]=step(Gcl,12);

kp=10;
Gol= series(Kp,Gp);
Gcl= feedback(Gol,1);
[y2,t2]=step(Gcl,12);

kp=15;
Gol= series(Kp,Gp);
Gcl= feedback(Gol,1);
[y3,t3]=step(Gcl,12);

figure(2);
plot(t1,y1,t2,y2,t3,y3);
grid,title('Step response of plant');

然而,我一直得到一个步骤的响应。我希望看到当k= 5,k= 10和k=15时的3个阶跃响应。

这是我目前得到的阶跃响应:

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-02-19 01:35:00

这是因为在开始运行这段代码之前,您正在使用变量Kp,它可能是在您的MATLAB工作区中设置的一个变量,但是您正在使用kp来改变比例增益。因此,每次尝试更改比例增益时,都不会这样做,因为在创建的每个控制器中都会使用Kp。请注意,另一个变量是小写k。您所要做的就是将任何变量Kp更改为kp,然后重试。

代码语言:javascript
复制
A=1.2;
tau=1.4;
td=0.2;
Gp=tf(A,[tau 1],'InputDelay',td);

[y,t]=step(Gp,12);

kp=5;
Gol= series(kp,Gp); %// Change
Gcl= feedback(Gol,1);
[y1,t1]=step(Gcl,12);

kp=10;
Gol= series(kp,Gp); %// Change
Gcl= feedback(Gol,1);
[y2,t2]=step(Gcl,12);

kp=15;
Gol= series(kp,Gp); %// Change
Gcl= feedback(Gol,1);
[y3,t3]=step(Gcl,12);

figure(2);
plot(t1,y1,t2,y2,t3,y3);
grid,title('Step response of plant');
legend('kp = 5', 'kp = 10', 'kp = 15'); %// Change
ylim([0 2]); %// Change

请注意,您选择了一些使控制系统不稳定的比例增益,因此如果您尝试在不做任何修改的情况下绘制此图,则不稳定的响应将压倒稳定的响应,并且您不会在图表上看到它们。因此,我必须强制执行额外的更改,即y轴的界限在0和2之间。我还在绘图中引入了图例,以便您可以看到哪个绘图对应于哪种颜色。

这是我现在得到的图:

次要说明

您可以使用margin命令确定临界增益是什么,或者在使系统不稳定之前可以使用的最大比例增益。这里假设您指定的是开环系统(没有反馈)。因此,该函数计算理论上的最大比例增益,您可以在假设单位反馈的情况下使用系统指定该增益,这就是您正在做的。

您可以通过以下方式完成此操作:

代码语言:javascript
复制
[Gm,Pm,Wcg,Wcp] = margin(Gp);

Gm是系统的增益裕度,Wcg是在此关键增益处看到的相关振荡频率。增益裕度也被定义为确定对于我们的目的而言临界增益是什么。PmWcp是增益为0 dB时的相位裕度和频率,但在本问题中您可以忽略它们。

Gm是您要查找的变量,我们得到的结果是:

代码语言:javascript
复制
>> Gm

Gm =

    9.7005

这意味着如果您指定的增益大于9.7005,您的系统将变得不稳定。这对于你的情节来说是有意义的。我们指定了10和15的收益,我们自然会认为结果是不稳定的。

如果您愿意,您可以通过使用Routh-Hurwitz criterion for stability和构建一个Routh阵列来验证这一点,并专门确定可用于驱动此系统的稳定增益范围,并选择上限,这是关键增益。我会把这个留给你自己去发现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35488374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档