基于模型参考自适应MRAC的MIT和Parks控制器仿真(Simulink)

0.写在前面

本报告为研一自适应控制课程的第一次课程作业,主要为通过simulink进行基于MRAC的MIT和Parks控制器进行仿真,比较简单基础,后面可能会结合实际系统进行控制器设计,欢迎同学们交流学习哦。

1.设计问题

若被控对象为1/(s2+2s+2),取参考模型为2/(s2+2s+2),试用MIT方法和Lyapunov-MIT方法进行仿真控制,并比较不同增益下二者的控制性能。(也可以尝试不同的控制对象和参考对象模型)讨论设计、编程过程中遇到的问题及解决方法。要求提交仿真程序和实验报告。

2.控制器原理

MIT方法以及Lyapunov-MIT方法的原理框图如下图2.1所示,控制律为式2.1。

图 2.1 MIT方法以及Lyapunov-MIT方法的原理框图

3.控制器设计

经典的MIT方法需要对于其控制器参数γ进行设置,选取合适的γ值即可实现对于控制器最优性能的实现;但当γ取值过大时,系统会面临失稳。而基于Lyapunov稳定性原理的改进MIT方法,在控制系统为正实系统时,可以确保不论控制器参数γ的如何选取,整体闭环系统都能保证收敛;而如果系统为非正实时,这种保证收敛的特性会失效。

3.1非正实控制对象的MIT和Lyapunov-MIT控制比较

下面基于设计题目中的非正实对象进行控制器的设计,进行仿真分析。被控对象和参考模型的传递函数如下:

分别通过Simulink仿真软件,按照图 2.1的原理框图搭建仿真模型,最终得到如下图 3.1所示的模型,其中上方模块为采用经典MIT方法设计的闭环控制系统,下方模块为Lyapunov-MIT方法的闭环控制框图。

图 3.1 MIT控制模型

图 3.2 Lyapunov-MIT控制模型

对于采用经典MIT方法的上方模块,设置输入信号为幅值为1,周期为20s的方波信号,控制器参数γ取2,仿真时长设置为80s,得到输出信号如图 3.3所示。

图 3.3 输入幅值为1,周期为20的方波,γ取1时的仿真输出

由仿真结果可以看出,控制器输出信号最终会收敛到2,也即被控对象最终会收敛到和参考模型保持一致,与课件上的结论保持一致,说明该Simulink模型设计无误。

下面基于两种方法设计的闭环控制系统,分别通过改变控制器参数γ的值来探究非正实系统下,两种控制器的控制性能。为便于仿真比较,下文中输入信号均设置为幅值为1,周期为20s的方波信号,与上面的仿真保持一致。

(a)γ=0.1                          (b)γ=0.5

(c)γ=1                         (d)γ=2

(c)γ=5                         (d)γ=8

图 3.4 γ取不同值时,非正实系统参考模型输出、MIT输出和Lyapunov-MIT输出比较

通过以上的仿真可以看出,无论是采用MIT方法,还是Lyapunov-MIT方法,对于非正实的被控对象,均具有相似的性质,即当γ较小时,系统仍然稳定,但收敛速度较慢;但当γ取值过大时,非正实控制对象的输出均会发散,其中Lyapunov-MIT方法的发散幅度会远小于MIT方法。

3.2正实控制对象的MIT和Lyapunov-MIT控制比较

下面构造两个正实的系统,如下所示,重复上述仿真过程,分析仿真结果如图 3.5。

(a)γ=0.1                          (b)γ=100 

(c)γ=500                          (d)γ=1000

图 3.5 γ取不同值时,正实系统的参考模型输出、MIT输出和Lyapunov-MIT输出比较

从仿真结果中可以看出,对于修改后的正实系统而言,对于控制器参数γ的要求大大放宽了。当γ较小时,两种系统同样存在系统响应延迟的问题;而当γ取值较大时,可以观察到即使采用采用经典MIT方法时,γ也可以取值102数量级仍然保持收敛,取值为103数量级时才观察到发散;而基于Lyapunov稳定性原理设计的Lyapunov-MIT控制器,理论上对于任意γ的取值,均能保证系统的收敛。

3.3非正实控制对象的Parks控制器设计

回归到被控对象本身,我们在设计这一类非正实控制器时,一般不会存在为系统引入一个开环零点的设计,因此上一节中的分析并不适用于对于原被控对象的实际的控制器设计,考虑到非正实被控对象对于MIT方法中γ参数的取值要求较为严格,需要寻求其他方法进行控制器的设计,我根据后续的学习内容进行了Parks控制器的尝试,模型如图 3.6所示。

图 3.6 非正实对象的Parks控制器仿真模型

Parks控制器采用与课件中一致的参数设计,即

最终得到控制效果与前文的几种方法的对比如图 3.7所示

图 3.7 Parks方法与其他两种方法的对比 

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
以下是基于闭环模型参考适应控制器的 MATLAB 仿真程序示例: 假设系统的控制目标是一个二阶系统,其传递函数为: G_ref(s) = 1 / (s^2 + 2s + 1) 系统的实际模型为: G(s) = (0.5s + 1) / (s^2 + 3s + 2) MRAC控制器的结构为: u(t) = θ^T(t) * x_ref(t) + k * e(t) 其中,θ(t)为自适应参数向量,k为比例增益,x_ref(t)为参考模型输出,e(t)为实际系统输出与参考模型输出的误差。 MATLAB 仿真程序如下: ``` % 定义参考模型传递函数 G_ref = tf([1], [1 2 1]); % 定义实际系统传递函数 G = tf([0.5 1], [1 3 2]); % 定义MRAC控制器的参数 theta = zeros(2, 1); k = 1; % 定义仿真时间和步长 t = 0:0.01:10; % 定义参考模型的输出 x_ref = lsim(G_ref, ones(size(t)), t); % 定义闭环系统传递函数 H = feedback(G*k, G_ref); % 进行仿真 [y, t] = lsim(H, x_ref, t); % 计算误差 e = y - x_ref; % 更新自适应参数 for i = 1:length(t) x = [x_ref(i); y(i)]; theta_dot = -k * x * e(i); theta = theta + 0.01 * theta_dot'; end % 绘图 subplot(2,1,1); plot(t, y, 'b', t, x_ref, 'r--'); xlabel('Time (s)'); ylabel('Output'); legend('Actual output', 'Reference model output'); subplot(2,1,2); plot(t, e, 'b'); xlabel('Time (s)'); ylabel('Error'); ``` 上述程序中,我们首先定义了参考模型和实际系统的传递函数,以及MRAC控制器的参数。然后,我们定义了仿真时间和步长,以及参考模型的输出。接下来,我们计算了闭环系统的输出,并计算了误差。最后,我们使用误差更新自适应参数,并绘制了输出和误差的图像。 请注意,上述程序仅为示例程序,具体的仿真程序需要根据具体问题进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸽呜顾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值