怎么在matlabGUI界面里的编辑文本框里动态显示系统时间

怎么在matlabGUI界面里的编辑文本框里动态显示系统时间,第1张

方法1:如果你是用GUIDE创建的界面,新建一个空白窗口,在窗口里放置一个style属性为edit的文本框,其默认tag值为edit1。再放置一个style值为slider的滑块,其默认tag值为slider1。

edit1的callback函数中添加如下语句:

set(handlesslider1,'value',str2num(get(hObject,'string')));

slider1的callback函数中添加如下语句:

set(handlesedit1,'string',num2str(get(hObject,'value')));

方法2:如果你想直接用代码创建界面,则新建一个m文件,输入如下代码:

function slider_text

MainFigure=figure('menubar','none','numbertitle','off','position',[100 100 250 200],'name','滑块和文本框');

text1=uicontrol('style','edit','parent',MainFigure,'position',[50 150 150 20],'string','请输入一个0到1之间的数','callback',@text1_callback);

slider1=uicontrol('style','slider','parent',MainFigure,'position',[50 100 150 20],'callback',@slider1_callback);

function slider1_callback(hObject,event)

set(text1,'string',num2str(get(hObject,'value')))

end

function text1_callback(hObject,event)

set(slider1,'value',str2num(get(hObject,'string')))

end

end

上升时间

用matlab的编程法和游动鼠标法求二阶传递函数的上升时间、峰值时间、超调量和调节时间 - Gavin_Hall的博客 - CSDN博客

Gavin_Hall

原创

关注

11点赞·17506人阅读

1 准备

终值:c(∞)

上升时间 tr:响应从峰值的10%上升到峰值的90%所需要的时间;而阶跃响应则是从终值的10%上升到终值的90%所需要的时间;对有振荡的系统,也可以定义为从0到第一次到达终值所需的时间。

峰值时间 tp:响应到达第一个峰值所需的时间。

调节时间 ts:响应到达并保持在终值的正负5%误差带内所需的最短时间;有时也用终值的正负2%。

超调量 σ%:峰值c(tp )超出终值的百分比,即:

题目:

已知二阶系统传递函数为

试分别用游动鼠标法和编程法求取系统的峰值,超调量,上升时间以及调节时间。

2 编程法:

s = tf('s'); % 用字母 s 构造传递函数

Gs = 3/(s^2+2s+10); % 构造 Gs

t = 0:0005:5; % 设置横轴范围和步长

[y,x,t] = step(Gs,t); % 根据步长逐步响应传递函数

[ymax,tp] = max(y); % 获取最大值的点的数据

r=1;

r1=0;

while y(r) < (ymax09) % 过滤小于90%的

if y(r) > (ymax01) % 过滤大于10%的

r1=r1+1;

end;

r=r+1;

end;

rise_time = r10005 % 上升时间

peak_time = (tp-1)0005 % 峰值时间

ystable = dcgain(Gs); % 稳态

max_overshoot = (ymax-ystable)/ystable % 超调量

r2=1001; % 由 (5-0)/0005+1 求得

while y(r2) > ystable098 && y(r2) < ystable102

% 从稳态倒推回去,求得首次达到并维持在稳态值正负2%的范围的值

r2 = r2 - 1;

end

settle_time = (r2-1)0005 % 调节时间

复制

求得:

rise_time = 06100

peak_time = 10450

max_overshoot = 03509

settle_time = 35350

复制

3 游动鼠标法:

游动鼠标法不适合用于plot()命令画出的图形,只能在非plot()函数输出的曲线上求取。

1获取必要数据

s = tf('s');

Gs = 3/(s^2+2s+10); % 构造 Gs

t = 0:0005:5;

step(Gs,t) % 画出图像

[y,x,t] = step(Gs,t);

[ymax,tp] = max(y);

ymax % 峰值

ym10 = ymax 01 % 峰值 10%

ym90 = ymax 09 % 峰值 90%

ystable = dcgain(Gs) % 稳态值

ys98 = ystable 098 % 稳态 -2%

ys102 = ystable 102 % 稳态 +2%

复制

得到图像并求得:

ymax = 04053

ym10 = 00405

ym90 = 03647

ystable = 03000

ys98 = 02940

ys102 = 03060

复制

2点击工具栏中的数据游标,在图中分别标出纵坐标为 ymax = 04053,ym10 = 00405,ym90 = 03647,ys98 = 02940,ys102 = 03060 的五点:

3收集图像中 Time 对应的 Amplitude 数据,并计算可得:

tr = 0783 - 0176 = 0607

tp = 104

ts = 353 (因为0295位于此波谷最低处,而0295>0294,故不取419)

σ% = (0405 - 03)/03 × 100% = 35%

下面是另外两个博客,和这个关系比较密切,关于 PID 算法解释的:

PID算法模型分析:基于温度控制

临界比例度法整定P、PI、PID控制器的参数的matlab算法实现

以上就是关于怎么在matlabGUI界面里的编辑文本框里动态显示系统时间全部的内容,包括:怎么在matlabGUI界面里的编辑文本框里动态显示系统时间、matlab循环求取峰值时间、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9818830.html

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

发表评论

登录后才能评论

评论列表(0条)

保存