⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 autogui.html

📁 这是一个PID自动调节的程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
  <title>Description of autogui</title>
  <meta name="keywords" content="autogui">
  <meta name="description" content="AUTOGUI S-function for making a simple PID GUI">
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
  <meta name="robots" content="index, follow">
  <link type="text/css" rel="stylesheet" href="m2html.css">
</head>
<body>

<table border=0 width="100%" cellpadding=0 cellspacing=0><tr>
<td valign=baseline bgcolor="#ffe4b0"><b>AutotunerPID Toolkit</b></td>
<td valign=baseline bgcolor="#ffe4b0" align=right><a href="autopid_ref.html"><img src="b_prev.gif" alt="Previous page" border=0></a>&nbsp;&nbsp;&nbsp;<a href="bodePIDcompare.html"><img src="b_next.gif" alt="Next Page" border=0></a></td>
</tr>
</table>

<h1>autogui</h1>

<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="up.png"></a></h2>
<div class="box"><strong>Matlab S-function for making a simple PID GUI.</strong></div>

<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="up.png"></a></h2>
<div class="box"><strong>function [sys,x0,str,ts] = autogui(t,x,u,flag,RefBlock) </strong></div>

<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="up.png"></a></h2>
<div class="fragment">
  <pre class="comment">AUTOGUI S-function for making a simple PID GUI
 
   When the model autotunerPID.mdl is run, this S-function create a panel
   which closer resemble the layout of a typical real industrial autotuner
   (at least in the control options). 
   The upper part of the GUI is used to interact with the control system,
   by changing the set-point value and by reading the value of the process
   value and the control variable.  Moreover when used in MANUAL mode the
   control variable is under the direct control of the user.  The
   parameters area shows the parameter of the PID which can be changed 
   online (except for the derivative weight c which is fixed to 0.
   The last two areas allow to select the operating mode (AUTO/MANUAL) and
   the autotuning method, split in the selection of the identification
   method, the selection of the tuning method and the selection of the
   regulator structure.

   Everything started looking at PENDAN, an S-function for making pendulum
   animation

   Author:    William Spinelli (wspinell@elet.polimi.it)
   Copyright  2004 W.Spinelli
   $Revision: 1.0 $  $Date: 2004/02/27 12:00:00 $</pre>
</div>

<!-- crossreference -->
<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="up.png"></a></h2>
This function calls:
<ul style="list-style-image:url(matlabicon.gif)">
</ul>
This function is called by:
<ul style="list-style-image:url(matlabicon.gif)">
</ul>
<!-- crossreference -->

<h2><a name="_subfunctions"></a>SUBFUNCTIONS <a href="#_top"><img alt="^" border="0" src="up.png"></a></h2>
<ul style="list-style-image:url(matlabicon.gif)">
<li><a href="#_sub1" class="code">function [sys,x0,str,ts] = mdlInitializeSizes(RefBlock)</a></li><li><a href="#_sub2" class="code">function sys = mdlUpdate(t,x,u)</a></li><li><a href="#_sub3" class="code">function LocalDeleteBlock</a></li><li><a href="#_sub4" class="code">function LocalDeleteFigure</a></li><li><a href="#_sub5" class="code">function LocalSliderSP</a></li><li><a href="#_sub6" class="code">function LocalSliderCV</a></li><li><a href="#_sub7" class="code">function LocalEditCV</a></li><li><a href="#_sub8" class="code">function LocalClose</a></li><li><a href="#_sub9" class="code">function LocalAutotune</a></li><li><a href="#_sub10" class="code">function LocalMan</a></li><li><a href="#_sub11" class="code">function LocalAuto</a></li><li><a href="#_sub12" class="code">function LocalEditK</a></li><li><a href="#_sub13" class="code">function LocalEditTi</a></li><li><a href="#_sub14" class="code">function LocalEditTd</a></li><li><a href="#_sub15" class="code">function LocalEditN</a></li><li><a href="#_sub16" class="code">function LocalEditb</a></li><li><a href="#_sub17" class="code">function LocalEditSP</a></li><li><a href="#_sub18" class="code">function LocalIdentification</a></li><li><a href="#_sub19" class="code">function LocalTuning</a></li><li><a href="#_sub20" class="code">function LocalEditParam</a></li><li><a href="#_sub21" class="code">function LocalStructure</a></li><li><a href="#_sub22" class="code">function LocalPIDSets(time,ud,u)</a></li><li><a href="#_sub23" class="code">function LocalPIDInit(RefBlock)</a></li></ul>
<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="up.png"></a></h2>
<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [sys,x0,str,ts] = autogui(t,x,u,flag,RefBlock)</a>
0002 <span class="comment">%AUTOGUI S-function for making a simple PID GUI</span>
0003 <span class="comment">%</span>
0004 <span class="comment">%   When the model autotunerPID.mdl is run, this S-function create a panel</span>
0005 <span class="comment">%   which closer resemble the layout of a typical real industrial autotuner</span>
0006 <span class="comment">%   (at least in the control options).</span>
0007 <span class="comment">%   The upper part of the GUI is used to interact with the control system,</span>
0008 <span class="comment">%   by changing the set-point value and by reading the value of the process</span>
0009 <span class="comment">%   value and the control variable.  Moreover when used in MANUAL mode the</span>
0010 <span class="comment">%   control variable is under the direct control of the user.  The</span>
0011 <span class="comment">%   parameters area shows the parameter of the PID which can be changed</span>
0012 <span class="comment">%   online (except for the derivative weight c which is fixed to 0.</span>
0013 <span class="comment">%   The last two areas allow to select the operating mode (AUTO/MANUAL) and</span>
0014 <span class="comment">%   the autotuning method, split in the selection of the identification</span>
0015 <span class="comment">%   method, the selection of the tuning method and the selection of the</span>
0016 <span class="comment">%   regulator structure.</span>
0017 <span class="comment">%</span>
0018 <span class="comment">%   Everything started looking at PENDAN, an S-function for making pendulum</span>
0019 <span class="comment">%   animation</span>
0020 <span class="comment">%</span>
0021 <span class="comment">%   Author:    William Spinelli (wspinell@elet.polimi.it)</span>
0022 <span class="comment">%   Copyright  2004 W.Spinelli</span>
0023 <span class="comment">%   $Revision: 1.0 $  $Date: 2004/02/27 12:00:00 $</span>
0024 
0025 <span class="comment">% Plots every major integration step, but has no states of its own</span>
0026 <span class="keyword">switch</span> flag,
0027    
0028    <span class="comment">% Initialization</span>
0029    <span class="keyword">case</span> 0,
0030       [sys,x0,str,ts] = <a href="#_sub1" class="code" title="subfunction [sys,x0,str,ts] = mdlInitializeSizes(RefBlock)">mdlInitializeSizes</a>(RefBlock);
0031       <span class="comment">% Update</span>
0032    <span class="keyword">case</span> 2,
0033       sys = <a href="#_sub2" class="code" title="subfunction sys = mdlUpdate(t,x,u)">mdlUpdate</a>(t,x,u);
0034       <span class="comment">% Unused flags</span>
0035    <span class="keyword">case</span> { 1, 3, 4, 9 },
0036       sys = [];
0037       <span class="comment">% DeleteBlock</span>
0038    <span class="keyword">case</span> <span class="string">'DeleteBlock'</span>,
0039       <a href="#_sub3" class="code" title="subfunction LocalDeleteBlock">LocalDeleteBlock</a>
0040       <span class="comment">% DeleteFigure</span>
0041    <span class="keyword">case</span> <span class="string">'DeleteFigure'</span>,
0042       <a href="#_sub4" class="code" title="subfunction LocalDeleteFigure">LocalDeleteFigure</a>
0043       <span class="comment">% SliderSP</span>
0044    <span class="keyword">case</span> <span class="string">'SliderSP'</span>,
0045       <a href="#_sub5" class="code" title="subfunction LocalSliderSP">LocalSliderSP</a>
0046       <span class="comment">% EditSP</span>
0047    <span class="keyword">case</span> <span class="string">'EditSP'</span>,
0048       <a href="#_sub17" class="code" title="subfunction LocalEditSP">LocalEditSP</a>
0049       <span class="comment">% SliderCV</span>
0050    <span class="keyword">case</span> <span class="string">'SliderCV'</span>,
0051       <a href="#_sub6" class="code" title="subfunction LocalSliderCV">LocalSliderCV</a>
0052       <span class="comment">% EditCV</span>
0053    <span class="keyword">case</span> <span class="string">'EditCV'</span>,
0054       <a href="#_sub7" class="code" title="subfunction LocalEditCV">LocalEditCV</a>
0055       <span class="comment">% Close</span>
0056    <span class="keyword">case</span> <span class="string">'Close'</span>,
0057       <a href="#_sub8" class="code" title="subfunction LocalClose">LocalClose</a>
0058       <span class="comment">% Autotune</span>
0059    <span class="keyword">case</span> <span class="string">'Autotune'</span>,
0060       <a href="#_sub9" class="code" title="subfunction LocalAutotune">LocalAutotune</a>
0061       <span class="comment">% Manual</span>
0062    <span class="keyword">case</span> <span class="string">'Man'</span>,
0063       <a href="#_sub10" class="code" title="subfunction LocalMan">LocalMan</a>
0064       <span class="comment">% Auto</span>
0065    <span class="keyword">case</span> <span class="string">'Auto'</span>,
0066       <a href="#_sub11" class="code" title="subfunction LocalAuto">LocalAuto</a>
0067       <span class="comment">% EditK</span>
0068    <span class="keyword">case</span> <span class="string">'EditK'</span>,
0069       <a href="#_sub12" class="code" title="subfunction LocalEditK">LocalEditK</a>
0070       <span class="comment">% EditTi</span>
0071    <span class="keyword">case</span> <span class="string">'EditTi'</span>,
0072       <a href="#_sub13" class="code" title="subfunction LocalEditTi">LocalEditTi</a>
0073       <span class="comment">% EditTd</span>
0074    <span class="keyword">case</span> <span class="string">'EditTd'</span>,
0075       <a href="#_sub14" class="code" title="subfunction LocalEditTd">LocalEditTd</a>
0076       <span class="comment">% EditN</span>
0077    <span class="keyword">case</span> <span class="string">'EditN'</span>,
0078       <a href="#_sub15" class="code" title="subfunction LocalEditN">LocalEditN</a>
0079       <span class="comment">% Editb</span>
0080    <span class="keyword">case</span> <span class="string">'Editb'</span>,
0081       <a href="#_sub16" class="code" title="subfunction LocalEditb">LocalEditb</a>
0082       <span class="comment">% IdentMethod</span>
0083    <span class="keyword">case</span> <span class="string">'Identification'</span>,
0084       <a href="#_sub18" class="code" title="subfunction LocalIdentification">LocalIdentification</a>
0085       <span class="comment">% TuningMethpd</span>
0086    <span class="keyword">case</span> <span class="string">'Tuning'</span>,
0087       <a href="#_sub19" class="code" title="subfunction LocalTuning">LocalTuning</a>
0088       <span class="comment">% Structure</span>
0089    <span class="keyword">case</span> <span class="string">'Structure'</span>,
0090       <a href="#_sub21" class="code" title="subfunction LocalStructure">LocalStructure</a>
0091       <span class="comment">% EditParam</span>
0092    <span class="keyword">case</span> <span class="string">'EditParam'</span>,
0093       <a href="#_sub20" class="code" title="subfunction LocalEditParam">LocalEditParam</a>
0094       <span class="comment">% Unexpected flags</span>
0095    <span class="keyword">otherwise</span>
0096       error([<span class="string">'Unhandled flag = '</span>,num2str(flag)]);
0097 <span class="keyword">end</span>
0098 <span class="comment">% end autogui</span>
0099 
0100 <span class="comment">%=============================================================================</span>
0101 <span class="comment">% mdlInitializeSizes</span>
0102 <span class="comment">% Return the sizes, initial conditions, and sample times for the S-function.</span>
0103 <span class="comment">%=============================================================================</span>
0104 <a name="_sub1" href="#_subfunctions" class="code">function [sys,x0,str,ts] = mdlInitializeSizes(RefBlock)</a>
0105 <span class="comment">% initialize parameters (setpoint)</span>
0106 set_param(get_param([get_param(gcs,<span class="string">'Parent'</span>) <span class="string">'/'</span> RefBlock],<span class="string">'Handle'</span>),<span class="keyword">...</span>
0107    <span class="string">'Value'</span>,<span class="string">'0'</span>);
0108 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -