在Python环境下构建火箭控制系统 基础控制通常解析与运行通常

控制通常是一门钻研如何经过输入信号使系统以希冀模式运转的学科。

飞机、汽车、火车、电路及火箭等多种系统,都须要一个相似于大脑的外围控制单元或外部架构。

控制通常正是对这些复杂系统的控制架构启动深化钻研的畛域。

在本文中,咱们提供了一个关于如何构建复杂系统架构的基础指南,将讨论如何运用控制通常,并借助Python编程言语来构建一个火箭控制系统。

你将深化了解以下内容:

火箭系统与烘焙蛋糕之间的兴趣类比

让咱们用一个烤蛋糕的比喻来解释。想象你正在制造一个蛋糕,你的食谱提供了制造蛋糕所需的步骤和资料。

为什么控制系统在编程中

了解控制系统可以协助你在算法设计和系统思想方面变得愈加熟练。

此外,它还准许你在反应回路中调整环节,这在编程的泛滥畛域中都十分关键。

你关键会在以下软件开发中运行控制通常和控制系统:

如何创立一个火箭控制系统

以烤蛋糕的类比来论述:

二、简化火箭控制原理:深化了解PID控制器

一个繁难的控制系统:PID控制器

每个控制系统都装备有一个外围组件——控制器,以口头其运转指令。在泛滥控制器中,PID控制器是最为罕用的类型之一。它因其繁难性和高效性,在繁难控制系统中获取了宽泛的运行。

在以下代码示例中,咱们将驳回PID控制器。选用PID控制器的要素在于,它关于处置基础控制义务来说,不只易于成功,而且成果清楚。

在火箭控制系统中,PID控制器承当着经过对比火箭的实践航行位置与预约轨迹(即反应环节)来一直调整航行门路(即处置环节)的义务。

这一机制确保了火箭能够准确地沿着预约轨道航行,并最终准确达到目的地。

PID控制器由三个关键局部组成,它们在系统的处置与反应环节中协同作用:比例增益(Kp)、积分增益(Ki)以及微分增益(Kd)。

设计一个稳固的控制系统。

设计稳固控制系统的环节称为稳固性剖析。

方法有很多,但在代码示例中咱们将

传递函数的需求:控制火箭和确定组件值

传递提醒了输入信号如何经过数学相关转换为输入信号。

在的情境中,通常传递函数代表PID控制器的性能

而物理系统传递函数则形容了系统中物理组件在

经过将这两类传递函数相联合,咱们能够深化了解资料和组件值的实践体现,例如:

工程师如何找到物理传递函数方程?

它是用于将卫星送入近地轨道或中地球轨道,还是用于口头月球探测等深空义务?

明白了火箭的详细运行场景之 剖析来推导出传递函数的物理方程。

实践上,存在一个专门的工程畛域,称为系统识别,其钻研重点就是如何确定系统的传递函数。

接上去,让咱们讨论如何针对控制系统,找到其物理传递函数的方法。

代码示例:设计一个繁难的PID控制器

在接上去的代码示例中,咱们将构建一个用于火箭的繁难控制系统。

在深化代码细节之前,咱们先来讨论一下分贝的概念。

分贝是一种驳回对数尺度来权衡声响强度的单位。在控制通常畛域,分贝被用来以更直观的模式在图表上示意增益。

范围内看到更多大大小小的

换句话说,经过对数尺度的增益,咱们可以明晰地看到输入信号在何种水平上被加大并转化为输入信号。

我还将解释根轨迹、波德图和奈奎斯特图如何

# Step 1: Import librariesimport matplotlib.pyplot as pltimport control as ctrl# Step 2: Define a new rocket transfer function with poles closer to the imaginary axis
num = [10]den = [2, 2, 1]G = ctrl.TransferFunction(num, den)# Step 3: Design a PID controller with new parametersKp = 5Ki = 2Kd = 1C = ctrl.TransferFunction([Kd, Kp, Ki], [1, 0])# Step 4: Applying the PID controller to the rocket transfer functionCL = ctrl.feedback(C * G, 1)# Step 5: Plot Root Locus for Closed-Loop Systemplt.figure(figsize=(10, 6))ctrl.root_locus(C * G, grid=True)plt.title("Root Locus Plot (Closed-Loop)")# Step 6: Plot Bode Plot for Closed-Loop Systemplt.figure(figsize=(10, 6))ctrl.bode_plot(CL, dB=True, Hz=False, deg=True)plt.suptitle("Bode Plot (Closed-Loop)", fnotallow=16)# Step 7: Plot Nyquist Plot for Closed-Loop Systemplt.figure(figsize=(10, 6))ctrl.nyquist_plot(CL)plt.title("Nyquist Plot (Closed-Loop)")plt.show()
import matplotlib.pyplot as pltimport control as ctrl

在这里咱们导入两个库:

步:定义火箭系统的传递函数

num = [10]den = [2, 2, 1]G = ctrl.TransferFunction(num, den)

在这段代码中,咱们定义了物理系统的传递函数

是咱们要用PID控制的传递函数:

<!DOCTYPE html>Black-Scholes Equation$$\frac{\partial V}{\partial t} + \frac{1}{2}\sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} = rV - rS \frac{\partial V}{\partial S}$$

在本代码示例中,所展现的火箭方程对应的传递函数被极大地简化了。但是,在事实运行场景中,火箭的传递函数并非属于时不变线性系统。实践上,它们往往体现出极高的复杂性,属于典型的非线性系统。

第3步:设计具备新参数的PID控制器

Kp = 5Ki = 2Kd = 1C = ctrl.TransferFunction([Kd, Kp, Ki], [1, 0])

此代码设置具备特定增益的PID控制器并创立传递函数:

第4步:将PID控制器运行于火箭传递函数

CL = ctrl.feedback(C * G, 1)

PID控制器在火箭传递函数中的运行

第5步:增益剖析的根轨迹

plt.figure(figsize=(10, 6))ctrl.root_locus(C * G, grid=True)plt.title("Root Locus Plot (Closed-Loop)")

这是一幅根轨迹图,它是工程师们为了钻研控制系统稳固性而驳回的一种剖析工具。

图中所示的十字标志,被称作极点,其在根轨迹图中的位置至关关键。

当极点位于图的左侧时,标明系统处于稳固形态;反之,若极点位于右侧,则意味着系统是不稳固的。

极点越倾向左侧,系统在遭受搅扰后复原至反常形态的速度越快,从而系统的稳固性越高。

但是,极点适度左移或者会造成系统发生过多的振荡,其稳固性取决于极点的详细位置。

第6步:稳固性剖析的波德图剖析

plt.figure(figsize=(10, 6))ctrl.bode_plot(CL, dB=True, Hz=False, deg=True)plt.suptitle("Bode Plot (Closed-Loop)", fnotallow=16)

波德图的创制旨在辅佐工程师深化把握系统对变动的照应个性,以及其在不同工况下的稳固性能。

此外,波德图亦能提醒系统的稳固形态及其安保裕度

以下,咱们将讨论波德图的上班原理

上述图表中的上方图像被称为幅度图,而下方图像则称为相位图。

幅度图用于权衡系统在各个频率下的增益大小。较高的增益值示意系统具备更迅速且剧烈的照应,这关于成功准确控制是有益的。

相位图则用于测量系统在各个频率下所引入的相位移。当增益降至零时,咱们可以观察到相位移的状况。

在此情景下,咱们可以经过绿线确定增益为零的时辰,以及与红线相对应的相位移,其数值大概为63度。

理想状况下,相位移的范围应控制在30到60度之间,这一范围能够在系统的稳固性和照应速度之间取得平衡。

若相位移超越60度,系统将体现出极高的稳固性,但或者会降落系统对变动的照应速度。

综上所述,经过对该图表的剖析,咱们可以得出论断,该PID控制器是处于稳固形态的。

第7步:用于稳固性剖析的奈奎斯特

plt.figure(figsize=(10, 6))ctrl.nyquist_plot(CL)plt.title("Nyquist Plot (Closed-Loop)")

奈奎斯特图是一种辅佐工程师迅速评价控制系统稳固性的工具。

火箭控制系统设计的最终阶段

在成功PID控制系统的设计之后,咱们可以应用诸如 之类的工具来确定泛滥组件所需确实切参数。

换句话说,在确定了最佳的PID控制器参数之后,便进入了确定火箭物理组件参数的阶段。

得益于Simulink,咱们能够依据火箭的义务需求,取得设计火箭所需的一切这些参数。

经过构建一个稳固的控制系统,并基于PID控制器来控制火箭的物理传递函数,咱们能够确定每个组件所需的所无关键参数。

关于线性时不变系统(LTI)的优化,咱们领有多种方法:

应用这些工具,咱们可以构建出一个有效的控制系统。

但是,在这一环节中,最好驳回 ,以便更极速地确定最佳的PID控制器参数。

在本次钻研中,咱们以一个极为简化的火箭系统

在事实状况中,咱们通常仅经常使用非线性工具,由于一切的火箭系统实质上都是非线性

以自顺应控制为例,控制系统会实时调整自身以应答一直变动的环境条件。

被用于稳固性剖析,而非上述三种图形剖析。

虽然如此,构建这些控制系统的环节一直坚持分歧。本文详细论述了这一环节的上班原理,以及它是如何运行于线性时不变系统的。

刘涛,社区编辑,某大型央企系统上线检测管控担任人。

原文题目: How to Build a Rocket Control System: Basic Control Theory with Python ,作者:Tiago Monteiro

您可能还会对下面的文章感兴趣: