控制教程 —— 巡航控制篇: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

相关文章

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析