控制教程 —— 巡航控制篇:1.系统建模及开环响应分析

2023-12-22 21:30

本文主要是介绍控制教程 —— 巡航控制篇:1.系统建模及开环响应分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • 物理模型建立
    • 系统动力方程式
    • 系统参数配置
    • 状态空间模型
    • 传递函数模型
    • 控制指标设计
    • 开环阶跃响应
    • 开环极点/零点
    • 开环伯德图

物理模型建立

在现代车辆的反馈控制系统中,自动巡航控制一个典型的例子。巡航控制系统的目的是在不受外界干扰(如风或坡度变化)的情况下保持恒定的车速。可以通过测量测速,将其与期望速度或参考速度进行比较,并根据控制规律自动调节油门来实现。
在这里插入图片描述
这里我们考虑一个简单的车辆动力学模型,如上面的受力分析图。质量为m的车辆收到控制力u的作用,作用力u表示在道路/轮胎面产生的力,对于这个简化的模型,我们将假定我们可以直接控制该力,而忽略产生该力的动力总成,轮胎等影响。假定由于滚动摩擦和风阻而产生的阻力bv随车速v线性变化,作用方向与车辆运动方向相反。

系统动力方程式

基于以上假设,我们可以建立一阶质量阻尼器系统,沿x方向求和应用牛顿第二定律,我们得出以下系统方程:
m v ˙ + b v = u m \dot{v} + b v = u mv˙+bv=u由于我们对控制车辆的速度感兴趣,因此输出方程选择如下:
y = v y = v y=v

系统参数配置

对于上述例子,我们假设系统的参数为:
m 车辆质量 1000 kg
b 阻尼系数 50 N.s/m
u 额定控制力 500 N

状态空间模型

一阶系统只有一种能量存储模式,该例子中是汽车的动能,因此只需要一个状态变量,即速度。因此,状态空间表示为:
x ˙ = [ v ˙ ] = [ − b m ] [ v ] + [ 1 m ] [ u ] \dot{\mathbf{x}}=[\dot{v}]=\left[\frac{-b}{m}\right][v]+\left[\frac{1}{m}\right][u] x˙=[v˙]=[mb][v]+[m1][u] y = [ 1 ] [ v ] y=[1][v] y=[1][v]我们使用以下命令将状态空间模型输入到MATLAB中:

m = 1000;
b = 50;A = -b/m;
B = 1/m;
C = 1;
D = 0;cruise_ss = ss(A,B,C,D);

传递函数模型

将控制微分方程进行拉普拉斯变换,并假设零初始条件,可以得到巡航控制系统的传递函数为:
P ( s ) = V ( s ) U ( s ) = 1 m s + b [ m / s N ] P(s) = \frac{V(s)}{U(s)} = \frac{1}{ms+b} \qquad [ \frac{m/s}{N} ] P(s)=U(s)V(s)=ms+b1[Nm/s]我们使用以下命令将传递函数模型输入到MATLAB中:

s = tf('s');
P_cruise = 1/(m*s+b);

控制指标设计

现在为系统设计控制指标,当发动机提供500 N的力时,汽车将达到 10 m/s的最大速度,现在设计汽车在不到 5s 的时间内加速达到该速度,在本应用中,速度上 10% 的超调和 2% 的稳态误差就可以满足要求。
因此我们对该系统提出了以下设计标准:

  • 上升时间 < 5s
  • 超调 < 10%
  • 稳态误差 < 2%

开环阶跃响应

在MATLAB中模拟该系统在没有反馈控制的情况下对 500N 的阶跃作用力的开环响应:

m = 1000;
b = 50;
u = 500;s = tf('s');
P_cruise = 1/(m*s+b);step(u*P_cruise)

在这里插入图片描述
我们可以看到,开环系统没有过冲和振荡(一阶系统的特性),并且确实达到了所需的 10m/s 的稳态速度。但是,上升时间太慢,约 60s。因此,我们需要设计一种反馈控制器,该控制器在不对其他动态性能指标产生不利影响的情况下加快响应速度。

开环极点/零点

巡航控制系统在 s = − b / m s=-b/m s=b/m 处具有一个单极点,我们可以使用以下命令在 s 平面上绘制该极点。

pzmap(P_cruise)
axis([-1 1 -1 1])

在这里插入图片描述
我们观察到开环系统是稳定的,不会振荡,因为极点是负实数。此外,响应速度由该极点的幅度 b / m b/m b/m 决定:幅度越大,系统越快达到稳态值,由于通常无法更改系统参数来改变系统的动态响应,因此必须设计控制器来调整闭环系统的极点和零点,来满足所需的性能指标。

开环伯德图

我们还可以使用以下命令来绘制系统的开环频率响应图:

bode(P_cruise)

在这里插入图片描述
我们可以看到,伯德图显示了一阶系统的特征。

这篇关于控制教程 —— 巡航控制篇:1.系统建模及开环响应分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/525542

相关文章

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

Linux下MySQL8.0.26安装教程

《Linux下MySQL8.0.26安装教程》文章详细介绍了如何在Linux系统上安装和配置MySQL,包括下载、解压、安装依赖、启动服务、获取默认密码、设置密码、支持远程登录以及创建表,感兴趣的朋友... 目录1.找到官网下载位置1.访问mysql存档2.下载社区版3.百度网盘中2.linux安装配置1.

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四: