直流电机的系统辨识——LZW

news2024/11/15 20:49:15

前言

  本文采用基于最小二乘的线性辨识方法和基于Nonlinear ARX模型的非线性辨识方法对图1所示的直流电机进行系统辨识,并分别设计H∞控制器,分析比较控制效果。
在这里插入图片描述

图1 实验器材

目录

  • 前言
  • 一、数据采集
  • 二、系统辨识
    • 1.最小二乘法(线性辨识)
    • 2.Nonlinear ARX(非线性辨识)
      • (1)去除非线性模块
      • (2)加入非线性模块
  • 三、H∞控制器比较
  • 总结


一、数据采集

  给电机输入幅值为60RPM的PRBS信号,采样周期为0.01s,共采集2000组数据。前1000组数据用于模型估计、训练,后1000组用于结果验证,输入输出数据如下。
在这里插入图片描述

图2 直流电机输入输出数据
  上述数据频谱如下所示:

在这里插入图片描述

图3 数据频谱
  由输入输出频谱可以看出,输入信号频率范围从0.1-50Hz。随着输入信号频率增加,输出信号逐渐衰减,说明该系统有一定带宽。

二、系统辨识

1.最小二乘法(线性辨识)

  设SISO线性时不变系统ARX数学模型为
在这里插入图片描述
  即
在这里插入图片描述
  假设该电机系统为5阶,即有10个未知参数,通过最小二乘法求出该系统为
在这里插入图片描述
  该系统Bode图为
在这里插入图片描述

图4 直流电机Bode图
  从电机的Bode图可以看出,电机的幅频响应与输入输出数据频谱基本一致。
  将基于最小二乘法辨识的模型带入验证集验证。

在这里插入图片描述

图5 系统验证
  该模型有76.59%的拟合度。

2.Nonlinear ARX(非线性辨识)

在这里插入图片描述

图6 Nonlinear ARX模型

ARX模型

  ARX 模型全称带外部输入的自回归 (Autoregressive with Extra Input)。模型结构方程:

在这里插入图片描述

  u(t),y(t),e(t)分别是输入、输出和噪声。y(t-1),y(t-2),···,y(t-na),u(t),u(t-1),···,u(t-nb-1)是原始输入和输出的一些延迟项,它们可以看作 y(t) 的回归量 。系数矩阵 -a1,···bn是作用在这些回归量上的权重。线性 ARX 的输出 y(t) 是这些回归量的线性权重加和。

Nonlinear ARX 模型

在这里插入图片描述

  y(t)与回归量之间的关系不是线性映射,而是一个非线性的映射 F,F可以选择不同的非线性函数,如小波网络,树分类,sigmoid 网络。

计算输出y(t)的步骤

1.根据当前输入 u(t)、历史输入 u(t-1)···、历史输出 y(t-1)··· 计算这些回归量 (regressor) 的值。
2.使用输出函数(同时包含线性和非线性两部分)将前面计算的回归量regressor 映射到输出。

(1)去除非线性模块

在这里插入图片描述

图7 线性ARX模型
  该模型中,设电机系统为两阶,即
y=a1*u1(t-1)+a2*u2(t-2)+b1*y1(t-1)+b2*y2(t-2)

  系统辨识结果:
在这里插入图片描述
  模型验证:
在这里插入图片描述

图8 线性ARX模型验证
  不加入非线性模块的Nonlinear ARX模型系统辨识拟合度为76.55%。

(2)加入非线性模块

在这里插入图片描述

图9 非线性ARX模型
  在线性ARX模型基础上加入非线性模块,此处Nonlinear Block采用小波网络。小波是一种持续时间有限的波形,其平均值为零,范数不为零。小波变换主要通过伸缩和平移实现多尺度细化,突出所要处理的问题细节,有效提取局部信息、瞬态行为。
  模型验证:

在这里插入图片描述

图10 非线性ARX模型验证
  可以看出,加入非线性模块后模型拟合度为91%,比原来提升15%左右。

三、H∞控制器比较

  基于上述两种方法辨识的结果,通过H∞算法用相同的加权函数合成控制器,阶跃响应如下:
在这里插入图片描述

图11 阶跃响应
  可以看出,基于Nonlinear ARX辨识设计的控制器阶跃响应好于基于最小二乘法辨识设计的控制器。(超调量更小,响应时间更短。)

总结

在两种系统辨识方法中,
从模型验证来说,Nonlinear ARX模型输出与实际输出吻合率高达91%。
由阶跃响应来说,由Nonlinear ARX模型算出的控制器控制电机阶跃响应震荡最小。
综合来说,Nonlinear ARX对该电机系统辨识效果最好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/811555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

认识自动化测试

目录 简述 手动测试 自动化测试 测试类型 单元测试 集成测试 端到端测试(E2E) 快照测试 测试覆盖率 代码覆盖率 需求覆盖率 总结 自动化测试有以下几个概念: 单元测试集成测试E2E 测试快照测试测试覆盖率TDD 以及 BDD 等 简述 …

【消息中间件】原生PHP对接Uni H5、APP、微信小程序实时通讯消息服务

文章目录 视频演示效果前言一、分析二、全局注入MQTT连接1.引入库2.写入全局连接代码 二、PHP环境建立总结 视频演示效果 【uniapp】实现买定离手小游戏 前言 Mqtt不同环境问题太多,新手可以看下 《【MQTT】Esp32数据上传采集:最新mqtt插件(支…

GAMES101 笔记 Lecture13 光线追踪1

目录 Why Ray Tracing?(为什么需要光线追踪?)Basic Ray Tracing Algorithm(基础的光线追踪算法)Ray Casting(光线的投射)Generating Eye Rays(生成Eye Rays) Recursive(Whitted-Styled) Ray Tracing Ray-Surface Intersection(光线和平面的交点)Ray Rquation(射线方…

盘点:查快递教程

在“寄快递”成为常态的当下,如何快速进行物流信息查询,是收寄人所关心的问题。在回答这个问题之前,首先我们要知道,物流信息查询,有哪些方法? 1、官网单号查询 知道物流公司和单号的情况下,直…

管理类联考——写作——论说文——实战篇——标题篇

角度3——4种材料类型、4个立意对象、5种写作态度 经过审题立意后,我们要根据我们的立意,确定一个主题,这个主题必须通过文章的标题直接表达出来。 标题的基本要求 主题清晰,态度明确 第一,阅卷人看到一篇论说文的标…

【动态规划part13】| 300.最长递增子序列、674.最长连续递增序列、718.最长重复数组

目录 🎈LeetCode 300.最长递增子序列 🎈LeetCode 674. 最长连续递增序列 🎈LeetCode 718. 最长重复子数组 🎈LeetCode 300.最长递增子序列 链接:300.最长递增子序列 给你一个整数数组 nums ,找到其…

camund——2、cancelActivityInstance()与多实例下getActiveActivityIds()获取不到当前任务的节点。

在多实例(会签或者并行网关)时如果使用以下代码来进行驳回时,使用 **List activeActivityIds runtimeService.getActiveActivityIds(instanceId);**来获取当前活动的节点会出现获取不到情况。 runtimeService.createProcessInstanceModific…

基于Linux操作系统中的MySQL用户权限管理(三十二)

用户权限管理 目录 一、概述 二、用户权限类型 1、ALL PRIVILEGES 2、CREATE 3、DROP 4、SELECT 5、INSERT 6、UPDATE 7、DELETE 8、INDEX 9、ALTER 10、CREATE VIEW和CREATE ROUTINE 11、SHUTDOWN 12、GRANT OPTION 三、用户赋权 四、权限删除 五、用户删除 …

RTThread实际开发问题统计

文章目录 开启DMA rx中断,数据帧总是接收不全就产生中断?PB3/PB4等和JTAG复用的管脚不能使用?uart使用DMA传输,调用close再open之后就接收不到数据了? 开启DMA rx中断,数据帧总是接收不全就产生中断&#x…

C语言指针应该这么学?

数组名的意义: 1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。 2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。 3. 除此之外所有的数组名都表示首元素的地址。 根据以上数…

[CrackMe]Cruehead.1.exe的逆向及注册机编写

1. 逆向分析过程 作者弄了很多个对话框来迷惑破解者, 然后真正有用的对话框只有这个 这个窗口过程函数处理的是父窗口 其他的不关心, 只关心WM_COMMAND消息 里面有3个分支, 其中最重要的是按下register按钮的那个 整个逻辑非常清晰, 其算法是把name的每个字符转成大写字母…

测试测试用例设计常见面试题

测试|测试用例设计常见面试题 文章目录 测试|测试用例设计常见面试题1.怎么模拟弱网(测试技巧)2.怎么测试接口(测试技巧)3.怎么对冒泡排序测试(代码类)4.怎么对linux的zip命令进行测试(软件类&a…

Spring Boot项目的创建

hi 大家好,又见面了,今天继续讲解Spring Boot 文章目录 🐶1.什么是Spring Boot?🐶2.Spring Boot的优势🐶3.Spring Boot项目创建🌼3.1使用ieda创建🥝3.1.1下载插件Spring Boot Helper🥝3.1.2创建项目 &…

基于ThreadPoolExecutor实现动态线程池

项目上,我们是根据业务的使用频率,基于ThreadPoolExecutor自定义一个线程池,线程池的核心线程数、最大线程数、阻塞队列的容量都是估计的设置的,但是不知道线程资源的真正使用情况。 1.ThreadPoolExecutor配置参数动态修改 先来…

Linux Day04

目录 一、文件压缩与解压命令 1.1 tar cvf 文件名 ---打包命令生成.tar 1.2 tar xvf 文件名 ----解开包 生成文件 1.3 gzip .tar 压缩 生成.tar.gz压缩包 1.4 gzip -d .tar.gz 解压成包 1.5 直接把压缩包解压成文件 tar zxf .tar.gz 二、Linux 系统上 C 程序的…

Python实现自动登录和下单脚本,代码嘚魅力~

目录标题 前言环境使用:代码实现思路配置浏览器驱动代码实现尾语 前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 学python对selenium应该不陌生吧 Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一。 Selenium 支持的语言包括C#…

Winget简单介绍

为什么明明Windows的UI更为便捷,但是还是那么多人用的linux,或者mac 主要还是linux和mac的命令行更好用。 虽然windows中也出现了choco这种东西,但是非官方的总觉得不是很令人信服。 这边挂一下官方文档,然后在开始自己的简单实…

深入理解Vue响应式系统:数据绑定探索

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

某某大学某学院后台Phar反序列化GetShell

觉得这个洞还算有点意思,可以记录一下 首先在另一个二级学院进行目录扫描时发现源码www.rar,并且通过一些页面测试推测这两个二级学院应该是使用了同一套CMS 分析源码,发现使用的是ThinkPHP 5.1.34 LTS框架 通过APP、Public得到后台访问路径…

开放自动化软件的硬件平台

自动化行业的产品主要以嵌入式系统为主,历来对产品硬件的可靠性和性能都提出很高的要求。最典型的产品要数PLC。PLC 要求满足体积小,实时性,可靠性,可扩展性强,环境要求高等特点。它们通常采用工业级高性能嵌入式SoC 实…