6 个版本 (2 个稳定版)

1.1.0 2023年7月1日
1.0.0 2022年7月17日
0.10.1 2021年4月18日
0.10.0 2021年3月7日
0.8.0 2020年8月30日

#263 in 数学

GPL-3.0-only

520KB
13K SLoC

Automatica - 自动控制系统库

主页和软件规范

仓库

crate 注册

文档

状态空间表示

通过四个矩阵 A、B、C、D 创建线性、时不变的系统的状态空间。
计算系统的极点。
从给定的输入计算系统的平衡点(状态和输出)。

系统时间演化

使用显式 Runge-Kutta 二阶方法进行固定步长的时响应。
使用显式 Runge-Kutta 四阶方法进行固定步长的时响应。
使用显式 Runge-Kutta-Fehlberg 四阶和五阶方法进行自适应步长的时响应。
使用隐式 Radau 三阶方法进行固定步长的时响应。

离散时间系统

离散线性系统的时间演化。
使用前向欧拉、后向欧拉和 Tustin 方法对连续线性系统进行离散化。
使用前向欧拉、后向欧拉和 Tustin 方法对传递函数进行离散化。

传递函数表示

单输入单输出 (SISO)

给定多项式的分子和分母创建一个单传递函数。
计算函数的(复数)极点和(复数)零点。
在给定的输入上评估传递函数。

多输入多输出 (MIMO)

给定多项式矩阵和特征多项式创建一个传递函数矩阵。
在给定的输入向量上评估矩阵。
(可变)矩阵元素分子的索引。

表示之间的转换

SISO 状态空间 -> 传递函数
MIMO 状态空间 -> 传递函数矩阵
传递函数 -> 状态空间(可观察形式)

图表

Bode 图

在一个频率区间内计算单传递函数的幅值和相位。

极坐标图

传递函数的极坐标图。

根轨迹

通过改变反馈增益来改变系统的根。

控制器

PID(比例-积分-微分)控制器,包括理想和实际的。

示例

库的示例使用方法可以在examples/文件夹中找到。

依赖项

~1.5MB
~26K SLoC