主要内容gydF4y2Ba

强制约束的PID控制器gydF4y2Ba

这个例子展示了如何执行认识约束使用约束执行一个PID控制器应用程序块。gydF4y2Ba

概述gydF4y2Ba

对于这个示例,下面描述的植物动力学方程[1]。gydF4y2Ba

xgydF4y2Ba ˙gydF4y2Ba 1gydF4y2Ba =gydF4y2Ba - - - - - -gydF4y2Ba xgydF4y2Ba 1gydF4y2Ba +gydF4y2Ba (gydF4y2Ba xgydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ugydF4y2Ba 1gydF4y2Ba xgydF4y2Ba ˙gydF4y2Ba 2gydF4y2Ba =gydF4y2Ba - - - - - -gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba +gydF4y2Ba (gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ugydF4y2Ba 2gydF4y2Ba

工厂的目标是跟踪期望轨迹,定义为:gydF4y2Ba

θgydF4y2Ba ˙gydF4y2Ba =gydF4y2Ba 0gydF4y2Ba 。gydF4y2Ba 1gydF4y2Ba πgydF4y2Ba xgydF4y2Ba ˙gydF4y2Ba 1gydF4y2Ba dgydF4y2Ba =gydF4y2Ba - - - - - -gydF4y2Ba rgydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba )gydF4y2Ba xgydF4y2Ba ˙gydF4y2Ba 2gydF4y2Ba dgydF4y2Ba =gydF4y2Ba rgydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba )gydF4y2Ba

例如学习并应用一个未知的约束函数相同的PID控制应用程序,看看gydF4y2Ba学习和限制申请PID控制器gydF4y2Ba。gydF4y2Ba

配置模型参数和初始条件。gydF4y2Ba

r = 1.5;gydF4y2Ba%半径为期望的轨迹gydF4y2Bat = 0.1;gydF4y2Ba%样品时间gydF4y2BaTf = 22;gydF4y2Ba%的持续时间gydF4y2Bax0_1 = - r;gydF4y2Ba% x1的初始条件gydF4y2Bax0_2 = 0;gydF4y2Ba%初始条件为x2gydF4y2Ba

设计PID控制器gydF4y2Ba

之前申请的限制,设计PID控制器跟踪参考轨迹。的gydF4y2BatrackingWithPIDsgydF4y2Ba模型包含两个PID控制器与收益调整使用gydF4y2BaPID调谐器gydF4y2Ba应用。在仿真软件优化PID控制器模型的更多信息,见金宝appgydF4y2Ba介绍了基于模型的PID优化模型金宝appgydF4y2Ba。gydF4y2Ba

mdl =gydF4y2Ba“trackingWithPIDs”gydF4y2Ba;open_system (mdl)gydF4y2Ba

模拟PID控制器和策划他们的跟踪性能。gydF4y2Ba

%模拟模型。gydF4y2Ba= sim (mdl);gydF4y2Ba%提取轨迹。gydF4y2BalogData = out.logsout;x1_traj = logData {3} .Values.Data;x2_traj = logData {4} .Values.Data;x1_des = logData {1} .Values.Data;x2_des = logData {2} .Values.Data;gydF4y2Ba%绘制轨迹。gydF4y2Ba图(gydF4y2Ba“名字”gydF4y2Ba,gydF4y2Ba“跟踪”gydF4y2Ba)xlim ((2, 2)) ylim((2, 2))情节(x1_des x2_des,gydF4y2Ba“r”gydF4y2Ba)包含(gydF4y2Bax1的gydF4y2Ba)ylabel (gydF4y2Ba“x2”gydF4y2Ba)举行gydF4y2Ba在gydF4y2Ba情节(x1_traj x2_traj,gydF4y2Ba”乙:“gydF4y2Ba,gydF4y2Ba“线宽”gydF4y2Ba,2)gydF4y2Ba在gydF4y2Ba情节(x1_traj (1) x2_traj (1),gydF4y2Ba“g *”gydF4y2Ba)举行gydF4y2Ba在gydF4y2Ba情节(x1_traj(结束),x2_traj(结束),gydF4y2Ba“去”gydF4y2Ba)传说(gydF4y2Ba“想要的”gydF4y2Ba,gydF4y2Ba“轨迹”gydF4y2Ba,gydF4y2Ba“开始”gydF4y2Ba,gydF4y2Ba“结束”gydF4y2Ba)gydF4y2Ba

图跟踪包含一个坐标轴对象。坐标轴对象包含x1, x2 ylabel包含4线类型的对象。一个或多个行显示的值只使用这些对象标记代表理想,轨迹,开始,结束。gydF4y2Ba

约束函数gydF4y2Ba

对于本例,您使用约束执法已知约束应用于应用程序块,调整控制行动来满足约束函数。gydF4y2Ba

在这个例子中,植物是由可行域gydF4y2Ba {gydF4y2Ba xgydF4y2Ba :gydF4y2Ba xgydF4y2Ba 1gydF4y2Ba ≤gydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba xgydF4y2Ba xgydF4y2Ba ≤gydF4y2Ba 1gydF4y2Ba }gydF4y2Ba 。因此,植物条件下一个状态gydF4y2Ba xgydF4y2Ba kgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba =gydF4y2Ba (gydF4y2Ba xgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba kgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba kgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ]gydF4y2Ba 必须满足gydF4y2Ba xgydF4y2Ba kgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba ≤gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba 1gydF4y2Ba ]gydF4y2Ba 。gydF4y2Ba

您可以通过下列近似植物动力学方程。gydF4y2Ba

xgydF4y2Ba kgydF4y2Ba +gydF4y2Ba 1gydF4y2Ba ≈gydF4y2Ba (gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba - - - - - -gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba )gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba - - - - - -gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba )gydF4y2Ba ]gydF4y2Ba xgydF4y2Ba kgydF4y2Ba +gydF4y2Ba (gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba xgydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba (gydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba (gydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ]gydF4y2Ba ugydF4y2Ba kgydF4y2Ba

应用约束方程产生以下约束函数。gydF4y2Ba

(gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba - - - - - -gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba )gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba - - - - - -gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba )gydF4y2Ba ]gydF4y2Ba xgydF4y2Ba kgydF4y2Ba +gydF4y2Ba (gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba xgydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba (gydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba (gydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ]gydF4y2Ba ugydF4y2Ba kgydF4y2Ba ≤gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba 1gydF4y2Ba ]gydF4y2Ba

约束执行块接受约束的形式gydF4y2Ba fgydF4y2Ba xgydF4y2Ba +gydF4y2Ba ggydF4y2Ba xgydF4y2Ba ugydF4y2Ba ≤gydF4y2Ba cgydF4y2Ba 。对于这个应用程序,这个约束函数的系数如下。gydF4y2Ba

fgydF4y2Ba xgydF4y2Ba =gydF4y2Ba (gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba - - - - - -gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba )gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba - - - - - -gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba )gydF4y2Ba ]gydF4y2Ba xgydF4y2Ba kgydF4y2Ba ,gydF4y2Ba ggydF4y2Ba xgydF4y2Ba =gydF4y2Ba (gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba xgydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba (gydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba TgydF4y2Ba 年代gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba (gydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ]gydF4y2Ba ,gydF4y2Ba cgydF4y2Ba =gydF4y2Ba (gydF4y2Ba 1gydF4y2Ba 1gydF4y2Ba ]gydF4y2Ba

模拟PID控制器与约束执行gydF4y2Ba

的gydF4y2BatrackingWithConstraintPIDgydF4y2Ba模型包含PID控制器,植物动力学和约束的实现。gydF4y2Ba

mdl =gydF4y2Ba“trackingWithKnownConstraintPID”gydF4y2Ba;open_system (mdl)gydF4y2Ba

查看约束实现,打开约束子系统。这里,使用MATLAB函数模型实现已知约束函数块,和约束执行块强制约束函数。gydF4y2Ba

运行模型和仿真结果。情节表明植物州还不到一个。gydF4y2Ba

%模拟模型。gydF4y2Ba= sim (mdl);gydF4y2Ba%提取轨迹。gydF4y2BalogData = out.logsout;x1_traj = 0(大小(out.tout));x2_traj = 0(大小(out.tout));gydF4y2Ba为gydF4y2Bact = 1:尺寸(out.tout, 1) x1_traj (ct) = logData {4} .Values.Data (:,:, ct);x2_traj (ct) = logData {5} .Values.Data (:,:, ct);gydF4y2Ba结束gydF4y2Bax1_des = logData {2} .Values.Data;x2_des = logData {3} .Values.Data;gydF4y2Ba%绘制轨迹。gydF4y2Ba图(gydF4y2Ba“名字”gydF4y2Ba,gydF4y2Ba“跟踪与约束”gydF4y2Ba);情节(x1_des x2_des,gydF4y2Ba“r”gydF4y2Ba)包含(gydF4y2Bax1的gydF4y2Ba)ylabel (gydF4y2Ba“x2”gydF4y2Ba)举行gydF4y2Ba在gydF4y2Ba情节(x1_traj x2_traj,gydF4y2Ba”乙:“gydF4y2Ba,gydF4y2Ba“线宽”gydF4y2Ba,2)gydF4y2Ba在gydF4y2Ba情节(x1_traj (1) x2_traj (1),gydF4y2Ba“g *”gydF4y2Ba)举行gydF4y2Ba在gydF4y2Ba情节(x1_traj(结束),x2_traj(结束),gydF4y2Ba“去”gydF4y2Ba)传说(gydF4y2Ba“想要的”gydF4y2Ba,gydF4y2Ba“轨迹”gydF4y2Ba,gydF4y2Ba“开始”gydF4y2Ba,gydF4y2Ba“结束”gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)gydF4y2Ba

图跟踪与约束包含一个坐标轴对象。坐标轴对象包含x1, x2 ylabel包含4线类型的对象。一个或多个行显示的值只使用这些对象标记代表理想,轨迹,开始,结束。gydF4y2Ba

约束执行块成功限制了控制行动,这样植物状态仍然小于1。gydF4y2Ba

bdclose (gydF4y2Ba“trackingWithPIDs”gydF4y2Ba)bdclose (gydF4y2Ba“trackingWithKnownConstraintPID”gydF4y2Ba)gydF4y2Ba

引用gydF4y2Ba

[1]罗比,亚历山大,Haimin胡,Lars林德曼Hanwen张Dimos诉有着斯蒂芬•图和尼古拉Matni。“学习控制屏障功能从专家示威。”Preprint, submitted April 7, 2020.https://arxiv.org/abs/2004.03315gydF4y2Ba

另请参阅gydF4y2Ba

块gydF4y2Ba

应用程序gydF4y2Ba

相关的话题gydF4y2Ba