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

相关文章

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹