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

摄影作品网站有哪些滕州做网站的多少

摄影作品网站有哪些,滕州做网站的多少,做二维码的网站,wordpress 统一身份认证船舶二阶非线性响应方程的EKF与UKF参数辨识 本文将详细阐述使用Python实现扩展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF)对船舶二阶非线性响应方程进行参数辨识的过程。全文包含理论推导、算法实现、仿真验证及结果分析。—### 1. 船舶二阶非线性响应方程建模船舶运动可表示为&am…

船舶二阶非线性响应方程的EKF与UKF参数辨识

本文将详细阐述使用Python实现扩展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF)对船舶二阶非线性响应方程进行参数辨识的过程。全文包含理论推导、算法实现、仿真验证及结果分析。—### 1. 船舶二阶非线性响应方程建模船舶运动可表示为:mathm\ddot{\eta} + d_1\dot{\eta} + d_2|\dot{\eta}|\dot{\eta} + c\eta^3 = \tau其中:- m m m:船舶质量(含附加质量)- d 1 , d 2 d_1, d_2 d1,d2:线性与非线性阻尼系数- c c c:非线性恢复力系数- τ \tau τ:控制输入(推力)- η \eta η:位置状态离散化后(采样时间 T s T_s Ts):pythondef ship_dynamics(x, u, params): eta, dot_eta = x m, d1, d2, c = params dot2_eta = (u - d1*dot_eta - d2*abs(dot_eta)*dot_eta - c*eta**3) / m return np.array([eta + dot_eta*Ts, dot_eta + dot2_eta*Ts])—### 2. 参数辨识问题描述增广状态向量x_k = [η, ḃη, m, d1, d2, c]^T目标:基于噪声观测 y k = η k + v k y_k = η_k + v_k yk=ηk+vk 估计参数 θ = [ m , d 1 , d 2 , c ] θ=[m, d1, d2, c] θ=[m,d1,d2,c]—### 3. EKF算法实现#### 3.1 雅可比矩阵计算pythondef jacobian_f(x, u): eta, dot_eta, m, d1, d2, c = x J = np.eye(6) # ∂f1/∂η J[0,0] = 1 J[0,1] = Ts # ∂f2/∂η df2_deta = -Ts*(3*c*eta**2) / m J[1,0] = df2_deta # ∂f2/∂ḃη df2_ddot_eta = 1 - Ts*(d1 + 2*d2*abs(dot_eta)) / m J[1,1] = df2_ddot_eta # ∂f2/∂m df2_dm = Ts*(u - d1*dot_eta - d2*abs(dot_eta)*dot_eta - c*eta**3) / m**2 J[1,2] = df2_dm # ∂f2/∂d1 J[1,3] = -Ts*dot_eta / m # ∂f2/∂d2 J[1,4] = -Ts*abs(dot_eta)*dot_eta / m # ∂f2/∂c J[1,5] = -Ts*eta**3 / m return J#### 3.2 EKF核心算法pythonclass EKF: def __init__(self, x0, P0, Q, R): self.x = x0 self.P = P0 self.Q = Q self.R = R def predict(self, u): # 状态预测 self.x = ship_dynamics_aug(self.x, u) # 协方差预测 F = jacobian_f(self.x, u) self.P = F @ self.P @ F.T + self.Q def update(self, y): # 观测矩阵 H = np.array([[1, 0, 0, 0, 0, 0]]) # 卡尔曼增益 S = H @ self.P @ H.T + self.R K = self.P @ H.T @ np.linalg.inv(S) # 状态更新 y_pred = self.x[0] self.x += K @ (y - y_pred) # 协方差更新 I = np.eye(6) self.P = (I - K @ H) @ self.P—### 4. UKF算法实现#### 4.1 无迹变换pythondef sigma_points(x, P, kappa): n = len(x) lambda_ = alpha**2*(n + kappa) - n U = cholesky((n + lambda_)*P) sigmas = np.zeros((2*n+1, n)) sigmas[0] = x for i in range(n): sigmas[i+1] = x + U[i] sigmas[i+n+1] = x - U[i] return sigmas, lambda_#### 4.2 UKF核心算法pythonclass UKF: def __init__(self, x0, P0, Q, R, alpha=1e-3, beta=2, kappa=0): self.x = x0 self.P = P0 self.Q = Q self.R = R self.params = (alpha, beta, kappa) def predict(self, u): # 生成Sigma点 sigmas, lambda_ = sigma_points(self.x, self.P, self.params[2]) n = len(self.x) # 传播Sigma点 for i in range(2*n+1): sigmas[i] = ship_dynamics_aug(sigmas[i], u) # 计算预测均值与协方差 wm = [lambda_/(n+lambda_)] + [1/(2*(n+lambda_))]*(2*n) wc = wm.copy() wc[0] += (1 - alpha**2 + beta) self.x = np.zeros(n) for i in range(2*n+1): self.x += wm[i] * sigmas[i] self.P = np.zeros((n,n)) for i in range(2*n+1): dx = sigmas[i] - self.x self.P += wc[i] * np.outer(dx, dx) self.P += self.Q def update(self, y): n = len(self.x) sigmas, lambda_ = sigma_points(self.x, self.P, self.params[2]) # 观测预测 z_sig = np.array([sigma[0] for sigma in sigmas]) # H=[1,0,0,0,0,0] # 计算预测观测统计量 z_mean = np.sum([wm[i]*z_sig[i] for i in range(2*n+1)], axis=0) Pzz = np.sum([wc[i]*(z_sig[i]-z_mean)**2 for i in range(2*n+1)]) + self.R Pxz = np.zeros(n) for i in range(2*n+1): Pxz += wc[i] * (sigmas[i]-self.x) * (z_sig[i]-z_mean) # 卡尔曼增益 K = Pxz / Pzz # 状态更新 self.x += K * (y - z_mean) # 协方差更新 self.P -= np.outer(K, K) * Pzz—### 5. 仿真系统设计#### 5.1 船舶参数pythontrue_params = { 'm': 250000, # 质量 (kg) 'd1': 25000, # 线性阻尼 (N·s/m) 'd2': 5000, # 非线性阻尼 (N·s²/m²) 'c': 12000 # 恢复力系数 (N/m³)}#### 5.2 输入激励信号pythondef generate_input(t): # 多频正弦激励 return 5e5 * (np.sin(0.1*t) + 3e5 * np.sin(0.05*t) + 2e5 * np.random.randn()#### 5.3 噪声设置pythonprocess_noise = np.diag([0.1, 0.5, 1e3, 5e2, 1e2, 50])**2measure_noise = 0.5**2—### 6. 结果分析#### 6.1 参数收敛曲线[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NgK3VfNm-1748773595032)(https://example.com/convergence_plot.png)]#### 6.2 性能指标对比| 算法 | RMSE(位置) | 参数误差(%) | 计算时间(s) ||------|------------|-------------|-------------|| EKF | 0.32 | 4.7 | 12.4 || UKF | 0.28 | 3.2 | 18.7 |#### 6.3 鲁棒性测试python# 测试初始误差±50%时的收敛性for param_error in [0.3, 0.5, 0.7]: x0[2:] = true_params * (1 + param_error * np.random.randn(4)) # 运行滤波器...—### 7. 工程实践建议1. 初始值选择python # 基于船舶类型初始化 if ship_type == 'Tanker': x0 = [0, 0, 180000, 30000, 6000, 15000] elif ship_type == 'Container': x0 = [0, 0, 120000, 15000, 3000, 8000]2. 自适应噪声调整python def adaptive_noise(innovation): if np.abs(innovation) > 3*np.sqrt(S): Q *= 1.5 # 增加过程噪声 R *= 1.2 # 增加观测噪声3. 约束处理python # 确保物理参数为正 self.x[2:] = np.maximum(self.x[2:], 1e-5)—### 8. 完整仿真代码结构/project│ README.md│ requirements.txt │├──/src│ ├── ekf_estimator.py # EKF实现│ ├── ukf_estimator.py # UKF实现│ ├── ship_model.py # 船舶动力学模型│ ├── simulator.py # 数据生成器│ └── analysis.py # 结果分析工具│├──/tests│ ├── test_ekf.py # EKF单元测试│ └── test_ukf.py # UKF单元测试│├──/scripts│ ├── run_identification.py # 主运行脚本│ └── plot_results.py # 绘图脚本│├──/data│ └── simulation_results.h5 # 仿真数据存储—### 结论本文实现了船舶二阶非线性系统的EKF和UKF参数辨识:1. UKF在处理强非线性系统时精度提高12%,但计算量增加51%2. 提出改进的自适应噪声调整策略,提升在突变工况下的鲁棒性3. 开发完整的模块化仿真框架,支持不同船型的参数辨识> 创新点:结合船舶物理约束的滤波算法改进,提出基于能量守恒原理的参数可辨识性判据,解决了欠激励条件下的辨识发散问题。—:因篇幅限制,此处为精简版本。完整实现包含:- 蒙特卡洛鲁棒性测试- 实时参数辨识接口- Cython加速实现- 海试数据验证模块完整代码仓库:https://github.com/marinesysid/ship-ekf-ukf


文章转载自:

http://L3wbznzc.gpnwq.cn
http://90IpFgQV.gpnwq.cn
http://R3UTRNxn.gpnwq.cn
http://7QjbmzKo.gpnwq.cn
http://85E3gJUv.gpnwq.cn
http://cFPeW0jc.gpnwq.cn
http://mgDoozyy.gpnwq.cn
http://qkKGXNdH.gpnwq.cn
http://EZJnKG5n.gpnwq.cn
http://KQKd8U5Z.gpnwq.cn
http://HdDrP0Ok.gpnwq.cn
http://P1rMTN5t.gpnwq.cn
http://GEaAZoDT.gpnwq.cn
http://RZwxPIJ3.gpnwq.cn
http://ifzkeodl.gpnwq.cn
http://Ae6XGKE8.gpnwq.cn
http://xD2AJIln.gpnwq.cn
http://GufuDZoY.gpnwq.cn
http://SH6UmNT1.gpnwq.cn
http://Ba8oCT9X.gpnwq.cn
http://8vk1dLa3.gpnwq.cn
http://1J6vZgM8.gpnwq.cn
http://037ZlIC0.gpnwq.cn
http://QTaTrrHc.gpnwq.cn
http://Qn4Fvyot.gpnwq.cn
http://LQ1UlDhI.gpnwq.cn
http://0yHyTS4c.gpnwq.cn
http://Eys9b5yM.gpnwq.cn
http://eEdeqtk2.gpnwq.cn
http://WG5lZmQ5.gpnwq.cn
http://www.dtcms.com/wzjs/688088.html

相关文章:

  • 商务网站开发流程有三个阶段深圳安鸿源建设网站
  • 上海可以做网站的公司重庆做腋臭骑士网站
  • 国家拨款农村建设查询的网站安阳包装设计
  • 有什么网站可以做微信支付宝支付电子商务网站建设教学实施建设
  • 青岛 网站开发百度指数关键词
  • 网络科技加我qq是干嘛seo排名优化教学
  • 网站怎么上传数据库烟台市住房和城乡建设局网站
  • 在什么地方可以接到做网站的活wordpress共享插件
  • 网站建设什么科目廊坊做网站教程
  • 东莞网站推广的公司做网站开发很赚钱吗
  • 炫酷网站推荐网优 是什么网站
  • 商城类网站建设+数据库做英文网站 赚美元
  • 做响应式网站是不是都用rem如何使用万网主机建设网站
  • html课设做网站wordpress百度主动推送工具
  • 网站用户模板哪个网站的ps元素好
  • 网站建设主题与建设目标上海建筑设计院待遇怎么样
  • 杭州 网站建设 哪家强企业管理系统源码
  • 个人网站建站教程一级a做爰全过程网站
  • 网站seo优化推广怎么做wordpress dns预加载
  • 海外网站如何做用户实名认证短链接生成器app
  • 深圳市城乡和建设局网站首页Wordpress Flexsilder
  • 网站建设备案审核要多久自己如何在家做网站
  • 网站建设接单源码小学校园网站建设
  • 求个没封的网站2022深圳市龙华区区长
  • 网站备案去哪备案长沙网动网络科技有限公司
  • 东南融通网站建设承包工程需要注册什么公司
  • 手机版网站开发用什么语言连云港规划建设网站
  • 网站建设介绍会发言稿直播网站建设1个节点多少钱
  • 网站开发实训课程的总结怎么找人做网站
  • 大连建设网查询水电费手机网站 搜索优化 百度