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

📄 bodepidcompare.html

📁 这是一个PID自动调节的程序
💻 HTML
📖 第 1 页 / 共 2 页
字号:
0065 <span class="comment">% Ziegler &amp; Nichols with Step identification</span>
0066 [K,Ti,Td,N,b] = <a href="pid_tuning.html" class="code" title="function [K,Ti,Td,N,b] = pid_tuning(model,method,param,regStruct,As)">pid_tuning</a>(modelFOPDT,<span class="string">'ZN (OL)'</span>,[],<span class="string">'PID'</span>);
0067 Rff = K*(b+1./(Ti*s));
0068 Rfb = K*(1+1./(Ti*s)+(Td*s)./(1+Td*s/N));
0069 L = Rfb.*P;
0070 F = (Rff.*P)./(ones(1,length(P))+(Rfb.*P));
0071 S = 1./(ones(1,length(P))+(Rfb.*P));
0072 figure(Lfig)
0073 subplot(211), semilogx(w,20*log10(abs(L)),<span class="string">'b'</span>)
0074 subplot(212), semilogx(w,unwrap(angle(L))/pi*180,<span class="string">'b'</span>)
0075 figure(Ffig)
0076 subplot(211), semilogx(w,20*log10(abs(F)),<span class="string">'b'</span>)
0077 subplot(212), semilogx(w,unwrap(angle(F))/pi*180,<span class="string">'b'</span>)
0078 figure(Sfig)
0079 subplot(211), semilogx(w,20*log10(abs(S)),<span class="string">'b'</span>)
0080 subplot(212), semilogx(w,unwrap(angle(S))/pi*180,<span class="string">'b'</span>)
0081 
0082 <span class="comment">% Kappa-Tau with Ms = 2</span>
0083 <span class="comment">% in order to obtain better performance</span>
0084 [K,Ti,Td,N,b] = <a href="pid_tuning.html" class="code" title="function [K,Ti,Td,N,b] = pid_tuning(model,method,param,regStruct,As)">pid_tuning</a>(modelFOPDT,<span class="string">'KT'</span>,2,<span class="string">'PID'</span>);
0085 Rff = K*(b+1./(Ti*s));
0086 Rfb = K*(1+1./(Ti*s)+(Td*s)./(1+Td*s/N));
0087 L = Rfb.*P;
0088 F = (Rff.*P)./(ones(1,length(P))+(Rfb.*P));
0089 S = 1./(ones(1,length(P))+(Rfb.*P));
0090 figure(Lfig)
0091 subplot(211), hold on, semilogx(w,20*log10(abs(L)),<span class="string">'r'</span>)
0092 subplot(212), hold on, semilogx(w,unwrap(angle(L))/pi*180,<span class="string">'r'</span>)
0093 figure(Ffig)
0094 subplot(211), hold on, semilogx(w,20*log10(abs(F)),<span class="string">'r'</span>)
0095 subplot(212), hold on, semilogx(w,unwrap(angle(F))/pi*180,<span class="string">'r'</span>)
0096 figure(Sfig)
0097 subplot(211), hold on, semilogx(w,20*log10(abs(S)),<span class="string">'r'</span>)
0098 subplot(212), hold on, semilogx(w,unwrap(angle(S))/pi*180,<span class="string">'r'</span>)
0099 
0100 <span class="comment">% Internal Model Control with lambda = Tf/5</span>
0101 <span class="comment">% this means that the closed loop model is made five time faster than the</span>
0102 <span class="comment">% original (open loop model)</span>
0103 [K,Ti,Td,N,b] = <a href="pid_tuning.html" class="code" title="function [K,Ti,Td,N,b] = pid_tuning(model,method,param,regStruct,As)">pid_tuning</a>(modelFOPDT,<span class="string">'IMC'</span>,Tf/5,<span class="string">'PID'</span>);
0104 Rff = K*(b+1./(Ti*s));
0105 Rfb = K*(1+1./(Ti*s)+(Td*s)./(1+Td*s/N));
0106 L = Rfb.*P;
0107 F = (Rff.*P)./(ones(1,length(P))+(Rfb.*P));
0108 S = 1./(ones(1,length(P))+(Rfb.*P));
0109 figure(Lfig)
0110 subplot(211), hold on, semilogx(w,20*log10(abs(L)),<span class="string">'g'</span>)
0111 subplot(212), hold on, semilogx(w,unwrap(angle(L))/pi*180,<span class="string">'g'</span>)
0112 figure(Ffig)
0113 subplot(211), hold on, semilogx(w,20*log10(abs(F)),<span class="string">'g'</span>)
0114 subplot(212), hold on, semilogx(w,unwrap(angle(F))/pi*180,<span class="string">'g'</span>)
0115 figure(Sfig)
0116 subplot(211), hold on, semilogx(w,20*log10(abs(S)),<span class="string">'g'</span>)
0117 subplot(212), hold on, semilogx(w,unwrap(angle(S))/pi*180,<span class="string">'g'</span>)
0118 
0119 <span class="comment">% Ziegler &amp; Nichols with Relay identification</span>
0120 [K,Ti,Td,N,b] = <a href="pid_tuning.html" class="code" title="function [K,Ti,Td,N,b] = pid_tuning(model,method,param,regStruct,As)">pid_tuning</a>(modelPI,<span class="string">'ZN (CL)'</span>,[],<span class="string">'PID'</span>);
0121 Rff = K*(b+1./(Ti*s));
0122 Rfb = K*(1+1./(Ti*s)+(Td*s)./(1+Td*s/N));
0123 L = Rfb.*P;
0124 F = (Rff.*P)./(ones(1,length(P))+(Rfb.*P));
0125 S = 1./(ones(1,length(P))+(Rfb.*P));
0126 
0127 figure(Lfig)
0128 subplot(211), semilogx(w,20*log10(abs(L)),<span class="string">'m'</span>)
0129 set(gca,<span class="string">'Position'</span>, [0.1514 0.4858 0.7536 0.3916],<span class="keyword">...</span>
0130    <span class="string">'XColor'</span>,[0.4 0.4 0.4],<span class="string">'YColor'</span>,[0.4 0.4 0.4],<span class="keyword">...</span>
0131    <span class="string">'FontSize'</span>,8,<span class="keyword">...</span>
0132    <span class="string">'XTickLabel'</span>,[])
0133 title(<span class="string">'Bode Diagram - Open loop function'</span>,<span class="keyword">...</span>
0134    <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0135 ylabel(<span class="string">'Magnitude (dB)'</span>,<span class="keyword">...</span>
0136    <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0137 legend(<span class="string">'STEP + ZN(OL)'</span>,<span class="string">'STEP + KT'</span>,<span class="string">'STEP + IMC'</span>,<span class="string">'RELAY + ZN(CL)'</span>,4)
0138 subplot(212), semilogx(w,unwrap(angle(L))/pi*180,<span class="string">'m'</span>)
0139 set(gca,<span class="string">'Position'</span>,[0.1514 0.1100 0.7536 0.3472],<span class="keyword">...</span>
0140    <span class="string">'XColor'</span>,[0.4 0.4 0.4],<span class="string">'YColor'</span>,[0.4 0.4 0.4],<span class="keyword">...</span>
0141    <span class="string">'FontSize'</span>,8)
0142 ylabel(<span class="string">'Phase (deg)'</span>,<span class="keyword">...</span>
0143    <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0144 xlabel(<span class="string">'Frequency (rad/sec)'</span>,<span class="keyword">...</span>
0145     <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0146 
0147 figure(Ffig)
0148 subplot(211), semilogx(w,20*log10(abs(F)),<span class="string">'m'</span>)
0149 set(gca,<span class="string">'Position'</span>, [0.1514 0.4858 0.7536 0.3916],<span class="keyword">...</span>
0150    <span class="string">'XColor'</span>,[0.4 0.4 0.4],<span class="string">'YColor'</span>,[0.4 0.4 0.4],<span class="keyword">...</span>
0151    <span class="string">'FontSize'</span>,8,<span class="keyword">...</span>
0152    <span class="string">'XTickLabel'</span>,[])
0153 title(<span class="string">'Bode Diagram - Complementary sensitivity function'</span>,<span class="keyword">...</span>
0154    <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0155 ylabel(<span class="string">'Magnitude (dB)'</span>,<span class="keyword">...</span>
0156    <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0157 legend(<span class="string">'STEP + ZN(OL)'</span>,<span class="string">'STEP + KT'</span>,<span class="string">'STEP + IMC'</span>,<span class="string">'RELAY + ZN(CL)'</span>,4)
0158 subplot(212), semilogx(w,unwrap(angle(F))/pi*180,<span class="string">'m'</span>)
0159 set(gca,<span class="string">'Position'</span>,[0.1514 0.1100 0.7536 0.3472],<span class="keyword">...</span>
0160    <span class="string">'XColor'</span>,[0.4 0.4 0.4],<span class="string">'YColor'</span>,[0.4 0.4 0.4],<span class="keyword">...</span>
0161    <span class="string">'FontSize'</span>,8)
0162 ylabel(<span class="string">'Phase (deg)'</span>,<span class="keyword">...</span>
0163    <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0164 xlabel(<span class="string">'Frequency (rad/sec)'</span>,<span class="keyword">...</span>
0165     <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0166 
0167 figure(Sfig)
0168 subplot(211), semilogx(w,20*log10(abs(S)),<span class="string">'m'</span>)
0169 set(gca,<span class="string">'Position'</span>, [0.1514 0.4858 0.7536 0.3916],<span class="keyword">...</span>
0170    <span class="string">'XColor'</span>,[0.4 0.4 0.4],<span class="string">'YColor'</span>,[0.4 0.4 0.4],<span class="keyword">...</span>
0171    <span class="string">'FontSize'</span>,8,<span class="keyword">...</span>
0172    <span class="string">'XTickLabel'</span>,[])
0173 title(<span class="string">'Bode Diagram - Sensitivity function'</span>,<span class="keyword">...</span>
0174    <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0175 ylabel(<span class="string">'Magnitude (dB)'</span>,<span class="keyword">...</span>
0176    <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0177 legend(<span class="string">'STEP + ZN(OL)'</span>,<span class="string">'STEP + KT'</span>,<span class="string">'STEP + IMC'</span>,<span class="string">'RELAY + ZN(CL)'</span>,4)
0178 subplot(212), semilogx(w,unwrap(angle(S))/pi*180,<span class="string">'m'</span>)
0179 set(gca,<span class="string">'Position'</span>,[0.1514 0.1100 0.7536 0.3472],<span class="keyword">...</span>
0180    <span class="string">'XColor'</span>,[0.4 0.4 0.4],<span class="string">'YColor'</span>,[0.4 0.4 0.4],<span class="keyword">...</span>
0181    <span class="string">'FontSize'</span>,8)
0182 ylabel(<span class="string">'Phase (deg)'</span>,<span class="keyword">...</span>
0183    <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)
0184 xlabel(<span class="string">'Frequency (rad/sec)'</span>,<span class="keyword">...</span>
0185    <span class="string">'Color'</span>,[0 0 0],<span class="string">'FontSize'</span>,8)</pre></div>
<br>
<p><table bgcolor="#ffe4b0" border=0 width="100%" cellpadding=0 cellspacing=0><tr valign=top><td align=left width=20><a href="autogui.html"><img src="b_prev.gif" alt="Previous page" border=0 align=bottom></a>&nbsp;</td><td align=left>&nbsp;autogui</td><td>&nbsp;</td><td align=right>butterdesign&nbsp;</td><td align=right width=20><a href="butterdesign.html"><img src="b_next.gif" alt="Next page" border=0 align=bottom></a></td></tr></table>
<br>
<address>Generated on Wed 17-Mar-2004 09:29:44 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
</body>
</html>

⌨️ 快捷键说明

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