第四讲 Matlab/Simulink入门——连续系统仿真实例

  • 1、连续系统基本概念
    • 1.1 连续系统
    • 1.2 线性连续系统
    • 1.3 Laplace变换
  • 2、蹦极模型(例1)仿真
    • 2.1 蹦极模型
    • 2.2 建模
    • 2.3 模型参数设置
    • 2.4 系统仿真
  • 3、比例微分控制器(例2)仿真
    • 3.1 比例微分控制器模型
    • 3.2 建模
    • 3.3 模型仿真

1、连续系统基本概念

1.1 连续系统

  连续系统: 是指系统输出时间上连续变化,而不是仅在离散时刻采样取值。对于满足以下条件的系统,我们称之为连续系统:
  (1)系统输出连续变化,变化的时间间隔为无穷小量。
  (2)存在系统输入或输出的微分项。
  (3) 系统具有连续状态。
  设连续系统的输入变化量为u(t)u(t)u(t),其中ttt为连续取值的时间变量,系统的输出为y(t)y(t)y(t),连续系统的一般数学描述为:
y(t)=f(u(t),t)y(t)=f(u(t),t)y(t)=f(u(t),t)
  微分方程形式为:
∂x∂t=f(x(t),u(t),t)\frac{\partial x}{\partial t}=f(x(t),u(t),t) ∂t∂x​=f(x(t),u(t),t)
y(t)=g(x(t),u(t),t)y(t)=g(x(t),u(t),t)y(t)=g(x(t),u(t),t)

1.2 线性连续系统

   线性连续系统: 对满足以下两个条件的连续系统,我们称为线性连续系统。
  (1)、齐次性: 对于连续系统y(t)=T{u(t)},t=0,1,2...y(t)=T\lbrace u(t) \rbrace, t=0,1,2...y(t)=T{u(t)},t=0,1,2...,如果对任意的输入u(t)u(t)u(t)与给定的常数α\alphaα,下面的式子总成立:
T{αu(t)}=αT{u(t)}T\lbrace \alpha u(t) \rbrace = \alpha T\lbrace u(t) \rbrace T{αu(t)}=αT{u(t)}
则称系统满足齐次性。
  (2)、叠加性: 对于系统对于输出u1(t)u_1(t)u1​(t)和u2(t)u_2(t)u2​(t),输出分别为y1(t)y_1(t)y1​(t) 和y2(t)y_2(t)y2​(t),总有下面的式子成立:
T{u1(t)+u2(t)}=T{u1(t)}+T{u2(t)}T\lbrace u_1(t)+u_2(t) \rbrace = T\lbrace u_1(t) \rbrace + T\lbrace u_2(t) \rbrace T{u1​(t)+u2​(t)}=T{u1​(t)}+T{u2​(t)}
则称系统满足叠加性。

1.3 Laplace变换

  Laplace变换Laplace变换Laplace变换: 对于连续信号u(t)u(t)u(t),其LaplaceLaplaceLaplace变换定义为U(s)=∫−∞∞u(t)e−stdtU(s)=\displaystyle \int ^\infty_{-\infty} u(t)e^{-st} {\rm d}tU(s)=∫−∞∞​u(t)e−stdt。一般而言,系统的输入时间t≥0t \geq 0t≥0,这时U(s)=∫0∞u(t)e−stdtU(s)=\displaystyle \int ^\infty_0 u(t)e^{-st} {\rm d}tU(s)=∫0∞​u(t)e−stdt。一般简记为U(s)=L(u(t))U(s)=L(u(t))U(s)=L(u(t))。
  Laplace变换Laplace变换Laplace变换具有如下两个重要性质:
  (1)、线性关系: LaplaceLaplaceLaplace变换同时满足齐次性和叠加性,即:
U{αu1(t)+βu2(t)}=αU{u1(t)}+βU{u2(t)}U\lbrace \alpha u_1(t)+\beta u_2(t) \rbrace = \alpha U\lbrace u_1(t) \rbrace + \beta U\lbrace u_2(t) \rbrace U{αu1​(t)+βu2​(t)}=αU{u1​(t)}+βU{u2​(t)}
  (2)、设连续信号u(t)u(t)u(t)的LaplaceLaplaceLaplace变换为U(s)U(s)U(s),则∂u∂t\displaystyle \frac{\partial u}{\partial t}∂t∂u​的LaplaceLaplaceLaplace变换为sU(t)sU(t)sU(t)。
  线性连续系统的另一个模型为状态空间模型:
{∂u∂t=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)\begin{cases} \displaystyle \frac {\partial u} {\partial t} = Ax(t)+Bu(t)\\ y(t)=Cx(t)+Du(t)\\ \end{cases} ⎩⎨⎧​∂t∂u​=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)​

2、蹦极模型(例1)仿真

2.1 蹦极模型

 【例1】蹦极跳是一种挑战身体极限的运动,蹦极者系着一根弹力绳从高处的桥梁(或山崖等)向下跳。在下落的过程中,蹦极者几乎处于失重状态。按照牛顿运动定律,自由下落的物体的位置由下面的式子确定:
m∂2x∂t2=mg−a1∂x∂t−a2∣∂x∂t∣∂x∂tm \frac{\partial^2x}{\partial t^2} = mg-a_1 \frac{\partial x}{\partial t}-a_2 \left| \frac{\partial x}{\partial t} \right|\frac{\partial x}{\partial t} m∂t2∂2x​=mg−a1​∂t∂x​−a2​∣∣∣∣​∂t∂x​∣∣∣∣​∂t∂x​
  其中m为物体质量,g为重力加速度,x为物体的位置,a1a_1a1​ 、a2a_2a2​表示空气阻力的系数。
  现选择蹦极者起跳位置为起点(即x=0处),低于起点位置为正,高于起点为负。如果物体系在一个弹性系数为kkk的弹力绳索上,绳索的原始长度为x0x_0x0​,则其对下落物体位置的作用力为:
b(x)={−k(x−x0),x>x00,x≤x0b(x)=\begin{cases} -k(x-x_0), x>x_0 \\ 0 , x \leq x_0 \\ \end{cases} b(x)={−k(x−x0​),x>x0​0,x≤x0​​
  设蹦极者起跳位置距离地面 80m80m80m,绳索原始长度x0=30mx0=30mx0=30m,蹦极者起始速度为 0,即。其余参数分别为k=18.45,a1=1.3,a2=1.1,m=70kg,=9.8m/s2k=18.45, a_1=1.3, a_2=1.1, m=70 kg ,=9.8 m/s^2k=18.45,a1​=1.3,a2​=1.1,m=70kg,=9.8m/s2。试建立蹦极跳系统的Simulink仿真模型,并对系统进行仿真,分析此蹦极跳系统是否安全。

2.2 建模

  建立蹦极跳系统的Simulink仿真模型。根据系统的数学描述选择合适的Simulink系统模块,建立此蹦极跳系统的Simulink模型,如上图所示。
  Constant模块:用于表示蹦极者重力mgmgmg。
  Constant1模块:用于表示绳索原始长度x0x_0x0​。
  Constant2模块:用于表示当x≤x0x ≤ x_0x≤x0​时函数b(x)b(x)b(x)的取值,即000。
  Constant3模块:用于表示蹦极者起始位置相对地面的距离。
  Gain模块:用于表示弹性系数的负数,即−k-k−k。
  Gain1模块:用于表示参数a1a_1a1​。
  Gain2模块:用于表示参数a2a_2a2​。
  Gain3模块:用于表示蹦极者质量的倒数,即1m\frac{1}{m}m1​。
  Abs 模块:来自Math Operations子库,用于对信号取绝对值。
  Integrator模块和Integrator1模块:来自Continuous子库,用于对信号进行积分。Integrator模块的输入信号为,输出为;Integrator1模块的输入信号为,输出为xxx。
  Switch 模块:来自Signal Routing 子库,用于构建分段函数b(x)b(x)b(x)。

2.3 模型参数设置

  mg模块:常值设为70*9.8。
  0模块:常值设为0。
  x0模块:常值设为30。
  distance模块:常值设为80。
  -k模块:增益设为-18.45。
  a1模块:增益设为1.3。
  a2模块:增益设为1.1。
  1/m模块:增益设为1/70。
  Switch模块:Threshold设为默认值,判断准则设为u2>Threshold,如图4-19所示。
  Integrator模块和Integrator1模块:由于设初始位置和初始速度均为0,故这两个模块的初始值设为默认值(零)即可。

2.4 系统仿真

  仿真时间设置为50s,然后运行,结果如图所示。

  从图中可以看到,蹦极者相对地面的距离存在小于零的情况,也就是说此蹦极跳系统对于70kg的蹦极者来说不安全的,蹦极者会触碰到地面。

3、比例微分控制器(例2)仿真

3.1 比例微分控制器模型

 【例2】比例微分控制器系统,其数学描述为:
u(t)=Kpe(t)+Kd∂e∂tu(t)=K_p e(t) + K_d \frac{\partial e}{\partial t} u(t)=Kp​e(t)+Kd​∂t∂e​
  现有一个执行机构,其传递函数为:
1(s−1.1)(s+1.1)\frac{1}{(s-1.1)(s+1.1)}(s−1.1)(s+1.1)1​
  显然,它是发散的,不稳定的,其开环阶跃响应曲线如图所示。

3.2 建模

  Derivative模块:来自Continuous子库,微分器,其输入为e(t)e(t)e(t),输出为。
  Gain模块:控制器比例项系数,即Kp=15K_p=15Kp​=15。
  Gain1模块:控制器微分项系数,即Kd=2K_d=2Kd​=2。
  Zero-Pole 模块:设置Zeros 零点为[],Poles 极点为[1.1 -1.1],Gain 增益为1,其余默认,如图所示。

3.3 模型仿真

  仿真时间设置为20s。
  最大仿真步长设置为0.01。
  绝对误差设置为1e-6。

  仿真结果如图所示,在阶跃信号的作用下,系统不断地对位置误差进行控制修正,最终系统达到了稳定状态,可以通过调整KpK_pKp​、KdK_dKd​以获得更好的性能。

第四讲 Matlab/Simulink入门——连续系统仿真实例相关推荐

  1. 第三讲 Matlab/Simulink入门——离散系统仿真实例

    第三讲 Matlab/Simulink入门--离散系统仿真实例 1.离散系统基本概念 1.1 离散系统 1.2线性离散系统 1.3 Z变换 2.人口变化(例1)仿真 2.1 人口变化模型 2.2 建模 ...

  2. 第五讲 Matlab/Simulink入门——混合系统仿真实例

    第五讲 Matlab/Simulink入门--混合系统仿真实例 1.混合系统仿真 2.通信系统 2.1调制与解调 2.2 通信信道 2.3 建模 2.4 仿真结果 3.行驶控制系统 3.1 物理模型与 ...

  3. 第一讲 Matlab/Simulink入门——简单系统模型的Simulink仿真

    第一讲 Matlab/Simulink入门--简单系统模型的Simulink仿真 1.模型的数学表达式 2.建立系统模型 2.1.选择模块 2.2.参数设置 3.系统仿真 1.模型的数学表达式 y = ...

  4. P13 最优控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 13. 最优控制系统 13.1 Matlab ...

  5. P6 根轨迹分析法-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 6. 根轨迹分析法 6.1 函数 6.2 根 ...

  6. P5 Matlab/Simulink 在时域分析中的应用-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 5. Matlab/Simulink 在时域 ...

  7. 目录-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真> 章节 题目 P2 Matlab计算基础 P3 Simulink仿真 P4 控制系统数学模型 P5 Matlab/ ...

  8. P12 离散控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 12. 离散控制系统 表12.11 离散系统 ...

  9. P11 非线性系统-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 11. 非线性系统 11.1 Matlab ...

最新文章

  1. sql删除重复的数据保留一条_leetcode题库-sql练习精讲系列--九、删除重复
  2. dedecms插件开发教程
  3. Navicat导入TXT到数据库
  4. 嵌入式电路设计(soc底板电路设计)
  5. Facebook 与 Twitter 再曝漏洞!用户数据再次被共享?
  6. 纯js代码生成可搜索选择下拉列表
  7. [导入]C#做的一个加密/解密的类
  8. delphi之鼠标模拟
  9. netstat 查看网络状态
  10. jq json格式化工具
  11. 遥控器油门摇杆电位器封装尺寸图
  12. 【C语言基础练习】百钱买百鸡问题。母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只?
  13. 教老妈学认字的战斗史
  14. 学习操作系统,都有哪些硬核网站?
  15. vector erase() and clear() in C++ -- vector的函数erase()和clear()
  16. 使Celery 4在Windows上运行的2种方法
  17. Mac下的SVN客户端
  18. vue 中 mixins 的使用
  19. 关于移动互联网时代营销的成长启示
  20. 【AI视野·今日CV 计算机视觉论文速览 第157期】Mon, 16 Sep 2019

热门文章

  1. 参加工作必备的几款软件
  2. OpenWrt-LuCI 路由器设置端口映射(RDP SSH)
  3. 【工作经验】实践!能拍近景的全景立体相机
  4. LeetCode-Python-1229. 安排会议日程(区间+数组)
  5. MySQL建设用地信息系统_关于 “一站式规划管理服务平台” 工改系统数据互联互通公开询价函...
  6. 商业模式分析——以“我养你App”为例
  7. Java 静态代理模式_代购
  8. VS2019 中英文切换
  9. macOS 开发 - 10.15 Screen Recording 屏幕录制 授权及跳转
  10. python实现txt文件批量格式互转