主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

手动控制与 PID 控制之间的无扰控制转换

此示例展示了从手动控制切换到比例积分微分 (PID) 控制时如何实现无扰控制转移。该模型使用 Simulink® 中的 PID Controller 模块来控制具有死区时间的一阶过程。

open_system('sldemo_bumpless');

使用 Simulink® Control Design™ 提供的 PID 调谐器来调整 PID 控制器,忽略饱和度。

受控对象是具有死区时间的一阶过程,其方程为

P(s)=42.5s+1e-s.

该示例从开环控制开始,由饱和斜坡信号 Manual signal 指定。开环控制信号 Manual signal 输入到设备模块 First Order Process。工厂模块输出是期望的稳态值 40

该示例在 t = 150 时实现了控制转移。

开环控制和闭环控制之间的转换涉及两个控制阶段。

  • 手动 - 启动期间饱和斜坡信号输入到工厂模块,直到 t = 150 (Control mode = 0)。

  • 自动 - t = 150(Control mode = 1)之后的 PID 控制必须接管该过程而不会在工厂输入处引入扰动。

从手动控制转换到自动控制期间,转换不应该在控制信号中引入冲击。

配置 PID 控制器

为了支持平稳的控制过渡,PID Controller 模块支持两种操作模式:跟踪和控制。

在控制模式下,PID Controller 模块作为普通 PID 控制器运行。在跟踪模式下,该模块有一个额外的输入,允许 PID 模块通过改变其积分器输出来调整其内部状态。这种变化使得模块输出能够跟踪另一个信号输入。

为了实现无扰控制转移,PID Controller 模块必须位于:

  • 当工厂处于手动控制(开环)时的跟踪模式

  • 设备处于自动控制时的控制模式(闭环 PID 控制)

要激活信号跟踪,请在“模块参数”对话框的初始化选项卡上,选择启用跟踪模式并指定跟踪系数(Kt)。该值就是增益。此增益的倒数是跟踪环的时间常数。有关如何选择增益的更多信息,请参阅[1]。

一旦启用跟踪模式,该模块就会有第二个输入端口 TR

Untitled.png

要查看 PID Controller 模块的封装并了解 TR 端口函数如何运行,请使用此命令。

open_system('sldemo_bumpless/PID Controller','force');

设置切换机制

除了为 PID Controller 模块启用跟踪模式外,该模型还使用 Switch 模块来实现控制转移。Switch 模块确定要输入到工厂的信号以及 PID Controller 模块跟踪端口 TR

在时间 t = 0 时,Switch 模块将手动控制信号发送到工厂输入和 PID Controller 模块跟踪端口。这允许 PID Controller 模块的输出通过调整 PID 控制器积分在手动阶段跟踪手动控制信号。因此,当发生控制转移时,PID 控制器的输出与手动控制信号大致相同。

在时间 t = 150 时,Switch 模块切换,将 PID Controller 模块输出定向到工厂和 PID Controller 模块跟踪端口。PID Controller 模块跟踪其自己的输出。

Untitled.png

要关闭模型,请使用以下命令。

close_system('sldemo_bumpless/PID Controller');
close_system('sldemo_bumpless');

开启跟踪模式进行仿真

仿真无扰控制转移。在这种情况下,跟踪模式处于开启状态。

open_system('sldemo_bumpless');
sim('sldemo_bumpless');

Setpoint 信号和系统响应的图显示,当控制在 t=150 时从手动转换为自动时,Output 信号跟踪 Setpoint 轮廓而没有任何输出波动。

clf;
plot(logsoutBumpless{1}.Values);
grid on;
hold on; %draw on top of previous plot
plot(logsoutBumpless{3}.Values);

title('Comparison of Setpoint vs Measured Output: Tracking Mode on'); %add title to plot
xticks(0:50:600); % set x-axis ticks
ylim([0 50]); % set min and max of y-axis values
legend('Output y(t) ','Setpoint r(t)'); %specify legend
xline( 150, ':','HandleVisibility','off'); %draw a vertical line at 150s

hold off;

Figure contains an axes object. The axes object with title Comparison of Setpoint vs Measured Output: Tracking Mode on, xlabel Time (seconds), ylabel y(t) contains 2 objects of type line. These objects represent Output y(t), Setpoint r(t).

关闭跟踪模式进行仿真

在模型 sldemo_bumplessno 中,跟踪模式被禁用。PID Controller 模块没有跟踪输入端口。

close_system('sldemo_bumpless');
open_system('sldemo_bumplessno');
sim('sldemo_bumplessno');

Setpoint 信号和系统响应的图显示,当控制在 t=150 时从手动切换到自动时,Output 信号具有较大的瞬态响应。

%Plot Results
clf;
plot(logsoutBumplessNo{1}.Values);
grid on; 
hold on; 
plot(logsoutBumplessNo{3}.Values);

title('Comparison of Setpoint vs Measured Output: Tracking Mode off');
xticks(0:50:600);
ylim([0 600]);
legend('Output y(t) ','Setpoint r(t)');
xline( 150, ':','HandleVisibility','off' );
hold off;

Figure contains an axes object. The axes object with title Comparison of Setpoint vs Measured Output: Tracking Mode off, xlabel Time (seconds), ylabel y(t) contains 2 objects of type line. These objects represent Output y(t), Setpoint r(t).

将测量输出与跟踪模式开启和关闭进行比较

下图显示,当跟踪模式开启时,从手动到自动的控制转换更加平稳。

clf;
plot(logsoutBumplessNo{3}.Values(1),'r');
grid on; 
hold on;
plot(logsoutBumplessNo{1}.Values(1),'b');
plot(logsoutBumpless{1}.Values(1),'g');

title('Comparison of Measured Outputs ');
xticks(0:50:600);
ylim([0 600]);
legend('Setpoint r(t)','Output y(t), Tracking Mode:off', 'Output y(t), Tracking Mode:on');
yl= ylim;
patch([125 125 200 200],[yl(1) yl(2) yl(2) yl(1)],'k',...
    'facecolor',[0.4660 0.6740 0.5880],'edgecolor','none', ...
    'facealpha',0.1, 'HandleVisibility','off') ; % draw transparent polygon to highlight a section of plot
hold off;

Figure contains an axes object. The axes object with title Comparison of Measured Outputs, xlabel Time (seconds), ylabel r(t) contains 3 objects of type line. These objects represent Setpoint r(t), Output y(t), Tracking Mode:off, Output y(t), Tracking Mode:on.

对于使用 PID Controller 模块的无扰控制,启用跟踪。

参考

[1] Åström, Karl J., and Tore Hägglund. Advanced PID Control. Research Triangle Park, NC: International Society of Automation, 2006.

另请参阅

主题