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

📄 autogui.html

📁 this file update PID parameters
💻 HTML
📖 第 1 页 / 共 5 页
字号:
0461 
0462 <span class="comment">% time field</span>
0463 set(ud.TimeField,<span class="keyword">...</span>
0464    <span class="string">'String'</span>,num2str(time));
0465 <span class="comment">% process value &amp; setpoint</span>
0466 set(ud.PV,<span class="keyword">...</span>
0467    <span class="string">'YData'</span>,[0 PVValue PVValue 0]);
0468 set(ud.PVField,<span class="keyword">...</span>
0469    <span class="string">'String'</span>,num2str(PVValue,<span class="string">'%1.4f'</span>));
0470 set(ud.RefMark,<span class="keyword">...</span>
0471    <span class="string">'YData'</span>,[SPValue+0.25 SPValue SPValue-0.25]);
0472 set(ud.SlideSP,<span class="keyword">...</span>
0473    <span class="string">'Value'</span>,SPValue);
0474 set(ud.EditSP,<span class="keyword">...</span>
0475    <span class="string">'String'</span>,num2str(SPValue,<span class="string">'%1.4f'</span>));
0476 <span class="comment">% process value &amp; setpoint</span>
0477 set(ud.CV,<span class="keyword">...</span>
0478    <span class="string">'YData'</span>,[0 CVValue CVValue 0]);
0479 <span class="keyword">if</span> ~AUTOTUNE
0480    set(ud.SlideCV,<span class="keyword">...</span>
0481       <span class="string">'Value'</span>,CVValue);
0482    set(ud.EditCV,<span class="keyword">...</span>
0483       <span class="string">'String'</span>,num2str(CVValue,<span class="string">'%1.4f'</span>)); 
0484 <span class="keyword">end</span>
0485 <span class="keyword">if</span> ~AUTOTUNE &amp; INACTIVE
0486    <span class="comment">% Autotuning process completed (update parameters and set the GUI</span>
0487    <span class="comment">% active)</span>
0488    <span class="comment">% PID parameters</span>
0489    set(ud.SlideSP,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0490    set(ud.EditSP,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0491    <span class="keyword">if</span> ~AUTOMAN
0492       set(ud.SlideCV,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0493       set(ud.EditCV,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0494    <span class="keyword">end</span>
0495    set(ud.Man,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0496    set(ud.Auto,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0497    set(ud.EditK,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0498    set(ud.EditTi,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0499    set(ud.EditTd,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0500    set(ud.Editb,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0501    set(ud.EditN,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0502    set(ud.Ident,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0503    set(ud.Tuning,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0504    set(ud.TuningParam,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0505    set(ud.Structure,<span class="string">'Enable'</span>,<span class="string">'on'</span>);
0506    set(ud.EditK,<span class="keyword">...</span>
0507       <span class="string">'String'</span>,num2str(PIDPARAMETERS(1)));
0508    set(ud.EditTi,<span class="keyword">...</span>
0509       <span class="string">'String'</span>,num2str(PIDPARAMETERS(2)));
0510    set(ud.EditTd,<span class="keyword">...</span>
0511       <span class="string">'String'</span>,num2str(PIDPARAMETERS(3)));
0512    set(ud.EditN,<span class="keyword">...</span>
0513       <span class="string">'String'</span>,num2str(PIDPARAMETERS(4)));
0514    set(ud.Editb,<span class="keyword">...</span>
0515       <span class="string">'String'</span>,num2str(PIDPARAMETERS(5)));
0516    INACTIVE = 0;
0517 <span class="keyword">end</span>
0518 
0519 <span class="comment">% Force plot to be drawn</span>
0520 pause(0), drawnow
0521 <span class="comment">% end LocalPIDSets</span>
0522 
0523 
0524 <span class="comment">%=============================================================================</span>
0525 <span class="comment">% LocalPIDInit</span>
0526 <span class="comment">% Local function to initialize the PID GUI animation.  If the animation</span>
0527 <span class="comment">% window already exists, it is brought to the front.  Otherwise, a new</span>
0528 <span class="comment">% figure window is created.</span>
0529 <span class="comment">%=============================================================================</span>
0530 <a name="_sub23" href="#_subfunctions" class="code">function LocalPIDInit(RefBlock)</a>
0531 <span class="comment">% The name of the reference is derived from the name of the</span>
0532 <span class="comment">% subsystem block that owns the PID animation S-function block.</span>
0533 <span class="comment">% This subsystem is the current system and is assumed to be the same</span>
0534 <span class="comment">% layer at which the reference block resides.</span>
0535 sys = get_param(gcs,<span class="string">'Parent'</span>);
0536 
0537 <span class="keyword">global</span> AUTOTUNE
0538 <span class="keyword">global</span> AUTOMAN
0539 <span class="keyword">global</span> PIDPARAMETERS
0540 <span class="keyword">global</span> IDENTIFICATION_METHOD
0541 <span class="keyword">global</span> TUNING_METHOD
0542 <span class="keyword">global</span> TUNING_PARAM
0543 <span class="keyword">global</span> TUNING_STRUCTURE
0544 <span class="keyword">global</span> INACTIVE
0545 
0546 INACTIVE = 1;
0547 
0548 IDENTIFICATION_METHOD = <span class="string">'STEP'</span>;
0549 TUNING_METHOD = <span class="string">'KT'</span>;
0550 TUNING_PARAM = 1.4;
0551 TUNING_STRUCTURE  =<span class="string">'PID'</span>;
0552 
0553 AUTOTUNE = 0;
0554 AUTOMAN  = 1;
0555 
0556 TimeClock = 0;
0557 PVValue = 0;
0558 SPValue = str2num(get_param([sys <span class="string">'/'</span> RefBlock],<span class="string">'Value'</span>));
0559 CVValue = 0;
0560 
0561 <span class="comment">% The animation figure handle is stored in the PID block's UserData.</span>
0562 <span class="comment">% If it exists, initialize all the fields</span>
0563 Fig = get_param(gcbh,<span class="string">'UserData'</span>);
0564 <span class="keyword">if</span> ishandle(Fig),
0565    FigUD = get(Fig,<span class="string">'UserData'</span>);
0566    
0567    <span class="comment">% time field</span>
0568    set(FigUD.TimeField,<span class="keyword">...</span>
0569       <span class="string">'String'</span>,num2str(TimeClock));
0570    <span class="comment">% process value &amp; set point</span>
0571    set(FigUD.PV,<span class="keyword">...</span>
0572       <span class="string">'YData'</span>,[0 PVValue PVValue 0]);
0573    set(FigUD.PVField,<span class="keyword">...</span>
0574       <span class="string">'String'</span>,num2str(PVValue));
0575    set(FigUD.RefMark,<span class="keyword">...</span>
0576       <span class="string">'YData'</span>,[SPValue+0.25 SPValue SPValue-0.25]);
0577    set(FigUD.SlideSP,<span class="keyword">...</span>
0578       <span class="string">'Value'</span>,0);
0579    set(FigUD.EditSP,<span class="keyword">...</span>
0580       <span class="string">'String'</span>,num2str(PVValue));
0581    <span class="comment">% control variable</span>
0582    set(FigUD.CV,<span class="keyword">...</span>
0583       <span class="string">'YData'</span>,[0 CVValue CVValue 0]);
0584    set(FigUD.EditCV,<span class="keyword">...</span>
0585       <span class="string">'String'</span>,num2str(CVValue),<span class="keyword">...</span>
0586       <span class="string">'Enable'</span>,<span class="string">'off'</span>);
0587    set(FigUD.SlideCV,<span class="keyword">...</span>
0588       <span class="string">'Value'</span>,CVValue,<span class="keyword">...</span>
0589       <span class="string">'Enable'</span>,<span class="string">'inactive'</span>);
0590    <span class="comment">% auto/man selector</span>
0591    set(FigUD.Man,<span class="keyword">...</span>
0592       <span class="string">'Value'</span>,0);
0593    set(FigUD.Auto,<span class="keyword">...</span>
0594       <span class="string">'Value'</span>,1);
0595    <span class="comment">% PID parameters</span>
0596    set(FigUD.EditK,<span class="keyword">...</span>
0597       <span class="string">'String'</span>,num2str(PIDPARAMETERS(1)),<span class="keyword">...</span>
0598       <span class="string">'Enable'</span>,<span class="string">'on'</span>);
0599    set(FigUD.EditTi,<span class="keyword">...</span>
0600       <span class="string">'String'</span>,num2str(PIDPARAMETERS(2)),<span class="keyword">...</span>
0601       <span class="string">'Enable'</span>,<span class="string">'on'</span>);
0602    set(FigUD.EditTd,<span class="keyword">...</span>
0603       <span class="string">'String'</span>,num2str(PIDPARAMETERS(3)),<span class="keyword">...</span>
0604       <span class="string">'Enable'</span>,<span class="string">'on'</span>);
0605    set(FigUD.EditN,<span class="keyword">...</span>
0606       <span class="string">'String'</span>,num2str(PIDPARAMETERS(4)),<span class="keyword">...</span>
0607       <span class="string">'Enable'</span>,<span class="string">'on'</span>);
0608    set(FigUD.Editb,<span class="keyword">...</span>
0609       <span class="string">'String'</span>,num2str(PIDPARAMETERS(5)),<span class="keyword">...</span>
0610       <span class="string">'Enable'</span>,<span class="string">'on'</span>);
0611    <span class="comment">% autotuning</span>
0612    set(FigUD.Ident,<span class="keyword">...</span>
0613       <span class="string">'Value'</span>,1,<span class="keyword">...</span>
0614       <span class="string">'Enable'</span>,<span class="string">'on'</span>);
0615    set(FigUD.Tuning,<span class="keyword">...</span>
0616       <span class="string">'Value'</span>,2,<span class="keyword">...</span>
0617       <span class="string">'Enable'</span>,<span class="string">'on'</span>);
0618    set(FigUD.Structure,<span class="keyword">...</span>
0619       <span class="string">'Value'</span>,1,<span class="keyword">...</span>
0620       <span class="string">'Enable'</span>,<span class="string">'on'</span>);
0621    set(FigUD.TunParText,<span class="keyword">...</span>
0622       <span class="string">'String'</span>,<span class="string">'Ms '</span>);
0623    set(FigUD.TuningParam,<span class="keyword">...</span>
0624       <span class="string">'Style'</span>,<span class="string">'popupmenu'</span>,<span class="keyword">...</span>
0625       <span class="string">'String'</span>,[<span class="string">'1.4'</span>;<span class="string">'2.0'</span>],<span class="keyword">...</span>
0626       <span class="string">'Value'</span>,1,<span class="keyword">...</span>
0627       <span class="string">'Enable'</span>,<span class="string">'on'</span>,<span class="keyword">...</span>
0628       <span class="string">'Visible'</span>,<span class="string">'on'</span>);
0629    
0630    <span class="comment">% bring it to the front</span>
0631    figure(Fig);
0632    <span class="keyword">return</span>
0633 <span class="keyword">end</span>
0634 
0635 <span class="comment">% the animation figure doesn't exist, create a new one and store its</span>
0636 <span class="comment">% handle in the animation block's UserData</span>

⌨️ 快捷键说明

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