PID 伴侣:Matlab 系统辨识工具箱使用

PID 伴侣:Matlab 系统辨识工具箱使用

1. 简介

采用一个直流电机PID控制系统的例子来记录Matlab系统辨识工具箱

1.1. 实验环境

  • 主控单元:Arduino UNO,负责接收命令、处理数据以及控制电机。
  • 电机驱动模块:L298N,用于驱动直流减速电机,并接受 Arduino UNO 的指令。
  • 电源供应:采用 12V 直流电源,为整个系统提供稳定电力。
  • 电机组件:配备有编码器的直流减速电机,用于实时反馈电机速度信息。

1.2. 流程图

1.3. 系统辨识工具箱界面

来源:MATLAB如何进行系统辨识(传递函数)- 云墨小站 - CSDN

2. VOFA+ 采集数据

2.1. 电机控制程序

  • 采用斜坡信号作为输入激励,将目标速度设置为 30-90 区间变化
  • 需要记录 2 条数据曲线:电机控制引脚的PWM输出值,电机编码器返回的实际转速值
    输入信号波形

2.2. FireWater数据格式

  • 使用 VOFA+ 的 FireWater 格式获取数据
  • 具体的格式要求与 Arduino IDE 中串口示波器的通信格式是一致的。在处理串口数据流时,换行符被视为一个完整数据记录的终止标志,表明随后的数据将对应一个新的时间戳。在同一记录内,各项数据利用逗号(‘,’)作为分隔符,以此来区分同一时刻下需要分别显示的不同数据类型。

2.3. 波形图控件

  • 在软件中需要添加波形图控件,从左侧栏拖到右侧的空白界面
  • 鼠标移动到波形图控件的边缘,当鼠标形状变成拉伸界面的双向箭头形式时,双击使其占满窗口

2.4. 数据保存为csv文件

  • 文件 -> 保存数据,即可将数据保存成csv格式

3. 数据导入

3.1. 数据导入Matlab

  • 选择输出类型为数值矩阵
  • 点击“导入所选内容”将数据导入到工作区

3.2 数据导入系统辨识工具箱

  • Import data

  • Data Format for Signals-信号数据格式:选择 Time Domain Signals,时域数据

  • Workspace Variable-工作空间变量:Input、Output中分别填写工作区中存储的数据变量的名称

  • Data Information-数据信息:

    • data name:辨识数据名称
    • Starting name:辨识的起始时间 ,设置为0
    • Sample time:采样时间间隔,按照实际情况进行设定,单位是s

4. 数据预处理

4.1. 去偏移

  • 选择Remove means
  • 会出现一个新的数据集,即当前数据去偏移后的结果

4.2. 划分估计模型和验证模型

  • 将去偏移后的数据集拖到Working Data区域,在Operations中选择Select range
  • 跳出新窗口,修改Time span,下方的Samples是会随之变化
  • 下图是在构建估计模型,裁剪了被处理数据集的前19901条数据。验证模型将保存从200直到末尾的其他数据
  • Data name可以设置该数据集的名称
  • 点击Insert,会产生新的数据集

  • 将估计模型拖入到Working Data,将验证模型拖入到Vaildation Data

5. 系统辨识

5.1. 选择辨识模型

  • 将刚才划分的估计模型拖入Working Data区域
  • 我选择传递函数模型进行系统辨识,所以Estimate -> Transfer Function Models

  • 选择极点为2,选择零点为1
  • 选择Continuous-time(连续)
  • 点击Estimate开始辨识

5.2. 查看辨识结果

  • 系统辨识完成后,右侧会出现辨识后的结果

  • 双击tf1,跳出窗口查看辨识结果
  • Export将辨识结果保存到工作区

  • 选中tf1,选中Model output,将跳出验证模型与辨识出的传递函数的拟合程度


参考链接

  1. MATLAB系统辨识工具箱介绍(完结)- wendy_ya - CSDN
  2. MATLAB系统辨识工具箱(ARMAX模型)- 夏目贵志 - 知乎
  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值