《自动控制原理》(胥布工版)习题3-4(使用GUI)
来源:互联网 发布:被收购的中国品牌 知乎 编辑:程序博客网 时间:2024/04/30 11:54
刚接触GUI,打算设计一个GUI,带有一个滑动条,可以滑动选择不同的τ值,然后GUI根据不同的τ值画出系统的传递函数。
第一步,要编写一个function,求出系统的传递函数,该function的输出参数为s和τ,输出参数为系统传递函数Ts。
exe_3_4.m文件代码如下:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Exercise 3-4 of the <Principle of Automatic Control>, SCUT, Page 93 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function Ts = exe_3_4( s, taud )tau = taud; % the independent variable num1 = [0, 0, 8]; % numerator of Gp(s)den1 = [1, 1, 0]; % denominator of Gp(s)Gps = tf( num1, den1 ); % open-loop transfer functionnum2 = [0, 1, 1]; % numerator of Gc(s)den2 = [0, 1, 0]; % denominator of Gc(s)Gcs = tf( num2, den2 ); % open-loop transfer functionnum3 = [0, tau, 0]; % numerator of H(s)den3 = [0, 0, 1]; % denominator of H(s)Hs = tf( num3, den3 ); % open-loop transfer functionGs = feedback( Gps, Hs, -1 ); % system transfer function, negative feedbackGls = series( Gcs, Gs ); % connect 2 models in seriesGfs = feedback( Gls, 1, -1 ); % system transfer function, negative feedbacksys_num = cell2mat(Gfs.num); % get the sys_num from cell(Gfs.num)sys_den = cell2mat(Gfs.den); % get the sys_den from cell(Gfs.den)num = sys_num(1,1)*s.^3 + sys_num(1,2)*s.^2 + sys_num(1,3)*s + sys_num(1,4);% the real system numerator with independent variableden = sys_den(1,1)*s.^3 + sys_den(1,2)*s.^2 + sys_den(1,3)*s + sys_den(1,4);% the real system denominator with independent variableTs = num./den; % the transfer function of the whole systemend
然后使用MATLAB的GUIDE设计GUI界面入下图所示:
然后打开滑动条的回调函数,增加以下代码:
function slider1_Callback(hObject, eventdata, handles)% hObject handle to slider1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'Value') returns position of slider% get(hObject,'Min') and get(hObject,'Max') to determine range of sliderval = get( hObject, 'value' );set( handles.text1, 'String', num2str(val,'%5.2f') );s = 0:0.1:100; Ts = exe_3_4( s, val );axes(handles.axes1);plot( s, Ts );
最终的效果如下图所示:
0 0
- 《自动控制原理》(胥布工版)习题3-4(使用GUI)
- 《自动控制原理》(胥布工版)习题2-21
- 《自动控制原理》(胥布工版)二阶系统时域分析(使用GUI)
- 广东工业大学自动化(自动控制原理)作者:Haven
- 自动控制原理
- 自动控制(二)
- 自动控制 (三)
- 自动控制 (四)
- 自动控制(二)
- 自动控制 (三)
- 自动控制 (四)
- 考研院校专业课选择及自动控制原理备考的宏观战略分析(一)
- 考研院校专业课选择及自动控制原理备考的宏观战略分析(二)
- 自动控制原理学习总结
- 自动控制原理01
- 自动控制原理04
- 阅《自动控制原理》感想
- 自动控制中的泛函分析(一)
- 2014年Unity亚洲开发者大会
- 【JAXP】SAX方式解析XML文件
- 【MySQL】基础知识小结
- 面试提问
- Struts-2.3.16 环境配置
- 《自动控制原理》(胥布工版)习题3-4(使用GUI)
- 传送门 (持续更新中,汇总自其他博客)
- 我的地盘我做主
- Android 常用RGB值以及中英文名称
- [Firefox插件]Google搜索提速插件推荐
- 关于异常:SkImageDecoder::Factory returned null
- 进程间通讯
- 虚函数表是在编译的时候还是运行的时候产生的
- 动态规划之背包01