【学习记录】matlab的simscape的学习——对PID控制下的单级倒立摆模型建模与仿真

前言

一直在学习过程中。打工人的毕设内容会用到涉及到该部分内容,故此处发个博客做个小总结。

如果说simulink可以帮你做任何仿真(没错,是任何仿真!),那么simscape就是能够帮你更快速完成涉及物理、机械工程等领域的仿真。

用我老师的话来说就是——半物理仿真?

本篇文章旨在记录simscape里的一些基本的模块并搭建了一个PID控制下的单级倒立摆的应用实例,希望能对阅读到该内容的友友有所帮助!

正文

首先,matlab内置实际上是有simscape的学习使用教程的,如下图:

但是呢,这个教程是生肉(英文并且无字幕)。于是我在b站上找到了熟肉:

【Simscape入门之旅】熟悉Simscape入门之旅的界面_哔哩哔哩_bilibili

(不止这一个,有好几个教程)

这个教程我还没有完全看完,因为我的首要目的是运用simscape搭建一个单级倒立摆的模型,所以我找到了一个宝藏教程,虽然讲得比较快且不太细致,但确足够让我熟悉simscape并搭建一个单机倒立摆的仿真模型了(链接放在末尾)。


首先创建一个simulink的窗口,这里可以直接在simscape下面选择创建Multibody(多体模型)。

打开之后会发现一些模块:

从上到下:第一个可以理解为一个求解器(控制器?),第二个可以理解为一个世界坐标,第三个可以理解为对整体全局参数的设定(重力,x,y,z等)

这个箭头就是一个信号转换器,我的理解就是把将输入的物理信号转换为Simulink输出信号。(另一个箭头就是把Simulink输入信号转换为物理输出信号)。

这个模块是坐标转换模块。在系统中默认X,Y,Z轴的参考系是确定的,并且很多运动仿真模块也只能在规定的轴按要求运动,故如果需要更改模块的相对位置则需要在空间中的平移以及在空间中的旋转。而这个功能可以在以上模块中实现。

这个是刚体模块,可以在空间中设置一个确定大小、长度的刚体。

然后具体需要使用的物理模型,可以在Simulink Library Browser里面找到,具体路径如下图:

每个模型通过图标示意,以及具体的解释,就可以知道具体的使用方法、指代何种物理模型。并且每个模块都内置了很多功能,比如内置各种传感器。

以下为单级倒立摆的一个简单的一个搭建。

注意一下每个物理模型的使用的方向,以及需要使用的参数。

滑块模块:它只能在Z轴上平移,如果我们想让它在x轴上做平移运动,则需要提前进行坐标变换。考虑到滑块的输入端是由我们人为控制的,则需要设置Actuation中的力设置为自动计算,并且由输入端提供。

转动模块:只能在x,y平面绕着z轴旋转。由于需要检测倒立摆转动的角度,在这里选择一个角度传感器作为反馈信号。考虑到倒立摆竖直状态下,处于平衡状态,所以在这个地方可以给予它一个小的角度(10°)来让他摆动起来。

然后点击运行,则可以在隔壁matlab窗口看到一个这样的模型。

(emmm,实际状态是他在不受控制的转动,这里无法体现出来)

这里还会发现摆杆的运动会有些卡顿,可以在Model Settings里面调整求解器的步长(这里将最大步长设置为0.1)。重新启动后发现运动变得丝滑了。


接下来就是加入PID控制模块。这里直接接入了一个非常简单的PID模型。

将各模块连接后,一个简单的对PID控制下的单级倒立摆模型建模就完成了。

然后就是对参数P、I、D进行调整,这里随便输入了几个参数,得到以下结果。

可以看到窗口中倒立摆的运动是趋于平稳的,打开scope,可以看到系统是趋于稳定的。这和仿真结果相符。

结语

在学习过程中我只能感叹matlab功能的强大。学习的路还很长,还希望和各位技术人多多交流!

应用实例搭建源视频教程:matlab的simscape对PID控制下的倒立摆模型建模_哔哩哔哩_bilibili

### 回答1: 直线二级倒立摆是一种经典的控制系统问题,利用LQR(线性二次调节器)算法可以对其进行控制。在进行仿真之前,首先需要在Simscape中建立直线二级倒立摆模型。 该模型包括两个质点,一个固定在顶部的支点和一个可以沿直线移动的质点。模型中还包括杆和转动关节来表示连接两个质点的连杆。 然后,使用LQR算法设计控制器。LQR算法旨在最小化系统状态期望状态之间的差异,并考虑到了系统的控制输入和输出。该算法需要定义状态和输入的权重矩阵,以及输出的权重矩阵。 接下来,在Simscape中添加LQR控制块,并将其模型进行连接。对于直线二级倒立摆,LQR控制器将计算所需的力或扭矩,并将其应用于质点,以实现直线二级倒立摆控制。 最后,运行仿真并查看结果。通过对系统的状态、控制输入和输出进行分析,可以评估LQR算法对直线二级倒立摆控制效果。 综上所述,利用LQR算法对直线二级倒立摆进行仿真的步骤包括建立模型、设计控制器、添加控制块并运行仿真。通过仿真结果的分析,可以评估LQR算法在直线二级倒立摆控制中的有效性。 ### 回答2: 直线二级倒立摆是一种控制系统,用来实现平衡直线上的摆动。LQR(线性二次调节)算法是一种常用于控制系统设计中的优化算法。在Simspace仿真环境中使用LQR算法,可以对直线二级倒立摆进行仿真控制。 首先,在Simspace中建立直线二级倒立摆仿真模型。该模型包括两个质量连接的杆,并固定在一个平面上。通过设置杆的初始条件和物理参数,可以拟出摆杆在平衡位置附近的运动。 接下来,使用LQR算法进行控制器设计。LQR算法的目标是通过优化控制器的状态反馈增益矩阵,使得系统的输出期望输出的差异最小化。通过对直线二级倒立摆系统建立状态空间模型,并结合系统的物理特性和控制要求,可以确定LQR算法中的成本函数和权重矩阵,从而设计出最优的控制器。 在Simspace中,可以将设计好的LQR控制直线二级倒立摆仿真模型进行耦合。仿真平台将根据LQR算法产生的控制输入信号来驱动直线二级倒立摆系统,实现对其运动的控制和稳定。 通过观察仿真结果,可以分析和评估LQR算法在控制直线二级倒立摆方面的性能。如果系统能够在稳定的状态下保持平衡,并能够灵活地响应外部扰动和控制指令,那么LQR算法被证明是有效的。 总结来说,利用LQR算法对直线二级倒立摆在Simspace进行仿真可以帮助我们了解控制系统设计的原理和效果。通过仿真,我们可以优化控制器的参数,并研究系统在不同环境和不同控制策略下的响应特性,为实际控制系统的设计提供参考。 ### 回答3: 直线二级倒立摆是一种具有两个摆杆的倒立摆系统。使用LQR(Linear Quadratic Regulator)算法对该系统进行控制可以实现其稳定性和追踪性能的优化。 首先,需要建立直线二级倒立摆的数学模型。该模型可以通过运动方程和动力学方程来描述。然后,可以在Simulink中建立该模型,并添加控制器来进行仿真。 LQR算法是一种最优控制方法,它可以通过设计状态反馈控制器来最小化一个性能指标,例如系统状态目标状态之间的差异。在Simulink中,可以使用LQR控制块来设计并实现LQR控制器。 在仿真过程中,首先需要设定直线二级倒立摆的初始状态,并设置目标状态。然后,将LQR控制系统模型连接,并设置控制器的参数。根据LQR算法的设计原理,可以通过设置权重矩阵来调整系统状态和控制输入的权重。 在仿真运行时,LQR控制器会根据当前系统状态和目标状态计算出最优控制输入,并实施到系统中。通过不断迭代,直到系统状态收敛到目标状态,可以观察到直线二级倒立摆的稳定性和控制性能。 通过Simulink仿真,可以验证LQR算法对直线二级倒立摆控制效果。可以通过观察系统的响应曲线,例如摆杆的角度和位置,以及控制输入的变化,来评估控制效果。如果系统能够快速稳定到目标状态,并具有较小的超调和稳态误差,则说明LQR算法对直线二级倒立摆控制是有效的。 总而言之,使用LQR算法对直线二级倒立摆在Simulink中进行仿真是一种有效的方法,可以优化系统的稳定性和控制性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值