主要内容

从实时编辑器中测量的植物数据调优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 '

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

状态空间模型的估计

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

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

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

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

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

对于本例,在植物级4处,估计拟合约为72%。试着增加植物的数量,看看这样做并不会大大提高适合度。因此,使用四阶植物。类的摘要行中输入的变量名将生成一个已标识的状态空间模型状态空间模型的估计的任务。对于本例,使用sys_id.在完成对任务的实验之后,确定的状态空间模型sys_id在MATLAB®工作区中,您可以使用它进行额外的设计和分析,就像使用任何其他LTI模型对象一样。例如,检查已识别状态空间模型的频率响应sys_id

波德(sys_id)网格

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

离散化模型

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

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

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

图中包含2个轴对象。标题为From: u1 To: y1的Axes对象1包含2个类型为line的对象。这些对象表示原始模型、转换模型。坐标轴对象2包含两个line类型的对象。这些对象表示原始模型、转换模型。

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

步骤(sys_id sys_d 3)传说(“识别模型sys_id”“sys_d离散模型”

图中包含一个axes对象。标题为From: u1 To: y1的axes对象包含两个类型为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获得所需的循环响应响应= getPIDLoopResponse (C sys_d“闭环”);绘制结果stepplot(响应)标题(“步骤图:参考跟踪”网格)

图中包含一个axes对象。标题为From: In(1) To: y1的axes对象包含一个类型为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)网格

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

您可以使用模型sys_idsys_d,C完成其他控制设计或分析任务。

另请参阅

住编辑任务

相关的话题

Baidu
map