Skip to content

Commit 801f825

Browse files
author
firebird007
committed
blog update
1 parent 1c6062f commit 801f825

File tree

14 files changed

+507
-50
lines changed

14 files changed

+507
-50
lines changed

2018/04/16/matlab-intro01/index.html

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
<title>matlab_intro01 | firebird&#39;s home</title>
77
<meta name="author" content="firebird">
88

9-
<meta name="description" content="¶第二次上机安排
9+
<meta name="description" content="¶第二次上机安排 (第7周)
1010
¶(1) 用plot绘制曲线:
1111
$y=e^{-t/3}sin2t$
12-
123456t = linspace(0,pi,1e2); % 定义变量y = exp(t/3).*sin(2*t); % 相应的y向量plot(">
12+
123456t = linspace(0,pi,1e2); % 定义变量y = exp(t/3).*sin(2*t); % 相应的y向">
1313

1414

1515
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@@ -146,7 +146,7 @@ <h1 class="title title-inverse "> matlab_intro01</h1>
146146
<div class="mypage">
147147

148148

149-
<h2 id="第二次上机安排"><a class="header-anchor" href="#第二次上机安排"></a><em>第二次上机安排</em></h2>
149+
<h2 id="第二次上机安排-第7周"><a class="header-anchor" href="#第二次上机安排-第7周"></a><em>第二次上机安排 (第7周)</em></h2>
150150
<h3 id="1-用plot绘制曲线:"><a class="header-anchor" href="#1-用plot绘制曲线:"></a>(1) 用plot绘制曲线:</h3>
151151
<p>$y=e^{-t/3}sin2t$</p>
152152
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">t = linspace(0,pi,1e2); % 定义变量</span><br><span class="line">y = exp(t/3).*sin(2*t); % 相应的y向量</span><br><span class="line">plot(t,y,&apos;-r&apos;,&apos;LineWidth&apos;,2); </span><br><span class="line">axis(0,4*pi,-1,1);</span><br><span class="line">xlabel(&apos;t&apos;);</span><br><span class="line">ylabel(&apos;y&apos;);</span><br></pre></td></tr></table></figure>
@@ -176,11 +176,23 @@ <h4 id="b-数值计算-采用ode45"><a class="header-anchor" href="#b-数值计
176176
<p>$dy(2)=u’’=\frac{1}{C}[\frac{d i_s(t)}{dt}-\frac{1}{R}\frac{du}{dt}-\frac{1}{L}u] =\frac{1}{C}[\frac{d i_s(t)}{dt}-\frac{1}{R}y(2) - \frac{1}{L}y(1)]$</p>
177177
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">function dydt = odefcn(t,y,R,L,C)</span><br><span class="line">% filename: odefun.m</span><br><span class="line">% dydt(1) = u&apos;;</span><br><span class="line">% dydt(2) = u&quot;;</span><br><span class="line"></span><br><span class="line"> % dis=d(is)/dt</span><br><span class="line"> function Dis = dis(t)</span><br><span class="line"> Dis = -0.2*1e3*exp(-1e3*t); </span><br><span class="line"> end</span><br><span class="line"></span><br><span class="line">dydt = zeros(2,1);</span><br><span class="line">dydt(1) = y(2);</span><br><span class="line">dydt(2) = 1/C*(dis(t)-y(2)/R-y(1)/L);</span><br><span class="line">dydt = [dydt(1); dydt(2)];</span><br><span class="line"></span><br><span class="line">end</span><br></pre></td></tr></table></figure>
178178
<h5 id="主程序:"><a class="header-anchor" href="#主程序:"></a>主程序:</h5>
179-
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">% driver for ode function</span><br><span class="line">% filename: driver.m</span><br><span class="line">% firebird@TYUT</span><br><span class="line"></span><br><span class="line">clear all</span><br><span class="line">close all</span><br><span class="line"></span><br><span class="line">format long;</span><br><span class="line"></span><br><span class="line">R = 300; % Resistance</span><br><span class="line">L = 2.5e-3; % Inductance</span><br><span class="line">C = 1e-6; % Capacitor </span><br><span class="line"></span><br><span class="line">tspan = [0 1e-3];</span><br><span class="line">y0 = [0 0.2/C];</span><br><span class="line">[t,y] = ode45(@(t,y) odefcn(t,y,R,L,C), tspan, y0);</span><br><span class="line">u=y(:,1);</span><br><span class="line">% u&apos;=y(:,2);</span><br><span class="line"></span><br><span class="line">% Cumulative trapezoidal numerical integration</span><br><span class="line">iL = 1/L*cumtrapz(t,u); % iL = int(u)/L</span><br><span class="line"></span><br><span class="line">plot(t,iL,&apos;k&apos;,&apos;linewidth&apos;,2);</span><br><span class="line">xlabel(&apos;time[s]&apos;,&apos;fontsize&apos;,18);</span><br><span class="line">ylabel(&apos;i_L [A]&apos;,&apos;fontsize&apos;,18);</span><br><span class="line">title(&apos;i_L(t) = 1/L*\int_&#123;0&#125;^&#123;t&#125;(u)&apos;,&apos;fontsize&apos;,18);</span><br><span class="line"></span><br></pre></td></tr></table></figure>
179+
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">% driver for ode function</span><br><span class="line">% filename: driver.m</span><br><span class="line">% firebird@TYUT</span><br><span class="line"></span><br><span class="line">clear all</span><br><span class="line">close all</span><br><span class="line"></span><br><span class="line">format long;</span><br><span class="line"></span><br><span class="line">R = 300; % Resistance</span><br><span class="line">L = 2.5e-3; % Inductance</span><br><span class="line">C = 1e-6; % Capacitor </span><br><span class="line"></span><br><span class="line">tspan = [0 1e-3];</span><br><span class="line">y0 = [0 0.2/C];</span><br><span class="line">[t,y] = ode45(@(t,y) odefcn(t,y,R,L,C), tspan, y0);</span><br><span class="line">u=y(:,1);</span><br><span class="line">% u&apos;=y(:,2);</span><br><span class="line"></span><br><span class="line">% Cumulative trapezoidal numerical integration</span><br><span class="line">iL = 1/L*cumtrapz(t,u); % iL = int(u)/L</span><br><span class="line"></span><br><span class="line">plot(t,iL,&apos;k&apos;,&apos;linewidth&apos;,2);</span><br><span class="line">xlabel(&apos;time[s]&apos;,&apos;fontsize&apos;,18);</span><br><span class="line">ylabel(&apos;i_L [A]&apos;,&apos;fontsize&apos;,18);</span><br><span class="line">title(&apos;i_L(t) = 1/L*\int_&#123;0&#125;^&#123;t&#125;udt&apos;,&apos;fontsize&apos;,18);</span><br><span class="line"></span><br></pre></td></tr></table></figure>
180180
<h4 id="c-思考:-改变电阻-电感或者电容-参数观察-i-l-t"><a class="header-anchor" href="#c-思考:-改变电阻-电感或者电容-参数观察-i-l-t"></a>c. 思考: 改变电阻(电感或者电容),参数观察$i_L(t)$</h4>
181-
<h3 id="5-让-doc-和-help两个命令成为用matlab的习惯"><a class="header-anchor" href="#5-让-doc-和-help两个命令成为用matlab的习惯"></a>(5) 让 doc 和 help两个命令成为用matlab的习惯!</h3>
182-
<p>请同学们自己在command window输入: doc cumtrapz 或者 help cumtrapz</p>
183-
<p>学习cumtrapz如何使用。</p>
181+
<h3 id="5-rlc串联电路"><a class="header-anchor" href="#5-rlc串联电路"></a>(5) RLC串联电路</h3>
182+
<p>稳压源电压$U_s=10$V</p>
183+
<p>已知参数: $k=3,a=2,\omega=1,L=0.5H, C=1F$</p>
184+
<p>由KVL得:<br>
185+
$L\frac{di}{dt} + Ri +\frac{1}{C}\int^{t}_0i(t)dt = U_s$</p>
186+
<p>上述方程求导得二阶微分方程: $L\frac{d<sup>2i}{dt</sup>2} + R\frac{di}{dt} +\frac{1}{C}i = 0$</p>
187+
<p>对于RLC电路零状态响应的初始条件: $i(0+)=0$, $\frac{di(0+)}{dt}=\frac{U_s}{L}$</p>
188+
<h4 id="采用ode数值求解"><a class="header-anchor" href="#采用ode数值求解"></a>采用ode数值求解</h4>
189+
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre></td><td class="code"><pre><span class="line">% RLC series circuit</span><br><span class="line">% filename: RLC_series.m</span><br><span class="line">% firebird@TYUT</span><br><span class="line"></span><br><span class="line">clear all</span><br><span class="line">close all</span><br><span class="line"></span><br><span class="line">format long;</span><br><span class="line"></span><br><span class="line">R = 300; % Resistance</span><br><span class="line">L = 2.5e-3; % Inductance</span><br><span class="line">C = 1e-6; % Capacitor </span><br><span class="line">Us = 10; % voltage source </span><br><span class="line"></span><br><span class="line">tspan = [0 1e-3*2];</span><br><span class="line">y0 = [0 Us/L];</span><br><span class="line">[t,y] = ode45(@(t,y) odefcn(t,y,R,L,C), tspan, y0);</span><br><span class="line">icur=y(:,1); % current </span><br><span class="line">% icur&apos;=y(:,2);</span><br><span class="line"></span><br><span class="line">% Cumulative trapezoidal numerical integration</span><br><span class="line">uc = 1/C*cumtrapz(t,icur); % uc = int(icur)/C</span><br><span class="line"></span><br><span class="line">plot(t,uc,&apos;k&apos;,&apos;linewidth&apos;,2);</span><br><span class="line">xlabel(&apos;time[s]&apos;,&apos;fontsize&apos;,18);</span><br><span class="line">ylabel(&apos;u_c [V]&apos;,&apos;fontsize&apos;,18);</span><br><span class="line">title(&apos;u_c(t) = 1/c*\int_&#123;0&#125;^&#123;t&#125;idt&apos;,&apos;fontsize&apos;,18);</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">function dydt = odefcn(t,y,R,L,C)</span><br><span class="line">% dydt(1) = i&apos;;</span><br><span class="line">% dydt(2) = i&quot;;</span><br><span class="line">dydt = zeros(2,1);</span><br><span class="line">dydt(1) = y(2);</span><br><span class="line">dydt(2) = -1/L*(y(2)*R + y(1)/C);</span><br><span class="line">dydt = [dydt(1); dydt(2)];</span><br><span class="line">end</span><br></pre></td></tr></table></figure>
190+
<h4 id="思考体"><a class="header-anchor" href="#思考体"></a>思考体</h4>
191+
<p>如何计算RC,RL电路?</p>
192+
<p><em>Hint: 还是采用RLC串联电路计算方法,对于 (1)RC电路:L=0; (2)RL电路:$\frac{1}{C}\int^{t}_0i(t)dt$=0</em></p>
193+
<h3 id="6-让-doc-和-help-两个命令成为用matlab的习惯"><a class="header-anchor" href="#6-让-doc-和-help-两个命令成为用matlab的习惯"></a>(6) 让 <em>doc</em><em>help</em> 两个命令成为用matlab的习惯!</h3>
194+
<p>请同学们自己在command window输入: <em>doc cumtrapz</em> 或者 <em>help cumtrapz</em></p>
195+
<p>学习<em>cumtrapz</em>如何使用。</p>
184196
<h3 id="其他说明"><a class="header-anchor" href="#其他说明"></a>其他说明</h3>
185197
<p>与Matlab功能相似,语法相近的另一个科学计算软件:Scilab,是由法国国家信息、自动化研究院的科学家们开发的“开放源码”软件。Scilab支持 Windows/Linux/mac OS,其网址:<a href="http://www.scilab.org/" target="_blank" rel="noopener">http://www.scilab.org/</a></p>
186198

@@ -280,7 +292,7 @@ <h2 class="title">Comments</h2>
280292
<a data-toggle="collapse" data-target="#tags"><i class="fa fa-tags"></i></a>
281293
<ul id="tags" class="tag_box list-unstyled collapse in">
282294

283-
<li><a href="/tags/2018春-金材/">2018春-金材<span>1</span></a></li> <li><a href="/tags/matlab/">matlab<span>1</span></a></li>
295+
<li><a href="/tags/2018春-金材专业/">2018春-金材专业<span>1</span></a></li> <li><a href="/tags/matlab/">matlab<span>1</span></a></li>
284296
</ul>
285297
</div>
286298

archives/2018/04/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,9 @@ <h4>Categories</h4>
196196
<h4>Tag Cloud</h4>
197197
<ul class="tag_box inline list-unstyled">
198198

199-
<li><a href="/tags/matlab/">matlab<span>1</span></a></li>
199+
<li><a href="/tags/2018春-金材专业/">2018春-金材专业<span>1</span></a></li>
200200

201-
<li><a href="/tags/2018春-金材/">2018春-金材<span>1</span></a></li>
201+
<li><a href="/tags/matlab/">matlab<span>1</span></a></li>
202202

203203

204204
</ul>

archives/2018/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,10 +196,10 @@ <h4>Categories</h4>
196196
<h4>Tag Cloud</h4>
197197
<ul class="tag_box inline list-unstyled">
198198

199-
<li><a href="/tags/2018春-金材/">2018春-金材<span>1</span></a></li>
200-
201199
<li><a href="/tags/matlab/">matlab<span>1</span></a></li>
202200

201+
<li><a href="/tags/2018春-金材专业/">2018春-金材专业<span>1</span></a></li>
202+
203203

204204
</ul>
205205
</div>

archives/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,10 +196,10 @@ <h4>Categories</h4>
196196
<h4>Tag Cloud</h4>
197197
<ul class="tag_box inline list-unstyled">
198198

199-
<li><a href="/tags/2018春-金材/">2018春-金材<span>1</span></a></li>
200-
201199
<li><a href="/tags/matlab/">matlab<span>1</span></a></li>
202200

201+
<li><a href="/tags/2018春-金材专业/">2018春-金材专业<span>1</span></a></li>
202+
203203

204204
</ul>
205205
</div>

0 commit comments

Comments
 (0)