当前位置: 首页 > news >正文

实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能

下面将详细介绍如何实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能。我们将按照以下步骤进行:

步骤1:定义二阶电机数学模型

考虑一个带有迟滞影响的二阶电机数学模型,其一般形式可以表示为:
y ¨ ( t ) + a 1 y ˙ ( t ) + a 0 y ( t ) = u ( t ) + d ( t ) + h ( t ) \ddot{y}(t) + a_1\dot{y}(t) + a_0y(t) = u(t) + d(t) + h(t) y¨(t)+a1y˙(t)+a0y(t)=u(t)+d(t)+h(t)
其中, y ( t ) y(t) y(t) 是电机的输出, u ( t ) u(t) u(t) 是控制输入, d ( t ) d(t) d(t) 是非线性干扰, h ( t ) h(t) h(t) 是迟滞影响。

步骤2:RBF神经网络模拟非线性干扰

RBF神经网络是一种前馈神经网络,其输出可以表示为:
d ^ ( t ) = ∑ i = 1 N w i φ ( ∥ x ( t ) − c i ∥ ) \hat{d}(t) = \sum_{i=1}^{N} w_i\varphi(\left\lVert x(t) - c_i\right\rVert) d^(t)=i=1Nwiφ(x(t)ci)
其中, w i w_i wi 是权重, φ \varphi φ 是径向基函数(通常使用高斯函数), c i c_i ci 是中心, x ( t ) x(t) x(t) 是输入向量。

步骤3:WNN预测非线性函数

小波神经网络是一种结合了小波变换和神经网络的模型,用于预测模型中的非线性函数。

代码实现

import numpy as np
import matplotlib.pyplot as plt
from sklearn.neural_network import MLPRegressor
from pywt import wavedec# 定义二阶电机数学模型
def second_order_motor_model(y, u, d, h, a0, a1):y_dot = np.zeros(2)y_dot[0] = y[1]y_dot[1] = -a0 * y[0] - a1 * y[1] + u + d + hreturn y_dot# 定义RBF神经网络模拟非线性干扰
def rbf_network(x, centers, weights, sigma):N = len(centers)phi = np.zeros(N)for i in range(N):phi[i] = np.exp(-np.linalg.norm(x - centers[i])**2 / (2 * sigma**2))return np.dot(weights, phi)# 定义WNN预测非线性函数
def wnn_predict(x, model):# 这里简单使用MLPRegressor作为示例return model.predict([x])[0]# 模拟参数
T = 10  # 模拟时间
dt = 0.01  # 时间步长
t = np.arange(0, T, dt)
N = len(t)# 模型参数
a0 = 1.0
a1 = 0.5# 初始化状态
y = np.zeros((N, 2))
y[0] = [0, 0]# 控制输入
u = np.sin(2 * np.pi * 0.5 * t)# 非线性干扰和迟滞影响
d = 0.5 * np.sin(2 * np.pi * 1.5 * t)
h = 0.2 * np.sign(np.sin(2 * np.pi * 2 * t))# RBF神经网络参数
N_rbf = 10  # RBF神经元数量
centers = np.random.rand(N_rbf, 2)
weights = np.random.rand(N_rbf)
sigma = 0.1# WNN模型训练
X_wnn = np.column_stack((y[:, 0], y[:, 1], u))
y_wnn = -a0 * y[:, 0] - a1 * y[:, 1] + u + d + h
wnn_model = MLPRegressor(hidden_layer_sizes=(10,), activation='relu', max_iter=1000)
wnn_model.fit(X_wnn, y_wnn)# 模拟过程
for i in range(1, N):# 预测非线性干扰d_hat = rbf_network(y[i-1], centers, weights, sigma)# 预测非线性函数f_hat = wnn_predict(np.concatenate((y[i-1], [u[i-1]])), wnn_model)# 抵消影响u_compensated = u[i-1] - d_hat - f_hat# 更新状态y_dot = second_order_motor_model(y[i-1], u_compensated, d[i-1], h[i-1], a0, a1)y[i] = y[i-1] + y_dot * dt# 绘制结果
plt.figure(figsize=(12, 6))
plt.subplot(2, 1, 1)
plt.plot(t, y[:, 0], label='Output')
plt.xlabel('Time (s)')
plt.ylabel('Output')
plt.legend()plt.subplot(2, 1, 2)
plt.plot(t, u, label='Control Input')
plt.xlabel('Time (s)')
plt.ylabel('Control Input')
plt.legend()plt.tight_layout()
plt.show()

代码解释

  1. 二阶电机数学模型second_order_motor_model 函数定义了二阶电机的动力学方程。
  2. RBF神经网络rbf_network 函数实现了RBF神经网络的计算,用于模拟非线性干扰。
  3. WNN预测wnn_predict 函数使用 MLPRegressor 作为WNN的示例,用于预测非线性函数。
  4. 模拟过程:在模拟过程中,首先使用RBF神经网络预测非线性干扰,然后使用WNN预测非线性函数,最后将其从控制输入中抵消,更新系统状态。
  5. 结果绘制:使用 matplotlib 绘制系统的输出和控制输入。

注意事项

  • 代码中的RBF神经网络和WNN只是简单示例,实际应用中可能需要更复杂的网络结构和训练方法。
  • 非线性干扰和迟滞影响的具体形式可以根据实际情况进行调整。

相关文章:

实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能

下面将详细介绍如何实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能。我们将按照以下步骤进行: 步骤1&#x…...

潜水泵,高效排水,守护城市与农田|深圳鼎跃

洪水是常见的自然灾害,在春夏季节的我国降水多为丰富,容易造成城市内部的洪涝灾害。特别是低洼地区的积水,不仅容易造成城市交通的出行不便,还存在潜在的隐患,严重影响了人们正常生活。 潜水泵作为一种高效、可靠的排水…...

易基因:RNA甲基化修饰和R-loop的交叉调控:从分子机制到临床意义|深度综述

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 R-loop(RNA-DNA杂合结构)是转录调控、DNA复制和修复等关键细胞过程的重要组成部分。但R-loop异常积累可能会破坏基因组完整性,从而导致多种疾病的发生…...

115 道 MySQL 面试题,从简单到深入!

1. 什么是数据库事务? 数据库事务是一个作为单个逻辑工作单元执行的一系列操作。事务具有ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性&#xf…...

一周学会Flask3 Python Web开发-flask3上下文全局变量session,g和current_app

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili flask3提供了session,g和current_app上下文全局变量来方便我们操作访问数据。 以下是一个表格,用于比较Flask中的…...

MFC学习笔记-1

一、编辑框和按钮 //.h文件private:CString str;//给窗口类加了一个变量(定义一个成员变量),关联到IDC_EDIT1中(要在实现中关联,源文件文件夹中)CString str2;//接收button2,和IDC_EDIT2绑定 p…...

Linux搜索查找类指令

1、find指令 基本语法:find [搜索范围] [选项] 功能:将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。 常用选项: 操作 命令示例 说明 查找指定路径下的所有文件 find /path/to/dir 查找指定目…...

江协科技/江科大-51单片机入门教程——P[1-1] 课程简介P[1-2] 开发工具介绍及软件安装

本教程也力求在玩好单片机的同时了解一些计算机的基本概念,了解电脑的一些基本操作,了解电路及其元器件的基本理论,为我们学习更高级的单片机,入门IT和信息技术行业,打下一定的基础。 目录 1.课程简介 2.开发工具及…...

监听load和hashchange事件

监听load和hashchange事件 上篇文章中,我们已经将菜谱的数据给拿到,并且已经可以渲染到页面上,本篇我们将为程序添加一些事件; 注:本项目来自于Jonas Schmedtmann创建,文章仅仅作为学习作用! 菜…...

深度剖析Seata源码:解锁分布式事务处理的核心逻辑

文章目录 写在文章开头如何使用源码(配置转掉)基于AT模式详解Seata全链路流程Seata服务端启动本地服务如何基于GlobalTransaction注解开启事务客户端如何开启分布式事务RM和TC如何协调处理分支事务RM生成回滚日志事务全局提交与回滚小结参考写在文章开头 在当今分布式系统日益…...

在 Ansys Mechanical 中解决干涉拟合

有意和无意的过盈配合在工程设计和有限元分析 (FEA) 中很常见。当两个组件重叠或接触时,就会发生这种情况,从而产生应力和变形,必须仔细分析以确保功能正常。有意干涉,例如轴和轴承之间的压配合或用于固定金…...

JMeter性能问题

性能测试中TPS上不去的几种原因 性能测试中TPS上不去的几种原因_tps一直上不去-CSDN博客 网络带宽 连接池 垃圾回收机制 压测脚本 通信连接机制 数据库配置 硬件资源 压测机 业务逻辑 系统架构 CPU过高什么原因 性能问题分析-CPU偏高 - 西瓜汁拌面 - 博客园 US C…...

美国国防部(DoD)SysML v2迁移指南项目

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 分享一篇SysML v1向SysML v2迁移的资料。 下载地址:https://ndia.dtic.mil/wp-content/uploads/2023/systems/Thurs_1560710_Stirk.pdf 核心内容用DeepSeek整理如下&#…...

JavaWeb-GenericServlet源码分析(适配器/模板方法)

文章目录 类直接实现Servlet接口的弊端Servlet接口的方法适配器设计模式 适配器对象的改造关于init方法的ServletConfig对象来源使用模板方法设计模式改造init方法 GenericServlet内置抽象类ServletConfig接口ServletConfig接口简介测试再谈GenericServlet抽象类 类直接实现Ser…...

微机原理与汇编语言试题四

一、单项选择 1.(单选题)()指向的内存单元的值被CPU做为指令执行。 A. DS:SI B. CS:IP C. SS:SP D. ES:DI 正确答案:B 2.(单选题)当RESET信号进入高电平状态时,将使8086的()寄存器初始化为0FFFFH A. SS B. DS C. ES D. CS 正确答案:D 3.(单选题)堆栈段寄存器是( …...

[java基础-JVM篇]1_JVM自动内存管理

JVM内存管理涉及但不限于类加载、对象分配、垃圾回收等,本篇主要记录运行时数据区域与对象相关内容。 内容主要来源《深入理解Java虚拟机:JVM高级特性与最佳实践》与官方文档,理解与表述错漏之处恳请各位大佬指正。 目录 运行时数据区域 栈 栈…...

安宝特科技 | Vuzix Z100智能眼镜+AugmentOS:重新定义AI可穿戴设备的未来——从操作系统到硬件生态,如何掀起无感智能革命?

一、AugmentOS:AI可穿戴的“操作系统革命” 2025年2月3日,Vuzix与AI人机交互团队Mentra联合推出的AugmentOS,被业内视为智能眼镜领域的“iOS时刻”。这款全球首个专为智能眼镜设计的通用操作系统,通过三大突破重新定义了AI可穿戴…...

Unity FBXExport导出的FBX无法在Blender打开

将FBX转换为obj: Convert 3D models online - free and secure...

UE5销毁Actor,移动Actor,简单的空气墙的制作

1.销毁Actor 1.Actor中存在Destory()函数和Destoryed()函数 Destory()函数是成员函数,它会立即标记 Actor 为销毁状态,并且会从场景中移除该 Actor。它会触发生命周期中的销毁过程,调用 Destroy() 后,Actor 立即进入销毁过程。具体…...

【python】提取word\pdf格式内容到txt文件

一、使用pdfminer提取 import os import re from pdfminer.high_level import extract_text import docx2txt import jiebadef read_pdf(file_path):"""读取 PDF 文件内容:param file_path: PDF 文件路径:return: 文件内容文本"""try:text ext…...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

【单片机期末】单片机系统设计

主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

大数据学习(132)-HIve数据分析

​​​​🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言&#x1f4…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

相关类相关的可视化图像总结

目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系&#xff0c;可直观判断线性相关、非线性相关或无相关关系&#xff0c;点的分布密…...