主要内容

在实时编辑器中从测量的植物数据调整PID控制器

这个例子展示了如何使用Live Editor任务来调优植物的PID控制器,从测量植物对已知输入信号的响应开始。在本例中,使用估计状态空间模型任务生成用于估计参数化植物模型的代码。然后,你使用转换模型率离散化连续时间识别模型的任务。最后,使用整定PID控制器设计一个PID控制器,以实现闭环响应,满足您的设计要求。(使用估计状态空间模型需要系统识别工具箱™许可证。)

Live Editor任务允许您交互式地迭代参数和设置,同时观察它们对计算结果的影响。然后,任务自动生成MATLAB®代码,实现显示的结果。要在这个脚本中试验Live Editor任务,请打开这个示例。有关实时编辑器任务的详细信息,请参见在活动脚本中添加交互式任务

负荷装置数据

加载测量的输入输出数据。在本例中,数据由引擎对啁啾输入的响应组成。输入u是一个包含每0.04秒采样一次的输入信号的向量。输出向量y包含相应的测量响应。

负载IdentPlantPIDExampleuyT = 0.04*(0:长度(u)-1);情节(t, u, t、y)传说(输入你的的反应y '

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示输入u,响应y。

估计状态空间模型

要从此数据估计状态空间模型,请使用估计状态空间模型(系统识别工具箱)实时编辑器任务。方法将任务插入到脚本中任务菜单中的实时编辑器。在这个脚本中,估计状态空间模型已插入。打开示例以试验该任务。

要执行估计,在任务中,指定加载的输入和输出信号,u而且y,采样时间为0.04秒。(对于本例,您没有验证数据。)您还需要指定一个工厂订单。通常,您可以根据您对系统的了解来猜测工厂的顺序。一般来说,你想要使用最低的植物顺序来给出一个相当好的估计拟合。在估计状态空间模型任务,用不同的植物顺序值进行实验,观察拟合结果,显示在输出图中。可选选项和参数的详细信息请参见估计状态空间模型(系统识别工具箱)任务参考页。

当您改变任务中的参数时,它会自动更新生成的代码以执行估计和创建图形。(要查看生成的代码,请单击在任务的底部。)

生活任务为时间序列数据创建对象estimationData = iddata(y,u,0.04);估计状态空间模型sys_id = ssest(estimationData,4);%显示结果比较(estimationData sys_id);清晰的estimationData;标题(的估算数据:);

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(y1), sys\_id: 72.04%。

对于本例,在植物顺序4时,估计拟合约为72%。尝试增加植物的顺序,看到这样做并没有改善贴合太多。因此,请使用四阶植物。的摘要行中输入的变量名,代码将生成一个已标识的状态空间模型估计状态空间模型的任务。对于本例,使用sys_id.在您完成对任务的实验之后,确定的状态空间模型sys_id是在MATLAB®工作区中,您可以使用它进行额外的设计和分析,就像使用任何其他LTI模型对象一样。例如,检查已识别的状态空间模型的频率响应sys_id

波德(sys_id)网格

图中包含2个轴对象。标题为From: u1 To: y1的坐标轴对象1包含一个line类型的对象。该对象表示sys\_id。坐标轴对象2包含一个line类型的对象。该对象表示sys\_id。

离散化模型

假设你想在设计PID控制器之前对这个模型进行离散化。要做到这一点,请使用转换模型率的任务。在任务中,选择识别的模型sys_id.指定一个足够快的采样时间,以适应识别的模型响应中的共振,例如0.025 s。也可以选择不同的转换方法,以更好地匹配共振附近的频率响应。例如,尝试设置方法双线性(Tustin)近似与38.4 rad/s的曲前频率,位置的峰值响应。当您在任务中试验设置时,请在波德图中比较原始模型和转换模型,以确保您对匹配感到满意。(有关参数和选项的详细信息,请参见转换模型率任务参考页。)

转换模型率生成生成带有您键入到任务摘要行中的变量名的离散化模型的代码。对于本例,使用sys_d

生活任务将模型从连续时间转换为离散时间Sys_d = c2d(sys_id,0.025);%可视化结果bodeplot (sys_id sys_d);传奇(的原始模型“转换模式”);网格

图中包含2个轴对象。从:u1到:y1的轴对象1包含2个line类型的对象。这些对象表示原始模型、转换模型。坐标轴对象2包含2个line类型的对象。这些对象表示原始模型、转换模型。

为了确认离散化模型捕捉了由于共振引起的瞬态响应,请比较原始识别模型的阶跃响应的前几秒sys_id离散化模型sys_d

步骤(sys_id sys_d 3)传说(已识别的模型sys_id离散模型sys_d

图中包含一个轴对象。标题为From: u1 To: y1的axis对象包含2个line类型的对象。这些对象分别代表识别模型sys\_id,离散模型sys\_d。

离散工厂模型的调优控制器

最后,使用整定PID控制器任务生成用于调优离散工厂的PI或PID控制器的代码sys_d.本课题为指定的工厂设计了一个PID控制器,该控制器假定如下图所示的标准单元反馈控制组态。

在任务中,选择sys_d随着植物和实验的设置,如控制器类型和响应时间。在更改设置时,选择输出图,在其上观察任务生成的闭环响应。检查系统响应特性生成闭环阶跃响应特性的数值显示,如上升时间和超调量。

生活任务将响应时间转换为带宽%带宽相当于2除以响应时间Wc = 2/11;线性植物模型的PID整定算法[C,pidInfo] = pidtune(sys_d,“PIDF”、wc);%清除临时变量清晰的wc获得所需的循环响应Response = getPIDLoopResponse(C,sys_d,“闭环”);绘制结果stepplot(响应)标题(“Step Plot: Reference tracking”网格)

图中包含一个轴对象。标题为From: In(1) To: y1的坐标轴对象包含一个line类型的对象。该对象表示响应。

显示系统响应特征disp (stepinfo(响应)
RiseTime: 8.3250 TransientTime: 43.2750 SettlingTime: 43.3500 SettlingMin: 0.9008 SettlingMax: 1.0741 Overshoot: 7.4059 Undershoot: 0.5440 Peak: 1.0741 PeakTime: 22.3250
%清除临时变量清晰的响应

对于这个示例,假设您希望闭环系统在50秒内稳定,并且系统可以容忍不超过10%的超调。调整控制器设置控制器类型而且响应时间为了实现这一目标。有关可用参数和选项的详细信息,请参见整定PID控制器任务参考页。

设计的进一步分析

与其他Live Editor任务一样,整定PID控制器生成生成已调优控制器的代码,该控制器具有您键入到任务摘要行中的变量名。对于本例,使用C.调谐控制器C是一个pid在MATLAB工作空间中的模型对象,您可以使用它进行进一步分析。例如,计算对工厂输出端的扰动的闭环响应sys_d,使用该控制器。检查响应及其特征。

CLdist = getPIDLoopResponse(C,sys_d,“输出干扰”);步骤(CLdist)网格

图中包含一个轴对象。标题为From: In(1) To: y1的坐标轴对象包含一个line类型的对象。该对象表示CLdist。

你可以使用模型sys_idsys_d,C用于任何其他控制设计或分析任务。

另请参阅

实时编辑任务

相关的话题