急求!怎样用MATLAB输入一个传递函数

急求!怎样用MATLAB输入一个传递函数,第1张

1、将输入输出数据保存存到MATLAB的工作空间中;

2、在MATLAB主界面的左下角,选择出系统辨识工具箱,具体 *** 作如下图;

3、下图是我们打开的系统辨识工具箱。

4、载入数据,如图,选中要载入数据的类型。

5、会跳出一个数据配置界面,在相应的位置填入输入输出数据的名字(在工作空间中的变量名);

值得一提的是这里需要配置相关采样周期,这需要根据输入输出的采样时间而定,本实验中采用的是001s。

6、下面是我们载入数据后的效果。

7、系统辨识,如图中的 *** 作,用于选择我们要辨识的系统模型的基本结构,这里选择一个基于过程的传递函数模型。

8、根据自己的实际情况对模型的基本情况进行设置,如图所示。

9、设置完成后,单击确定后,就会在右侧的栏中出现一个图形,这就代码我们辨识后的图像;

用鼠标左键将摆图像拖拽到图中箭头所指的位置。

10、查看结果,拖拽后,我们再回到MATLAB主界面的工作空间中就会看到我们的模型的基本参数。

问题1:想在button2_click事件调用m函数,如何使用button1_click事件中的变量arr?

使用一个全局变量保存arr。

// 问题1:没有声明arr?请问哪里不对呀?我已经将butoon1_click定义为public了呀

public是指方法是public,不是里面的变量都是public

//问题2:如何去掉每行末尾的\r 然后 将arr转成 4列的数组[1 32 53 54]

使用正则表达式去掉换行符,如下:

string content=@"aaa

bbb";

content = RegexReplace(content, "\r","");

至于转换数组,你本身不就是string数组吗?

使用匿名函数句柄就可以了 fmincon 需要的函数fun只有一个输入参数 fun(x) 而你的函数需要多一个能改变的变量。

1、在到达迭代次数阈值或目标函数估值次数阈值时,求解器没有最小化目标到要求的精度,此时求解器停止。接下来,可以尝试以下方法:

(1)设置‘Display’为‘iter’,查看每步的迭代信息,这些信息包括:目标函数(Fval or f(x) or Resnorm)是否是下降的;检查约束越界(Max constraint)是否是递减趋向于0;查看一阶优化是否是递减趋向于0;查看置信域半径(Trust-region radius)是否下降趋向于一个小的值。若其中至少一种情况为是,就表示结果是不断改善的。如果结果是不断改善的,可以采取下边的措施:设置MaxIter、MaxFunEvals比默认值大的值,默认值可以在优化工具箱或求解器的函数参考页的优化表中查看;从最后计算出的点开始重新求解。如果结果没有改善,尝试以下其他的方法。

(2)放松精度

如果TolX或TolFun太小,当求解器达到一个最小值时可能也不会识别到,这就会导致无限次徒劳的迭代。DiffMaxChange和DiffMinChange选项能影响求解器的改善,它们控制求导估计中有限差分的步长。

2、无可行点

在TolCon约束精度内,求解器不能找到一个满足所有约束条件的点,此时,可以尝试以下方法:

(1)检查线性约束

通过求解一个线性规划问题来找到一个满足界约束和线性约束的点。

i)定义一个目标函数是常值0的线性规划问题、

f = zeros(size(x0));   % assumes x0 is the initial point

ii)求解这个线性规划问题看是否有一个可行点。

xnew = linprog(f,A,b,Aeq,beq,lb,ub);

iii)如果有可行点xnew,用xnew作为初始点去求解原始问题。

iv)如果没有可行点,那说明原始模型建的不好,检查界约束和线性约束。

这非常简单,直接把原来的变量名当成结构体的域名就可以了,例如 para=1;parb=2;parz=26;然后传递参数par给函数就可以了。

MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室),软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

syms t s

h=exp(-t);%输入传递函数h(t)

h=laplace(h);

y=exp(-t)-exp(-2t);%输入系统输出y(t)

y=laplace(y)

x=y/h;

%x=simple(x)

x=ilaplace(x)%求出系统输入x(t)

ezplot(x,[-2,15])%显示x(t)在-2到15件的图形

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11666416.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存