根据输入输出数据估计传递函数

     2023-02-22     118

关键词:

【中文标题】根据输入输出数据估计传递函数【英文标题】:Estimate transfer function from input output data 【发布时间】:2013-09-08 13:50:12 【问题描述】:

我有一个从 NI-DAQ 获得的两列数据矩阵。第一列是电动发电机组(带驱动器)的输出数据,第二列是输入数据(方波)。我想在没有 Simulink 的情况下使用 tfest 找到传递函数。是否可以?我有系统识别工具箱

如何将 .mat 文件附加到此帖子?我的 gist 数据https://gist.github.com/anonymous/6484844

【问题讨论】:

【参考方案1】:

你已经有了正确的想法,我不知道你卡在哪里了。 这是解决您问题的代码,我对其进行了测试,它工作正常。请注意,更简单的输入可能会为您带来更好的结果,这意味着例如单步而不是方波。

% load your data (text file with your two columns)
load data.txt;

% sample index, reducing of input to get single step instead of square wave
x = 1:1:length(data);
data(x > 2900,:)=[];
x(x > 2900)=[];

% plot data
figure(1)
plot(x,data(:,1)); hold on
plot(x,data(:,2)); hold off

% prepare data for tftest, 100 is a random chosen sampling time
tfdata = iddata(data(:,1),data(:,2),100);

% estimate system, factor 5 -> number of poles (variable as desired)
sys = tfest(tfdata,5);

% plot step response (factor 5 comes from input)
figure(2)
step(5*sys)

编辑:极数 np=5 的输出:

sys =


  From input "u1" to output "y1":
    -3.337e-05 s^4 + 1.326e-07 s^3 + 1.639e-11 s^2 + 1.221e-14 s + 1.064e-19
  ----------------------------------------------------------------------------
  s^5 + 0.005287 s^4 + 1.516e-06 s^3 + 4.517e-10 s^2 + 2.896e-14 s + 2.037e-19

Edit#2:在您之前的问题中,您询问使用idfrdiddata 是否更好 - 但您实际上有频率响应数据吗?如果您选择的极数足够高,我实际上认为这不会有太大的不同。只需尝试对您更有效的方法。解决方法是一样的。

【讨论】:

+1 为 ... 下载数据并帮助其他人带来痛苦 谢谢 ;) 我预计很快就会遇到同样的问题,所以我现在也可以试试。 我期待 (np=1): sys = 19.71 / (s + 7.8125)。为什么使用 MATLAB tfest 时系数这么小? 那绝对不是基于你的输出数据的传递函数,它可能是你输入的步骤数据的传递函数。你可能会混淆? 谢谢@thewaywewalk 我现在将设计 PI(或 PID)控制器,为该工厂的阶跃输入获得零 ss 误差。您说您预计很快就会遇到同样的问题 - 您是否找到任何好的博客或论坛页面来展示如何从 sys 设计 PI?

估计偏差和方差

...出会接近生成训练数据的真实参数θ  点估计也可以指输入和目标变量之间关系的估计。我们将这种类型的点估计称为函数估计2.偏差  估计的偏差被定义为:        其中期望作用在所有数据(看 查看详情

如何正确传递输入并从 Mex 函数获取输出?

】如何正确传递输入并从Mex函数获取输出?【英文标题】:HowtocorrectlypassinputsandgetoutputsfromMexfunction?【发布时间】:2021-09-0110:39:27【问题描述】:这是我第一次尝试生成MEX函数。我看到了一些例子,但是当我尝试模仿它们时失败... 查看详情

没有简单的方法将 Tensorboard 输出添加到预定义的估计器函数 DnnClassifier?

...述】:我一直在使用TF1.3中的estimator接口,包括创建数据输入函数:training_input_fn=tf. 查看详情

机器学习实战精读--------logistic回归

...一些系列点,用一条光滑曲线连接起来logistic主要思想:根据现有数据对分类边界线建立回归公式、以此进行分类sigmoid函数:在神经网络中它是所谓的激励函数。当输入大于0时,输出趋向于1,输入小于0时,输出趋向0,输入为0... 查看详情

使用 Promises 执行流程,将一个函数的输出作为下一个函数的输入传递

...用Promises执行流程,将一个函数的输出作为下一个函数的输入传递【英文标题】:UsingPromisestoexecuteflow,passingtheoutputofonefunctionasinputofthenextfunction【发布时间】:2018-03-1405:35:27【问题描述】:我正在编写一个具有以下流程的软件:Pr... 查看详情

状态估计

什么是状态估计  状态估计根据可获取的测量数据估算动态系统内部状态的方法。  对系统的输入和输出进行量测而得到的数据只能反映系统的外部特性,而系统的动态规律需要用内部(通常无法直接测量)状态变量来描述... 查看详情

c语言函数参数描述中的[in][out]是什么意思?(输入型参数和输出型参数)(表示这是传递给函数用于读取数据的,还是用来输出的地址指针地址,多个值可以用结构体指针)(代码片段)

普遍的做法,编程中函数的输入和输出都是靠函数的参数的,返回值只是用来表示函数的执行结果是对的还是错。如果这个函数是用来做输入的,也叫做输入型参数,用来做输出的就叫做输出型参数。输出型参数... 查看详情

将 Numpy 数组传递给 C 函数以进行输入和输出

】将Numpy数组传递给C函数以进行输入和输出【英文标题】:PassingNumpyarraystoaCfunctionforinputandoutput【发布时间】:2011-08-1707:14:34【问题描述】:哦,我的话我是个傻瓜。我只是在调用函数时省略了第二个和第三个参数。像个傻瓜。... 查看详情

armr模型简单实践

...的模型。用AR模型法求信具体作法是:①选择AR模型,在输入是冲激函数或白噪声的情况下,使其输出等于所研究的信号,至少,应是对该信号的一个好的近似。②利用已知的自相关函数或数据求模型的参数。③利用求出的模型... 查看详情

损失函数

...实值与预测值差的平方,目的是方便求导极大似然估计法根据样本实际的情况,估计样本服从某种分布的概率,找到最大可能的一种概率模型计算神经网络概率模型的似然值,找到极大似然值,这个就应该是最接近真实情况的概... 查看详情

通过输入和输出在组件之间传递数据

】通过输入和输出在组件之间传递数据【英文标题】:Passingdatabetweencomponentswithinputandoutput【发布时间】:2016-12-0919:34:22【问题描述】:所以我是角度二的新手,我查看了几个教程试图弄清楚如何做到这一点,但我无法让它工作... 查看详情

Keras 中基于输入数据的自定义损失函数

...描述】:我正在尝试使用Keras创建自定义损失函数。我想根据输入计算损失函数并预测神经网络的输出。我尝试在Keras中使用customloss函数。我认为y_true是我们为训练提供的输出,而y_pred是神经网络的预测输出。以下损失函数与 查看详情

matlab调用可执行程序传递参数以及接收输出(代码片段)

...程序都适用。有两种方式可将参数传递给程序,大家根据需要进行选择即可。C++的main函数参数C++的main函数可以没有输入参数,也可以有输入参数,而且只能有两个参数,习惯上coding如下:intmain(int... 查看详情

c++核心准则边译边学-f.17输入/输出参数传递非常量引用

F.17:For"in-out"parameters,passbyreferencetonon-​​const(输入/输出参数传递非常量引用)​​ 译者注:in-out指的是向函数传递输入信息的同时又从函数获取输出信息的参数。Reason(原因)Thismakesitcleartocallersthattheobjectisassumedtobemodified.... 查看详情

什么是gis核密度计算

...以找出那些地方点或者线比较集中。也就是,密度分析是根据输入要素数据计算整个区域的数据聚集状况。密度分析是通过离散点数据或者线数据进行内插的过程,根据插值原理不同,主要是分为核密度分析和普通的点\线密... 查看详情

将单元格区域作为变量传递并使用函数复制数据

...:40:28【问题描述】:我试图在VBA中创建一个函数,该函数根据函数的输入将数据从一张表复制到另一张表。但是,我在实际函数本身中使用函数的参数时遇到了很大的困难。下面是我的代码:如您所见,我想要的范围现在是硬编... 查看详情

c输入&输出(代码片段)

...。C语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存... 查看详情

c语言中的格式化输出函数和格式化输入函数分别是啥?

...位的一段代码,希望能帮助到你参考技术A输出:printf()会根据参数format字符串来转换并格式化数据,然后将结果输出到参数stream指定的文件中,直到出现字符串结束(‘\0’)为止。输入:scanf()会自参数stream的文件流中读取字符... 查看详情