调整PID控制器测量植物生活中的数据编辑器
这个例子展示了如何使用现场编辑任务调整PID控制器的工厂,从测量植物响应一个已知的输入信号。在本例中,您使用状态空间模型的估计任务生成代码估计参数模型。然后,您使用模型转换速率任务离散化模型确定的连续时间。最后,您可以使用调整PID控制器任务设计PID控制器实现闭环反应,满足您的设计要求。(使用状态空间模型的估计需要一个系统辨识工具箱™许可证)。
住编辑任务让你交互迭代参数和设置,观察其对你的计算结果的影响。然后任务自动生成MATLAB®代码实现显示的结果。试验现场编辑任务在这个脚本中,打开这个例子。一般住编辑任务的更多信息,请参阅交互式任务添加到脚本。
工厂数据加载
加载测量输入输出数据。在这个例子中,响应的数据由一个引擎的唧唧声输入。输入u
是一个向量包含输入信号采样每0.04秒。输出向量y
包含相应的测量响应。
负载IdentPlantPIDExampleuyt = 0.04 *(0:长度(u) 1);情节(t, u, t、y)传说(输入你的,的反应y ')
状态空间模型的估计
从这个状态空间模型来估计一个数据,使用状态空间模型的估计(系统辨识工具箱)住编辑任务。你可以插入一个任务脚本使用任务住编辑菜单。在这个脚本中,状态空间模型的估计已经插入。打开示例实验任务。
在任务,执行评估,指定输入和输出信号加载,u
和y
,样品时间0.04秒。(在这个例子中,你没有验证数据)。您还需要指定工厂订单。通常,你可以猜出工厂订单根据你的知识系统。一般来说,你想用最低的工厂订单出一个相当好的估计。在状态空间模型的估计的任务,尝试不同的工厂订单值和观察结果,显示在输出中。可用的选项和参数的详细信息,请参阅状态空间模型的估计(系统辨识工具箱)任务参考页面。
你改变参数的任务时,它会自动更新生成的代码进行估计和创造情节。(看到生成的代码,单击底部的任务。)
%为时间序列数据创建对象estimationData = iddata (y、u, 0.04);%状态空间模型的估计sys_id = ss (estimationData 4);%显示结果比较(estimationData sys_id);清晰的estimationData;标题(的估算数据:);
对于这个示例,在工厂订单4,估计约为72%。试着增加植物才能看到,这样做并不能提高多少。因此,使用四阶植物。产生的代码标识与状态空间模型的变量名称类型的汇总行状态空间模型的估计的任务。对于这个示例,使用sys_id
。完成试验任务后,发现状态空间模型sys_id
在MATLAB®工作空间,您可以使用它为额外的设计和分析以同样的方式使用任何其他LTI模型对象。例如,检查状态空间模型确定的频率响应sys_id
。
波德(sys_id)网格在
离散化模型
假设您想要这个模型离散化再设计PID控制器。为此,使用模型转换速率的任务。在任务,选择确定模型sys_id
。指定样本时间确定模型中的速度非常之快,足以容纳共振响应,如0.025秒。你也可以选择一个不同的转换方法,以更好地满足共振的频率响应在附近。例如,试着设置方法来双线性近似(Tustin)
prewarp频率为38.4 rad / s,峰值响应的位置。您尝试设置的任务,比较原始和转换模型在波德图,以确保你满意这场比赛。(参数和选项的更多信息,请参阅模型转换速率任务参考页。)
模型转换速率生成的代码产生离散模型的变量名称输入到总结的任务。对于这个示例,使用sys_d
。
%转换从连续,离散时间模型sys_d =汇集(sys_id, 0.025);%可视化结果bodeplot (sys_id sys_d);传奇(的原始模型,“转换模式”);网格在;
确认离散模型捕获瞬态响应由于共振,比较的几秒钟的第一步反应最初的识别模型sys_id
和离散模型sys_d
。
步骤(sys_id sys_d 3)传说(“识别模型sys_id”,“sys_d离散模型”)
调整控制器的离散模型
最后,使用调整PID控制器任务来生成代码优化的离散PI或PID控制器sys_d
。工厂指定的任务设计PID控制器为一个假设的标准unit-feedback控制配置如下图。
在这个任务中,选择sys_d
等植物和实验设置控制器类型和响应时间。当你改变设置,选择输出块,观察闭环反应生成的任务。检查系统响应特性生成一个数字显示器的上升时间、超调等闭环阶跃响应特性。
%响应时间转换为带宽%带宽等于2除以响应时间wc = 2/11;% PID调优算法线性模型[C, pidInfo] = pidtune (sys_d“PIDF”、wc);%明显的临时变量清晰的wc%得到所需的循环反应响应= getPIDLoopResponse (C sys_d“闭环”);%绘制结果stepplot(响应)标题(“阴谋步:参考跟踪”网格)在
%显示系统响应特性disp (stepinfo(响应)
上升时间:8.3250 TransientTime: 43.2750 SettlingTime: 43.3500 SettlingMin: 0.9008 SettlingMax: 1.0741过度:7.4059低于:0.5440峰:1.0741 PeakTime: 22.3250
%明显的临时变量清晰的响应
对于这个示例,假设您希望闭环系统50秒内解决,并且系统可以容忍过度不超过10%。调整控制器设置等控制器类型和响应时间实现这一目标。有关可用的参数和选项的更多信息,参见调整PID控制器任务参考页面。
进一步分析的设计
像其他生活编辑任务,调整PID控制器生成的代码生成一个调谐控制器与您输入的变量名到总结的任务。对于这个示例,使用C
。调整控制器C
是一个pid
MATLAB工作区中的模型对象,您可以使用进行进一步分析。例如,计算输出的闭环响应扰动的植物sys_d
,使用这个控制器。检查响应及其特点。
CLdist = getPIDLoopResponse (C sys_d“输出干扰”);步骤(CLdist)网格在
您可以使用模型sys_id
,sys_d
,C
其他控制设计或分析任务。