MATLAB system identification系统辨识app的使用

news2024/12/24 8:22:29

系统辨识

      • 前言
      • 系统辨识
        • 第一步 选取时域数据到app
        • 第二步 分割数据
        • 第三步 设置传递函数的参数
        • 第四步 Estimate
        • 第五步
      • 结束

前言

接上节:simulink-仿真以及PID参数整定

系统模型的辨识工作,在控制领域,一般用于开发控制器的先手工作。一般而言,设计控制器,会依据被控对象的数学模型。依据其数学模型,可以分析其各种特性,所以数学模型就显得很重要。

数学模型,通俗一点讲就是一个数学表达式,f(x, t),这个表达式有个特点就是,给(输入)x 赋值,那么这个表达式就会是一个关于时间 t 的函数,就会在时间轴上,随着时间变化而变化,呈现出的输出值,就会和实际的物理模型的输出近似。

为什么说是近似呢,实际生活中,物理模型的实际输出大多都会相对复杂,并不是有特别明显的规律,有的可能会随时间、环境以及各种情况变化而变化,那么还用一个固定的公式表示其输出,就不准确了。也有一些简单的物理模型,这样的模型就很容易,就直接可以用简单的数学公式表示其输出。

那么可能会有新手和我一样疑惑,既然有的不准确,那就用一些高级的方法去拟合得到实际物理对象的数学模型。有没有方法,也有,但是考虑到情况的复杂度,用统计学的方法去拟合,也不能覆盖全部的情况下的数学模型,所以随后的数学模型也只能做到近似。

那么问题又来了,既然是近似,横竖结果不能完全一致,那何必用那么复杂的方法去得到数学模型呢。所以就是这个想法,就有了高阶模型线性化处理,或者降阶数,能够用最简单的一阶模型去表示物理对象的输出,就不用二阶模型,就秉承这个原则,去简化数学模型。

那么什么情况下用一阶什么时候用二阶呢,有这么一段话,但是很绕口,简单说就是要给物理对象一个输入信号,可以是阶跃信号,看从一个值变化到另一个值,物理对象的实际输出结果的变化曲线,由变化曲线来判断。
在这里插入图片描述
这里说的是对一个系统不知道的情况下,采取的办法,这个办法又被通俗的叫作工程试验法,给一个激励信号,看输出动态响应,然后有输入和输出结果,就可以借助工具箱里的系统辨识去拟合系统的数学模型。

在开始说系统辨识的方法前,还要解释一下前边的两个问题:

  1. 既然最后得到的数学模型只是近似模型,那么设计的控制器能有用么?这个问题就是控制器需要解决的问题,最经典的PID控制器,就是包含了这点,它允许模型不准确。所以大多的控制器都具备一定的容错能力,本身控制器的作用就是降低误差,只要这个误差不是太大,就能救回来。那些严格绑定被控对象数学模型的控制器,就更加适用在准确的数学模型上。
  2. 准确的数学模型又从哪里来呢?最常见的运动的质点,物理中学过的 s = v0 x t + 1/2 x a x t^2 , 这个质点可以稍微放大一下,就变成遥控小车。那么遥控小车的运动学模型就是这个公式,输入加速度后,路程就和时间相关,随时间变化。但是实际小车没这么简单,小车还有质量,小车也不是手推的,需要提供电,由电机转动驱动小车,那么就涉及驱动力多大,能提供多大加速度,小车需要变速,那么要平滑变速,就需要加速度控制,那么就要有动力学公式,一个运动学,一个动力学,两个公式就是小车的数学模型,在不考虑什么复杂环境下,风阻,地面摩擦力降低这些情况,数学模型就是精准的,所以科研分析大多是先有推导的公式,然后才会有一些没法计算推导得到的系统进行扫频然后系统辨识 。

系统辨识

上边说了,辨识模型就需要激励信号输入,和响应信号输入,由输入、输出才能辨识。
在这里插入图片描述
常用的激励信号,是一个组合信号,阶跃、正弦、斜坡、啁啾信号:
在这里插入图片描述
然后会得到一个对应的输出:
在这里插入图片描述
这个输出肯定不是一个实际的物理对象的输出,一般情况下,实际输出和输入不在一个维度上,比如上边的小车模型,实际输出是路程,输入是加速度,在做控制器的时候,路程和加速度没法做加减,为什么作加减,闭环控制嘛,就得把输出送回来和输入目标值进行对比嘛,那么就得在同一个维度下进行了。为了方便辨识,我们把输出转换成输入相同的维度,这样就可以直接使用,最后得到的系统输出的值,就是转换后,这个在最后不要忘记了。

图片是为了展示效果,实际上要把数据导入matlab整理好成这样:
在这里插入图片描述

第一步 选取时域数据到app

在这里插入图片描述

第二步 分割数据

这一步将数据分割成测试集和验证集
在这里插入图片描述
然后就会得到这个状态:
在这里插入图片描述

第三步 设置传递函数的参数

最保守的就是第一个,或者 process models 比较直观,或者就是最后一个什么都不用设置
在这里插入图片描述
在这里插入图片描述

第四步 Estimate

在这里插入图片描述
在这里插入图片描述

第五步

在选择阶数前可以先用state space model 推荐最合适的阶数
在这里插入图片描述
然后就来回试一试,找到拟合度最好的一个模型,那个就是辨识得到的模型:
在这里插入图片描述

结束

打完收工,其实得到的模型只是一个辅助,应为采集到的数据到拟合,有很多需要注意的地方,最后得到的模型不一定理想。

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

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

相关文章

curl: (60) SSL certificate problem: self-signed certificat

目录: 1、背景2、测试结果 1、背景 今天帮忙客户排查问题,报错请求超时,但是ping客户的ip以及测试端口都是通的,最终不得不从中台服务器上发起请求客户回调接口,报错如下: 怀疑是客户的证书有问题&#xf…

测试网0撸大毛 — AI 公链ALIENX推出HAL Testnet活动(含保姆级教程)

近期,OpenAI推出了新一代的GPT-4o让AI再次获得关注。AI硬件销售商英伟达的股价也突破1000美元,市值攀升到2.6万亿美元。AI继续影响到我们生活的方方面面。 在加密货币行业,市场行情也逐渐走出低谷。以太坊现货ETF被批准,为整个市场…

51单片机 简单计算机实现

书接上回;http://t.csdnimg.cn/T4b0W 键盘位置如上 效果图 因为是四位,就没显示等于号, 而且段数比较少 显示不出来加号 所以 A ; B - ; C *; D / 基本原来都一样. 代码奉上 #include <reg51.h>#include <STRING.H>//利用矩阵键盘按键按下依次在数码管显…

九、OpenAI之图片生成(Image generation)

学习用DALL.E的API怎样生成和操作图片 1 介绍 图片API提供3个方法来和图片进行交互&#xff1a; 从0开始基于文字提示创建图片(DALL.E 3 and DALL.E2)基于一个新的提示词&#xff0c;通过让模型替换已有图像的某些区域来创建图像的编辑版本;&#xff08;DALL.E2&#xff09;…

2024洗地机哪个牌子好?洗地机十大品牌

洗地机在不同家庭环境中都能发挥其独特的优势&#xff0c;无论是大面积的地板还是狭小的角落&#xff0c;都能轻松应对。 对于有孩子或宠物的家庭&#xff0c;地面上经常会有各种杂物和污渍&#xff0c;洗地机强大的吸力和深度清洁功能&#xff0c;可以迅速清理掉这些脏东西&a…

嵩山为什么称为三水之源

三水指黄河、淮河、济河&#xff0c;这三条河流环绕在嵩山周边。 黄河横亘在嵩山北部&#xff0c;其支流伊洛河从西南方环绕嵩山&#xff0c;然后汇入黄河。济河&#xff0c;古称济水&#xff0c;源自济源王屋山&#xff0c;自身河道在东晋时代被黄河夺占&#xff0c;从此消失。…

C#_库的引用

类库的引用 还可以自己引用类库&#xff1a;解决方案-添加-新建项目 主程序 using System; using System.Windows.Forms; using Tools;namespace ConsoleApp2 {class Program{static void Main(string[] args){//Console.WriteLine("helloword");// Form form ne…

“腾讯云 AI 代码助手”体验

一、“腾讯云 AI 代码助手”体验 1、注册账号并进行实名认证 2、进入开发环境 3、体验javascript简单函数 代码如下&#xff1a; //请写一个两个日期计算的函数 function dateDiff(date1, date2) {return date2.getTime() - date1.getTime(); } var date1 new Date("2…

基于JAVA GUI体育馆管理系统的会员功能

Java GUI即Java图形用户界面&#xff0c;是一种使用图形化元素&#xff08;如窗口、按钮、文本框等&#xff09;来构建用户界面的技术。它基于Java的Swing框架&#xff0c;可以用于创建各种复杂的用户界面&#xff0c;包括窗口、对话框、菜单、按钮、文本框、复选框、下拉列表等…

安卓实现5个底部导航栏切换fragment

步骤&#xff0c;写 5 个 fragment 自定义的类5个布局文件&#xff1a; package com.xmkjsoft.xhgh.fragment;import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup;import androidx.annotation.NonNul…

焦化超低排平台选哪家好?(已解答)

在环保政策日益严格的背景下&#xff0c;焦化行业的超低排放改造成为企业转型升级的必经之路。朗观视觉小编建议&#xff0c;选择合适的焦化超低排平台对于确保改造效果和实现可持续发展具有重要意义。本文将从多个维度为您提供一份全面的评估与选择指南&#xff0c;帮助您在众…

Python_文件操作_学习

目录 一、关于文件的打开和关闭 1. 文件的打开 2.文件的关闭 二、文件的读取 1. 文件的读_r 2. 使用readline 3.使用readlines 三、文件的写入 1. 文本的新建写入 2.文本的追加写入 四、文件的删除和重命名 1.文件的重命名 2.文件的删除 五、文件的定位读写 1.t…

java: 无法访问org.springframework.ldap.core.LdapTemplate

完整错误&#xff1a; java: 无法访问org.springframework.ldap.core.LdapTemplate错误的类文件: /E:/apache-maven-3.6.3/repository/org/springframework/ldap/spring-ldap-core/3.2.3/spring-ldap-core-3.2.3.jar!/org/springframework/ldap/core/LdapTemplate.class类文件具…

微火问答:全域外卖和本地生活服务是同个项目吗?

当前&#xff0c;本地生活赛道火爆程度不断升级&#xff0c;作为其主要板块之一的团购外卖也持续迸发出新的活力。而全域运营的出现无疑是给团购外卖这把正在熊熊燃烧的烈火&#xff0c;又添了一把新柴&#xff01; 所谓全域运营&#xff0c;简单来说&#xff0c;就是指所有领…

英语学习笔记25——Mrs. Smith‘s kitchen

Mrs. Smith’s kitchen 史密斯太太的厨房 词汇 Vocabulary Mrs. 夫人【已婚】 复习&#xff1a;Mr. 先生 全名 / 姓    Mrs. 夫人 全名 / 丈夫的姓    Miss 小姐&#xff08;未婚&#xff09; 全名 / 姓    Ms. 女士 全名 / 姓 查看婚姻状况&#xff0c;可以观察…

【从C++到Java一周速成】章节13:多线程

章节13&#xff1a;多线程 【1】程序、进程、线程【2】创建线程 【1】程序、进程、线程 程序&#xff1a;是为了完成特定任务、用某种语言编写的一组指令的集合&#xff0c;是一段静态的代码。进程&#xff1a;是程序的一次执行过程。正在运行的一个程序&#xff0c;进程作为资…

如何找到docker的run(启动命令)

使用python三方库进行 需要安装python解释器 安装runlike安装包 pip3 install runlike 运行命令 runlike -p <container_name> # 后面可以是容器名和容器id&#xff0c;-p参数是显示自动换行实验 使用docker启动一个jenkins 启动命令为 docker run -d \ -p 9002:80…

初学者都能掌握的操作符(中)

&#xff08;1&#xff09;位操作符&#xff08;& | ^&#xff09; &&#xff1a;&#xff08;按二进制位“与”&#xff09; 也就是两个数的每一位二进制数按照 “与” 的算法&#xff0c;如下&#xff1a; int a 3 ,b 5 ; c a & b; 我们首先写出a和b的二进…

@JsonFormat注解出现日期序列化以及反序列化问题(日期比实际日期少一天)

文章目录 前言一、场景如下所示二、问题分析三、JsonFormat注解是什么以下是 JsonFormat 注解的一些常用属性&#xff1a; 四、解决问题解决方式&#xff1a;只需要指定对应的时区就好效果如下&#xff1a; 五、JsonFormat 注解时出现日期问题总结 前言 在一次的偶然机会下发现…