跳转到内容

Julia 针对 MATLAB 用户/索引/工具箱/控制系统工具箱

来自维基教科书,开放世界中的开放书籍

将 MATLAB 控制系统工具箱 的功能映射到 Julia 中的等效功能。

相关 Julia 包



动态系统模型

[编辑 | 编辑源代码]

线性系统表示

[编辑 | 编辑源代码]

基本模型

[编辑 | 编辑源代码]
  • tf 创建传递函数模型,转换为传递函数模型
  • zpk 创建零极点增益模型;转换为零极点增益模型
  • ss 创建状态空间模型,转换为状态空间模型
  • frd 创建频率响应数据模型,转换为频率响应数据模型
  • filt 在 DSP 格式中指定离散传递函数
  • dss 创建描述符状态空间模型
  • pid 以并联形式创建 PID 控制器,转换为并联形式的 PID 控制器
  • pidstd 以标准形式创建 PID 控制器,转换为标准形式的 PID 控制器
  • pid2 以并联形式创建 2-DOF PID 控制器,转换为并联形式的 2-DOF PID 控制器
  • pidstd2 以标准形式创建 2-DOF PID 控制器,转换为标准形式的 2-DOF PID 控制器
  • rss 生成随机连续测试模型
  • drss 生成随机离散测试模型

可调模型

[编辑 | 编辑源代码]

具有时延的模型

[edit | edit source]
  • pade 对具有时延的模型进行 Padé 近似
  • absorbDelay 用 z = 0 处的极点或相移替换时延
  • thiran 基于 Thiran 近似生成分数阶延迟滤波器
  • hasdelay 对于具有时延的线性模型为真
  • hasInternalDelay 判断模型是否具有内部延迟
  • totaldelay 获取 LTI 模型的总的 I/O 延迟
  • delayss 创建具有延迟输入、输出和状态的状态空间模型
  • setDelayModel 构建具有内部延迟的状态空间模型
  • getDelayModel 获取内部延迟的状态空间表示

模型属性

[edit | edit source]
  • get 访问模型属性值
  • set 设置或修改模型属性
  • tfdata 访问传递函数数据
  • zpkdata 访问零极点增益数据
  • ssdata 访问状态空间模型数据
  • frdata 访问频率响应数据 (FRD) 对象的数据
  • piddata 访问并联形式 PID 控制器系数
  • pidstddata 访问标准形式 PID 控制器系数
  • piddata2 访问并联形式 2-DOF PID 控制器系数
  • pidstddata2 访问标准形式 2-DOF PID 控制器系数
  • dssdata 提取描述状态空间数据
  • chgFreqUnit 更改频率响应数据模型的频率单位
  • chgTimeUnit 更改动态系统的时单位
  • isct 判断动态系统模型是否为连续时间
  • isdt 判断动态系统模型是否为离散时间
  • isempty 判断动态系统模型是否为空
  • isfinite 判断模型是否具有有限系数
  • isParametric 判断模型是否具有可调参数
  • isproper 判断动态系统模型是否为真
  • isreal 判断模型是否具有实值系数
  • issiso 判断动态系统模型是否为单输入单输出(SISO)
  • isstable 判断系统是否稳定
  • isstatic 判断模型是静态还是动态
  • order 查询模型阶数
  • ndims 查询动态系统模型或模型数组的维数
  • size 查询输入输出模型的输出/输入/数组维度以及FRD模型的频率数量

模型数组

[edit | edit source]
  • stack 通过沿数组维度堆叠模型或模型数组来构建模型数组
  • nmodels 模型数组中的模型数量
  • permute 重新排列模型数组中的数组维度
  • reshape 改变模型数组的形状
  • repsys 复制和平铺模型
  • voidModel 标记模型数组中缺失或无关的模型
  • sampleBlock 对广义模型中的控制设计块进行采样
  • rsampleBlock 对广义模型中的控制设计块进行随机采样

模型互联

[edit | edit source]
  • feedback 两个模型的反馈连接
  • connect 动态系统的框图互联
  • sumblk 用于基于名称互联的求和结点
  • series 两个模型的串联连接
  • parallel 两个模型的并联连接
  • append 通过追加模型的输入和输出,将模型分组
  • blkdiag 模型的块对角线级联
  • imp2exp 将隐式线性关系转换为显式输入输出关系
  • inv 反转模型
  • lft 两个模型的广义反馈互联(Redheffer 星积)
  • connectOptions connect 命令的选项

模型转换

[edit | edit source]

模型类型转换

[edit | edit source]
  • tf 创建传递函数模型,转换为传递函数模型
  • zpk 创建零极点增益模型;转换为零极点增益模型
  • ss 创建状态空间模型,转换为状态空间模型
  • frd 创建频率响应数据模型,转换为频率响应数据模型
  • pid 以并联形式创建 PID 控制器,转换为并联形式的 PID 控制器
  • pidstd 以标准形式创建 PID 控制器,转换为标准形式的 PID 控制器
  • pid2 以并联形式创建 2-DOF PID 控制器,转换为并联形式的 2-DOF PID 控制器
  • pidstd2 以标准形式创建 2-DOF PID 控制器,转换为标准形式的 2-DOF PID 控制器
  • make1DOF 将 2-DOF PID 控制器转换为 1-DOF 控制器
  • make2DOF 将 1-DOF PID 控制器转换为 2-DOF 控制器
  • getComponents 从 2-DOF PID 控制器中提取 SISO 控制组件

连续-离散转换

[edit | edit source]
  • c2d 将模型从连续时间转换为离散时间
  • d2c 将模型从离散时间转换为连续时间
  • d2d 对离散时间模型重新采样
  • upsample 对离散时间模型进行上采样
  • c2dOptions 为连续时间到离散时间的转换创建选项集
  • d2cOptions 为离散时间到连续时间的转换创建选项集
  • d2dOptions 为离散时间重新采样创建选项集

状态坐标变换

[edit | edit source]
  • balreal 基于格拉姆矩阵的输入/输出平衡状态空间实现
  • canon 状态空间规范实现
  • prescale 状态空间模型的最佳缩放
  • ss2ss 状态空间模型的状态坐标变换
  • xperm 重新排列状态空间模型中的状态
[edit | edit source]

模型降阶

[edit | edit source]
  • balred 模型降阶
  • balredOptions 创建模型降阶选项集
  • balreal 基于格拉姆矩阵的输入/输出平衡状态空间实现
  • minreal 最小实现或零极点抵消
  • sminreal 结构性零极点抵消
  • modred 从状态空间模型中消除状态
  • freqsep 慢速-快速分解
  • freqsepOptions 慢速-快速分解选项
  • hsvd 动态系统的汉克尔奇异值
  • hsvplot 绘制汉克尔奇异值并返回绘图句柄
  • hsvdOptions 创建计算汉克尔奇异值和输入/输出平衡的选项集

线性分析

[edit | edit source]

时域和频域分析

[edit | edit source]
  • step 动态系统的阶跃响应图;阶跃响应数据
  • stepinfo 上升时间、稳定时间和其他阶跃响应特征
  • impulse 动态系统的脉冲响应图;脉冲响应数据
  • initial 状态空间模型的初始条件响应
  • lsim 模拟动态系统对任意输入的时域响应
  • lsiminfo 计算线性响应特征
  • gensig 为 lsim 生成测试输入信号
  • covar 由白噪声驱动的系统的输出和状态协方差
  • stepDataOptions step 的选项集
  • bode 频率响应的波特图,或幅值和相位数据
  • bodemag LTI 模型的波特幅值响应
  • nyquist 频率响应的奈奎斯特图
  • nichols 频率响应的尼科尔斯图
  • ngrid 在奈奎斯特图上叠加尼科尔斯图
  • sigma 动态系统的奇异值图
  • freqresp 频率响应网格
  • evalfr 在给定频率处评估频率响应
  • dcgain LTI 系统的低频(直流)增益
  • bandwidth 频率响应带宽
  • getPeakGain 动态系统频率响应的峰值增益
  • getGainCrossover 指定增益的交叉频率
  • fnorm FRD 模型的逐点峰值增益
  • norm 线性模型的范数
  • db2mag 将分贝(dB)转换为幅值
  • mag2db 将幅值转换为分贝(dB)

稳定性分析

[edit | edit source]
  • pole 计算动态系统的极点
  • zero 单输入单输出动态系统的零点和增益
  • damp 自然频率和阻尼比
  • dsort 按幅值对离散时间极点进行排序
  • esort 按实部对连续时间极点进行排序
  • tzero 线性系统的非变零点
  • pzplot 动态系统模型的零极点图,带有绘图定制选项
  • iopzplot 绘制 I/O 对的零极点图并返回绘图句柄
  • allmargin 增益裕度、相位裕度、延时裕度和交叉频率
  • margin 增益裕度、相位裕度和交叉频率

灵敏度分析

[edit | edit source]
  • sampleBlock 对广义模型中的控制设计块进行采样
  • rsampleBlock 对广义模型中的控制设计块进行随机采样

无源性和扇区边界

[edit | edit source]

绘制自定义

[edit | edit source]

控制系统设计和整定

[edit | edit source]

PID 控制器整定

[edit | edit source]
  • pidTuner 打开 PID Tuner 以进行 PID 整定
  • pidtune 用于线性设备模型的 PID 整定算法
  • pidtuneOptions 定义 pidtune 命令的选项

经典控制设计

[edit | edit source]
  • rlocus 动态系统的根轨迹图
  • rlocusplot 绘制根轨迹并返回绘图句柄
  • sisoinit 在启动时配置控制系统设计器

状态空间控制设计和估计

[edit | edit source]

状态空间控制设计

[edit | edit source]
  • lqr 线性二次型调节器 (LQR) 设计
  • lqry 形成具有输出权重的线性二次型 (LQ) 状态反馈调节器
  • lqi 线性二次型积分控制
  • dlqr 离散时间状态空间系统的线性二次型 (LQ) 状态反馈调节器
  • lqrd 为连续系统设计离散线性二次型 (LQ) 调节器
  • lqg 线性二次型高斯 (LQG) 设计
  • lqgreg 形成线性二次型高斯 (LQG) 调节器
  • lqgtrack 形成线性二次型高斯 (LQG) 伺服控制器
  • augstate 将状态向量追加到输出向量
  • norm 线性模型的范数
  • estim 给定估计器增益,形成状态估计器
  • place 极点配置设计
  • reg 给定状态反馈和估计器增益,形成调节器

状态估计

[edit | edit source]
  • kalman 卡尔曼滤波器设计,卡尔曼估计器
  • kalmd 为连续系统设计离散卡尔曼估计器
  • estim 给定估计器增益,形成状态估计器
  • extendedKalmanFilter 创建用于在线状态估计的扩展卡尔曼滤波器对象
  • unscentedKalmanFilter 创建用于在线状态估计的无迹卡尔曼滤波器对象
  • particleFilter 用于在线状态估计的粒子滤波器对象
  • correct 使用扩展或无迹卡尔曼滤波器,或粒子滤波器和测量值来校正状态和状态估计误差协方差
  • predict 使用扩展或无迹卡尔曼滤波器,或粒子滤波器来预测下一时间步的状态和状态估计误差协方差
  • initialize 初始化粒子滤波器的状态
  • clone 复制在线状态估计对象

多回路,多目标调整

[edit | edit source]

编程调整

[edit | edit source]
[edit | edit source]
  • slTuner 用于 Simulink 模型的控制系统调整的界面
  • slTunerOptions 设置 slTuner 界面选项
  • addBlock 将块添加到 slTuner 界面的调整块列表中
  • addOpening 将信号添加到 slLinearizer 或 slTuner 界面的打开列表中
  • addPoint 将信号添加到 slLinearizer 或 slTuner 界面的分析点列表中
  • refresh 将 slLinearizer 或 slTuner 界面与当前模型状态同步
  • removeAllOpenings 从 slLinearizer 或 slTuner 界面中移除所有打开
  • removeAllPoints 从 slLinearizer 或 slTuner 界面中移除所有点
  • removeBlock 从 slTuner 界面的调整块列表中移除块
  • removeOpening 从 slLinearizer 或 slTuner 界面中移除永久循环打开
  • removePoint 从 slLinearizer 或 slTuner 界面的分析点列表中移除点
  • setBlockParam 设置 slTuner 界面中调整块的参数化
  • setBlockRateConversion 设置 slTuner 界面中调整块的速率转换设置
  • setBlockValue 设置 slTuner 界面中调整块参数化的值
  • writeBlockValue 更新 Simulink 模型中的块值
  • writeLookupTableData 更新调整的查找表的一部分
  • getBlockParam 获取 slTuner 界面中调整块的参数化
  • getBlockRateConversion 获取 slTuner 界面中调整块的速率转换设置
  • getBlockValue 获取 slTuner 界面中调整块参数化的当前值
  • getOpenings 获取 slLinearizer 或 slTuner 界面的打开列表
  • getPoints 获取 slLinearizer 或 slTuner 界面的分析点列表
  • showTunable 显示 slTuner 界面中可调整块的参数化值

用于调整 MATLAB 模型的设置

[edit | edit source]
  • tf 创建传递函数模型,转换为传递函数模型
  • zpk 创建零极点增益模型;转换为零极点增益模型
  • ss 创建状态空间模型,转换为状态空间模型
  • tunableGain 可调静态增益块
  • tunableTF 可调传递函数,具有固定数量的极点和零点
  • tunablePID 可调 PID 控制器
  • tunablePID2 可调双自由度 PID 控制器
  • tunableSS 可调固定阶状态空间模型
  • realp 实数可调参数
  • AnalysisPoint 线性分析的关注点
  • connect 动态系统的框图互联
  • feedback 两个模型的反馈连接

调整目标

[edit | edit source]
  • TuningGoal.StepTracking 控制系统调整的阶跃响应要求
  • TuningGoal.StepRejection 控制系统调整的阶跃干扰抑制要求
  • TuningGoal.Transient 控制系统调整的瞬态匹配要求
  • TuningGoal.LQG 控制系统调整的线性二次高斯 (LQG) 目标
  • TuningGoal.Gain 控制系统调整的增益约束
  • TuningGoal.Variance 控制系统调整的噪声放大约束
  • TuningGoal.Tracking 控制系统调整的跟踪要求
  • TuningGoal.Overshoot 控制系统调整的超调约束
  • TuningGoal.Rejection 控制系统调整的干扰抑制要求
  • TuningGoal.Sensitivity 控制系统调整的灵敏度要求
  • TuningGoal.WeightedGain 控制系统调整的频率加权增益约束
  • TuningGoal.WeightedVariance 控制系统调整的频率加权 H2 范数约束
  • TuningGoal.MinLoopGain 控制系统调整的最小环路增益约束
  • TuningGoal.MaxLoopGain 控制系统调整的最大环路增益约束
  • TuningGoal.LoopShape 控制系统调整的目标环路形状
  • TuningGoal.Margins 控制系统调整的稳定裕度要求
  • TuningGoal.Passivity 控制系统调整的无源性约束
  • TuningGoal.ConicSector 控制系统调整的扇区边界
  • TuningGoal.WeightedPassivity 频率加权无源性约束
  • TuningGoal.Poles 控制系统动力学约束
  • TuningGoal.ControllerPoles 控制系统调整的控制器动力学约束

调整、分析和验证

[edit | edit source]
  • systune (slTuner) 使用 slTuner 界面调整 Simulink 中的控制系统参数
  • systuneOptions 设置 systune 的选项
  • getIOTransfer (slTuner) 使用 slLinearizer 或 slTuner 界面获取指定 I/O 集的传递函数
  • getLoopTransfer (slTuner) 使用 slLinearizer 或 slTuner 界面获取指定点的开环传递函数
  • getSensitivity (slTuner) 使用 slLinearizer 或 slTuner 界面获取指定点的灵敏度函数
  • getCompSensitivity (slTuner) 使用 slLinearizer 或 slTuner 界面获取指定点的互补灵敏度函数
  • writeBlockValue 更新 Simulink 模型中的块值
  • systune 调整在 MATLAB 中建模的固定结构控制系统
  • systuneOptions 设置 systune 的选项
  • getIOTransfer 来自控制系统广义模型的闭环传递函数
  • getLoopTransfer 控制系统的开环传递函数
  • getSensitivity 来自控制系统广义模型的灵敏度函数
  • getCompSensitivity 从控制系统广义模型获取互补灵敏度函数
  • viewGoal 查看调整目标;根据调整目标验证设计
  • evalGoal 评估调整后的控制系统的调整目标

环路整形设计

[edit | edit source]
  • slTuner 用于 Simulink 模型的控制系统调整的界面
  • looptune 使用 slTuner 界面调整 Simulink 中的 MIMO 反馈环路
  • looptuneOptions 设置 looptune 的选项
  • loopview 使用 slTuner 界面以图形方式分析控制系统调整结果
  • looptuneSetup 使用 slTuner 界面为 looptune 构造调整设置,以调整 systune 的设置
  • looptune 调整固定结构反馈环路
  • looptuneOptions 设置 looptune 的选项
  • loopview 以图形方式分析 MIMO 反馈环路
  • looptuneSetup 将 looptune 的调整设置转换为 systune 的调整设置
  • viewGoal 查看调整目标;根据调整目标验证设计
  • evalGoal 评估调整后的控制系统的调整目标

增益调度

[edit | edit source]
  • tunableSurface 为增益调度创建可调整的增益曲面
  • polyBasis 可调整增益曲面的多项式基函数
  • fourierBasis 可调整增益曲面的傅里叶基函数
  • ndBasis 可调整增益曲面的基函数
  • viewSurf 将增益曲面可视化为调度变量的函数
  • evalSurf 在特定设计点评估增益曲面
  • getData 获取可调整曲面系数的当前值
  • setData 设置可调曲面系数的值
  • codegen 为可调增益曲面生成 MATLAB 代码
  • systune 调整在 MATLAB 中建模的固定结构控制系统
  • slTuner 用于 Simulink 模型的控制系统调整的界面
  • systune (slTuner) 使用 slTuner 界面调整 Simulink 中的控制系统参数
  • voidModel 标记模型数组中缺失或无关的模型
  • varyingGoal 增益调度控制器的可变调整目标
  • getGoal 在指定设计点评估可变调整目标

矩阵运算

[edit | edit source]
  • lyap 连续李雅普诺夫方程解
  • lyapchol 连续时间李雅普诺夫方程的平方根求解器
  • dlyap 求解离散时间李雅普诺夫方程
  • dlyapchol 离散时间李雅普诺夫方程的平方根求解器
  • care 连续时间代数Riccati方程解
  • dare 求解离散时间代数Riccati方程 (DARE)
  • gcare 连续时间代数Riccati方程的广义求解器
  • gdare 离散时间代数Riccati方程的广义求解器
  • ctrb 可控性矩阵
  • obsv 可观测性矩阵
  • ctrbf 计算可控性阶梯形式
  • obsvf 计算可观测性阶梯形式
  • gram 可控性和可观测性格拉姆矩阵
  • gramOptions gram 命令选项
  • bdschur 块对角舒尔分解
  • norm 线性模型的范数
华夏公益教科书