过程控制基于matlab GUI串级控制含Matlab源码 2385期

Posted 海神之光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过程控制基于matlab GUI串级控制含Matlab源码 2385期相关的知识,希望对你有一定的参考价值。

⛄一、简介

1 交互系统整体外观展示
该系统基于 MATLAB GUI 与 Simulink 联合开发, 实现对串级控制系统特性的研究与分析。学生在学习串级控 制有关知识后可使用该应用进行知识回顾。界面提供许多功能按钮以及输入输出窗口, 方便参数设置。整个系统分 为三大部分:串级控制特性——提升工作频率演示、串级控制特性——提升抗扰能力演示、串级控制主控制器和副 控制器参数整定演示。(注:验证参数可根据这张图片中的数据进行设定)

2 串级控制特性——提升工作频率演示
这一部分开发的基础知识源于《过程控制系统》 P121- 124 有关串级控制提升工作频率的理论讲解。 模块包含三 个子部分:图像绘制界面、控制面板、参数显示部分。图像绘制界面绘制串级控制与单回路控制在阻尼相同时的阶 跃响应曲线与各自的闭环 bode 图。控制面板可以输入影响串级控制提升工作频率的几个重要参数 (To1/To2, K2),即 主对象与副对象之间时间常数比值以及副控制器增益, 另外K1 也可作为输入。参数显示部分从 3 个方面比较串级控 制与单回路控制差别:工作频率、闭环带宽、过渡时间。同时, 还给出了串级控制较单回路控制等效时间常数和等 效增益的变化。在参数显示中,创新地将工作频率提升的本质归结到闭环带宽的提升,这一点是书上没有讲到的。 图像绘制界面可以绘制串级控制与单回路控制的时域响应和频域响应。参数面板如下图,既有时域信息也有频域信
息。

有关参数的计算原理可参考《自动控制原理》第三章时域理论以及第五章频域理论。等效时间常数和等效增益 计算参考《过程控制系统》P122。

3 串级控制特性——提升抗扰能力演示
这一部分基于 MATLAB 与 Simulink 联合开发,MATLAB GUI 运行 Simulink 模型后将数据传至 Workspace , GUI 再调用Workspace 数据, 最后进行图像的绘制。该模块包含三个子部分:图像绘制界面、扰动值和扰动时间给 定界面、功能按钮部分。涉及到的理论知识参考《过程控制系统》P124- 126 有关串级控制抗扰能力的讲述。功能按 钮部分点击“Simulink 开始仿真”即可开始仿真。第二个按钮可查看 Simulink 模型示意图,第三个按钮点击后可显
示仿真中串级控制和单回路控制的系统方框图,方便使用者对应参数在实际模型中所处位置,点击后弹出窗口:

第四个按钮点击后会显示在这一部分默认使用的系统参数。给定好恒值干扰大小以及作用时间后点击“Simulink 开
始仿真”,稍微等待一段时间即可得到图像(图中虚线位置为扰动加入时间点)。

图中虚线表示干扰开始作用的时间,该演示程序添加了数据游标等工具方便使用者对图像进行细致观察。

4 串级控制主控制器和副控制器参数整定演示
这一部分同样基于 Simulink 与MATLAB 进行联合仿真并计算。涉及到的知识参考《过程控制系统》 P129, 133- 135,以及一些优化算法知识。根据 P129 页有关“主副调节器控制规律的选择”所述, 这一部分所使用的串级控制 模型中主控制器为 PI (比例-积分),副控制器为 P (比例)。该模块包含 5 个子部分: 优化后串级控制输出响应曲线绘 制、优化后串级控制 PI 控制器输出响应曲线、给定模型参数部分、经优化后 PI 控制器,P 控制器参数值以及开始 仿真按钮。
参数的选择使用无梯度优化的方法, 目标函数选用性能优异的 ITAE 指标 (这一部分参考《控制系统仿真与 CAD》):
为了更好地模拟实际情况,控制器中积分项带限幅输出且控制器输出带相同限幅输出, 同时考虑到阀门全开状 态下流量有上限,因此阀门输出带限幅,这些参数都可以在整定前输入界面。

⛄二、部分源代码

function varargout = demo(varargin)
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @demo_OpeningFcn, …
‘gui_OutputFcn’, @demo_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin1)
gui_State.gui_Callback = str2func(varargin1);
end

if nargout
[varargout1:nargout] = gui_mainfcn(gui_State, varargin:);
else
gui_mainfcn(gui_State, varargin:);
end
end
% End initialization code - DO NOT EDIT

% — Executes just before demo is made visible.
function demo_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to demo (see VARARGIN)

% Choose default command line output for demo
handles.output = hObject;

% Update handles structure
axes(handles.axes1);grid on;
axes(handles.axes3);grid on;
axes(handles.axes4);grid on;
axes(handles.axes5);grid on;
%初始化串级控制参数
handles.K01 = 1;handles.Km1 = 5;handles.K02 = 1;handles.Km2 = 1;
handles.Kv = 1;
guidata(hObject, handles);
end

% — Outputs from this function are returned to the command line.
function varargout = demo_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout1 = handles.output;
end

function edit1_Callback(hObject, eventdata, handles)
% Hints: get(hObject,‘String’) returns contents of edit1 as text
% str2double(get(hObject,‘String’)) returns contents of edit1 as a double
T01 = get(handles.edit1,‘String’);
T01 = str2double(T01);
handles.T01 = T01;
guidata(hObject,handles);
end

% — Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))
set(hObject,‘BackgroundColor’,‘white’);
end
end

function edit2_Callback(hObject, eventdata, handles)
% Hints: get(hObject,‘String’) returns contents of edit2 as text
% str2double(get(hObject,‘String’)) returns contents of edit2 as a double
T02 = get(handles.edit2,‘String’);
T02 = str2double(T02);
handles.T02 = T02;
guidata(hObject,handles);
end

⛄三、运行结果


⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]吴成渝,王超,李斌.模糊自适应PID串级控制在主汽温控制中的应用[J].电子设计工程. 2018,26(22)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

以上是关于过程控制基于matlab GUI串级控制含Matlab源码 2385期的主要内容,如果未能解决你的问题,请参考以下文章

水箱控制基于matlab GUI PID水箱控制系统含Matlab源码 2099期

数学建模基于matlab GUI干线交通控制方法含Matlab源码 1259期

控制仿真基于matlab GUI飞机俯仰角控制模型仿真含Matlab源码 102期

语音识别基于matlab GUI语音识别信号灯图像模拟控制含Matlab源码 757期

飞行器基于matlab GUI四旋翼飞行器PID控制仿真含Matlab源码 1279期

飞行器基于matlab GUI四旋飞行器模型含Matlab源码 2075期