0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過(guò)Matlab進(jìn)行零極點(diǎn)求解?

牛牛牛 ? 來(lái)源:模擬小笨蛋 ? 作者:模擬小笨蛋 ? 2023-11-30 12:23 ? 次閱讀

本文主要嘗試回答以下三個(gè)問(wèn)題:

(1)系數(shù)已知的傳遞函數(shù)怎么求其零極點(diǎn)?

(2)系數(shù)為變量的傳遞函數(shù)怎么求其零極點(diǎn)表達(dá)式?

(3)只知道一組節(jié)點(diǎn)方程,如何推導(dǎo)系統(tǒng)傳遞函數(shù)?

01

系數(shù)已知的傳遞函數(shù)怎么求其零極點(diǎn)?

1.1 問(wèn)題

如果我們拿到了一個(gè)傳遞函數(shù),其所有系數(shù)是已知的,怎么計(jì)算其零極點(diǎn)?

1.2 解決方法

Matlab可通過(guò)兩種模型描述系統(tǒng)的傳遞函數(shù),這兩種模型是:傳遞函數(shù)模型、零極點(diǎn)模型。它們之間是可以互相轉(zhuǎn)化的。如果一個(gè)系統(tǒng)傳遞函數(shù)的所有系數(shù)已知的,我們只要將其描述成傳遞函數(shù)模型,接著將其轉(zhuǎn)換成零極點(diǎn)模型。一旦完成轉(zhuǎn)換,我們就可以觀察到系統(tǒng)的零極點(diǎn)大小。此外,我們還可以畫(huà)出傳遞函數(shù)的零極點(diǎn)圖,更加直觀的看到零極點(diǎn)的分布位置。

EG1:如果a=1,求解G=(2*s+1)/(a*s^2+2*a*s+1)的零極點(diǎn),Matlab代碼如下:

圖片

圖↑ 代碼

圖片

圖↑ 轉(zhuǎn)換為了零極點(diǎn)模型

圖片

圖↑ 零極點(diǎn)MAP圖

1.3 寫(xiě)在最后

Matlab默認(rèn)的傳遞函數(shù)模型一定是拉普拉斯形式的,它的輸入一般包括直接輸入和矩陣輸入。如果使用直接輸入的方式,需要在輸入之前定義Laplace算子,只有這樣Matlab才能視其為傳遞函數(shù)模型。

step( )、bode( )等分析方式只對(duì)傳遞函數(shù)模型有效

Laplace變換和其反變換只能針對(duì)符號(hào)表達(dá)式進(jìn)行。也就是說(shuō),你對(duì)一個(gè)時(shí)域函數(shù)進(jìn)行Laplace變換后得到的Lalace表達(dá)式,雖然在我們看來(lái)就是傳遞函數(shù),但Matlab并不會(huì)視其為傳遞函數(shù)模型(除非定義Laplace算子后重新輸入一遍L(zhǎng)place表達(dá)式)

02

系數(shù)為變量的傳遞函數(shù)怎么求其零極點(diǎn)表達(dá)式?

2.1 問(wèn)題

你有沒(méi)有面臨過(guò)這樣一種情況:當(dāng)你設(shè)計(jì)一個(gè)OP時(shí),為了計(jì)算出它準(zhǔn)確的傳遞函數(shù),你首先畫(huà)出包含各種寄生電容效應(yīng)的小信號(hào)模型圖,然后經(jīng)過(guò)了艱難的計(jì)算,終于讓你算出了傳遞函數(shù)的表達(dá)式。為了穩(wěn)定性設(shè)計(jì),你需要知道它的零極點(diǎn)分布情況。這時(shí)候你需要接著對(duì)傳遞函數(shù)進(jìn)行第二次的求解,目的是為了求得零極點(diǎn)表達(dá)式。只有這樣你才能清楚地知道零極點(diǎn)和哪些參數(shù)相關(guān),來(lái)指導(dǎo)你在設(shè)計(jì)上實(shí)現(xiàn)優(yōu)化。

但有時(shí)候,零極點(diǎn)表達(dá)式的計(jì)算是很困難。

基于上述的問(wèn)題,尤其是當(dāng)一個(gè)傳遞函數(shù)包含未知參數(shù)(多于1個(gè))時(shí),我們有沒(méi)有可能借助Matlab工具計(jì)算出零極點(diǎn)公式呢?回答是:如果傳遞函數(shù)是二階的,利用Matlab求零極點(diǎn)表達(dá)式是容易實(shí)現(xiàn)的。但對(duì)于更高階的系統(tǒng)而言,想通過(guò)Matlab來(lái)求得解析解是極其困難的。

我們通常求解傳遞函數(shù)的零極點(diǎn),其實(shí)就是求解傳遞函數(shù)其分子或分母的根,那么該問(wèn)題本質(zhì)上就是一個(gè)求方程解的問(wèn)題。該問(wèn)題或可借助Matlab工具輔助解決。

Matlab的符號(hào)運(yùn)算工具箱提供了一個(gè)solve()函數(shù),該函數(shù)可以用于一般線(xiàn)性或非線(xiàn)性方程的解析求解,可以用來(lái)試著解決我們所關(guān)心的問(wèn)題。

2.2 solve()函數(shù)簡(jiǎn)介

solve的調(diào)用形式:

solve(eq)

solve(eq, var)

solve(eq1, eq2, …, eqn)

solve(eq1, eq2, …, eqn, var1, var2, …, varn)

eq為符號(hào)表達(dá)式,var為指定的要求解的變量。如果不聲明要求解的變量(第一和第三種形式),則matlab自動(dòng)按默認(rèn)變量進(jìn)行求解。

下面試著以一個(gè)通用一元二次方程的求解例子來(lái)理解solve( )函數(shù)。

EG2:試對(duì)一個(gè)典型的一元二次方程y=a*x^2+b*x+c進(jìn)行求解。Matlab的實(shí)現(xiàn)代碼和結(jié)果如下:

圖片

圖↑ 程序及結(jié)果

程序計(jì)算得到的結(jié)果是一元二次方程的通解,對(duì)于該結(jié)果我們應(yīng)該是相當(dāng)熟悉的。

2.3實(shí)際傳遞函數(shù)根的求解

EG3:下圖為拉扎維書(shū)上一個(gè)共源極放大器的例子,給出了該電路的精確傳遞函數(shù)。

我們先觀察該傳遞函數(shù),發(fā)現(xiàn)它是一個(gè)二階系統(tǒng)。由于所有二階傳遞函數(shù)的分母的其實(shí)都是a*x^2+b*x+c的形式,表達(dá)式中的各個(gè)電阻、電容可以申明為變量。如此一來(lái),此例的實(shí)現(xiàn)和EG2并沒(méi)有什么不同。令分母等于0,求解的結(jié)果便是系統(tǒng)的極點(diǎn)了。此例中零點(diǎn)可以直接觀察得出。

圖片

圖↑ 拉扎維書(shū)上的內(nèi)容

思考這樣一個(gè)問(wèn)題:我們真的需要借助Matlab對(duì)諸如此類(lèi)的二階系統(tǒng)求零極點(diǎn)表達(dá)式嗎?

如前所述,我們很清楚一個(gè)二階方程a*x^2+b*x+c=0的通解是什么,那么就可以直接應(yīng)用該公式進(jìn)行極點(diǎn)求解,這時(shí)候用Matlab就有點(diǎn)多余了。

那么對(duì)于更高階的方程,比如三次方程,Matlab能夠勝任解析求解嗎?答案是不能。因?yàn)橐粋€(gè)通用的一元三次方程是沒(méi)有通解的,因此想通過(guò)簡(jiǎn)單申明變量、借助Matlab求其解析解的想法注定難以實(shí)現(xiàn)。需要注意的是,雖然三階方程沒(méi)有通解,但并不代表其沒(méi)有解,它的解是根據(jù)判別式的不同而不同的。而如果明確知道這個(gè)判別式,便可以將其作為一個(gè)新的約束方程,和傳遞函數(shù)進(jìn)行方程聯(lián)解,這時(shí)候是有可能求出結(jié)果的。

在實(shí)際模擬電路的設(shè)計(jì)中,我們通常會(huì)通過(guò)“假設(shè)-保證假設(shè)成立”的方式來(lái)簡(jiǎn)化方程求解。剛才說(shuō)到的“判別式”像極了我們電路設(shè)計(jì)時(shí)的種種假設(shè)條件,所有的計(jì)算都有賴(lài)于這個(gè)前提的成立。關(guān)于eg2,在書(shū)中拉扎維不就假定主極點(diǎn)遠(yuǎn)遠(yuǎn)小于次極點(diǎn)來(lái)簡(jiǎn)化零極點(diǎn)計(jì)算的么。倘若這種假設(shè)是合理的,這將為快速估算提供新的途徑。但是,這種堪稱(chēng)宇宙無(wú)敵的假設(shè)法,一般人是用不了的,比如我就經(jīng)常碰到這樣的問(wèn)題:自認(rèn)為完美的假設(shè),在一圈計(jì)算下來(lái)之后才發(fā)現(xiàn)前提是不成立的。兩種假設(shè)之間的差別或許就代表著我和大神之間的距離,這多少有點(diǎn)打擊自信心。

至此可以做個(gè)小結(jié):

對(duì)于包含變量的傳遞函數(shù),如果其是二階的,利用Matlab求零極點(diǎn)表達(dá)式是容易實(shí)現(xiàn)的。但對(duì)于更高階的系統(tǒng)而言,想通過(guò)Matlab來(lái)求得解析解是極其困難的。

Matlab解出的表達(dá)式即使是準(zhǔn)確的,仍需要我們自己去對(duì)公式進(jìn)行近似?;蛟S近似的公式不絕對(duì)準(zhǔn)確,但卻可以用于指導(dǎo)設(shè)計(jì)。

2.4寫(xiě)在最后

對(duì)于電路系統(tǒng):

對(duì)于一個(gè)電路系統(tǒng),它有可能是單輸入、單輸出的,也有可能是多輸入、多輸出的。對(duì)于前者,其傳遞函數(shù)是一個(gè)一元方程;而對(duì)于后者,其傳遞函數(shù)通常是一個(gè)方程組。但無(wú)論是哪種情況,都可以使用solve()函數(shù)嘗試對(duì)其求解 。

關(guān)于Matlab的符號(hào)計(jì)算:

計(jì)算精確:符號(hào)計(jì)算基于數(shù)學(xué)公式、定理并通過(guò)一系列推理、演繹得到方程的解或者數(shù)學(xué)表達(dá)式的值,對(duì)操作對(duì)象不進(jìn)行離散化和近似化處理;

應(yīng)用范圍有限:實(shí)際科研和生產(chǎn)中遇到的問(wèn)題絕大多數(shù)都無(wú)法獲得精確的符號(hào)解,這時(shí)我們不得不求助數(shù)值計(jì)算;

對(duì)符號(hào)計(jì)算態(tài)度:用其來(lái)完成公式推導(dǎo)和解決簡(jiǎn)單的對(duì)計(jì)算時(shí)效性要求不高的問(wèn)題,綜合符號(hào)計(jì)算和數(shù)值計(jì)算各自的優(yōu)點(diǎn),視問(wèn)題特點(diǎn)混合使用符號(hào)計(jì)算和數(shù)值計(jì)算。

關(guān)于solve():

solve()函數(shù)適用于單變量方程(比如只有x一個(gè)未知數(shù) )或多變量方程(比如本文例子中有a,b,c,x,y多個(gè)變量)的求解。但該函數(shù)能求解的前提是求解對(duì)象確實(shí)存在解析解,如果沒(méi)有,那么只能求解數(shù)值解,但數(shù)值解需要傳遞函數(shù)的各系數(shù)已知。

03

只知道一組節(jié)點(diǎn)方程,如何推導(dǎo)系統(tǒng)傳遞函數(shù)?

3.1 問(wèn)題

針對(duì)一個(gè)小信號(hào)模型,如果我們只能根據(jù)KCL/KVL列出節(jié)點(diǎn)方程,因此可以得到一組節(jié)點(diǎn)方程。我們能否借助Matlab工具根據(jù)節(jié)點(diǎn)方程組推導(dǎo)出傳遞函數(shù)呢?

3.2 解決方法

圖片

圖↑ 書(shū)上的一個(gè)例子

如上圖,這是拉扎維書(shū)上的一個(gè)例子,我們?cè)囍帉?xiě)程序,看看能否利用兩個(gè)節(jié)點(diǎn)方程推導(dǎo)出傳遞函數(shù)。

程序如下:

圖片

圖↑ 代碼

運(yùn)行結(jié)果:

圖片

圖↑ 運(yùn)行結(jié)果

直接求出的H1結(jié)果是正確的,但式中還帶有變量Vx,雖然上下式中都有,可以化簡(jiǎn)掉,但該結(jié)果總是不那么理想。因此對(duì)H1進(jìn)行合并同類(lèi)項(xiàng)后得到H2,可以看到H2完全按照降冪排列,且已經(jīng)化除了Vx,表達(dá)式和書(shū)上的完全一樣。

看來(lái),利用Matlab是可以實(shí)現(xiàn)傳遞函數(shù)的推導(dǎo)的!

3.3 寫(xiě)在最后

其實(shí)推導(dǎo)傳遞函數(shù)本身并沒(méi)有什么難度,即使手算無(wú)非也就是多花點(diǎn)時(shí)間,Matlab只是能讓我們偷個(gè)懶而已,況且你是否敢完全相信軟件的推導(dǎo)結(jié)果呢?

更有意義的是如何面對(duì)一個(gè)傳遞函數(shù),比如了解它的零極點(diǎn)分布,了解怎樣在參數(shù)之間取舍才能得到一個(gè)穩(wěn)定的系統(tǒng)。而這,軟件似乎無(wú)能為力。

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模擬電路
    +關(guān)注

    關(guān)注

    125

    文章

    1553

    瀏覽量

    102620
  • matlab
    +關(guān)注

    關(guān)注

    181

    文章

    2960

    瀏覽量

    230022
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    matlab的根軌跡、增益選擇、方程求解和演示示例命令

    matlab的根軌跡、增益選擇、方程求解和演示示例命令根軌跡 Pzmap 極點(diǎn)圖 Rlocfind 交互式地確定根軌跡增益 Rlocus 畫(huà)根軌跡 Sgrid 在網(wǎng)格上畫(huà)連續(xù)根軌跡
    發(fā)表于 09-22 15:57

    請(qǐng)問(wèn)這個(gè)電源系統(tǒng)的bode圖如何配置極點(diǎn)?

    請(qǐng)問(wèn)這個(gè)電源系統(tǒng)的bode圖如何配置極點(diǎn),才能使系統(tǒng)穩(wěn)定???用matlab中的sisotool工具。開(kāi)關(guān)頻率為20kHZ
    發(fā)表于 04-07 20:11

    請(qǐng)問(wèn)什么是極點(diǎn)?

    TI專(zhuān)家好, 在看電源環(huán)路穩(wěn)定性分析技術(shù)文章時(shí),經(jīng)常會(huì)遇到單極點(diǎn),單點(diǎn),雙極點(diǎn),雙點(diǎn)之類(lèi),請(qǐng)問(wèn)什么是雙極點(diǎn),雙
    發(fā)表于 03-13 06:22

    什么是極點(diǎn)?什么是點(diǎn)?

    什么是極點(diǎn)?什么是點(diǎn)?直觀元件的模型介紹
    發(fā)表于 04-06 09:20

    關(guān)于dcdc的點(diǎn)和極點(diǎn)的理解是什么

    我們知道DCDC的環(huán)路上存在點(diǎn)和極點(diǎn),不過(guò)這個(gè)點(diǎn)和極點(diǎn)其實(shí)是數(shù)學(xué)公式中推導(dǎo)出來(lái)的。 如何從物料的角度來(lái)理解這個(gè)點(diǎn)和
    發(fā)表于 07-28 17:33

    電路中極點(diǎn)點(diǎn)的產(chǎn)生與影響

    電路教程相關(guān)知識(shí)的資料,關(guān)于電路中極點(diǎn)點(diǎn)的產(chǎn)生與影響
    發(fā)表于 10-10 14:17 ?0次下載

    點(diǎn)和極點(diǎn)的區(qū)別及其物理意義

    點(diǎn):當(dāng)系統(tǒng)輸入幅度不為且輸入頻率使系統(tǒng)輸出為時(shí),此輸入頻率值即為點(diǎn)。極點(diǎn):當(dāng)系統(tǒng)輸入幅度不為
    發(fā)表于 03-19 16:52 ?9.4w次閱讀

    MATLAB教程之如何使用MATLAB求解數(shù)學(xué)問(wèn)題資料概述

    ,7曲面積分的MATLAB運(yùn)算,8 函數(shù)的點(diǎn),9 一元函數(shù)極值,10級(jí)數(shù),11微分方程問(wèn)題的計(jì)算機(jī)求解,12概率統(tǒng)計(jì),13插值,14 曲線(xiàn)擬合,15小結(jié)
    發(fā)表于 01-04 14:55 ?0次下載
    <b class='flag-5'>MATLAB</b>教程之如何使用<b class='flag-5'>MATLAB</b><b class='flag-5'>求解</b>數(shù)學(xué)問(wèn)題資料概述

    極點(diǎn)分析的基本原理、應(yīng)用和意義

    在信號(hào)處理和系統(tǒng)理論領(lǐng)域,極點(diǎn)分析是一項(xiàng)重要的技術(shù),用于研究和分析濾波器的特性和行為。
    的頭像 發(fā)表于 06-20 16:35 ?8777次閱讀
    <b class='flag-5'>零</b><b class='flag-5'>極點(diǎn)</b>分析的基本原理、應(yīng)用和意義

    模擬CMOS集成電路設(shè)計(jì):極點(diǎn)對(duì)消

    極點(diǎn)點(diǎn)對(duì)消與極點(diǎn)分裂法(見(jiàn)前述推文)一樣,可以使兩個(gè)極點(diǎn)分離
    的頭像 發(fā)表于 10-18 15:09 ?2792次閱讀
    模擬CMOS集成電路設(shè)計(jì):<b class='flag-5'>零</b><b class='flag-5'>極點(diǎn)</b>對(duì)消

    點(diǎn)和極點(diǎn)的作用 復(fù)變函數(shù)的極點(diǎn)點(diǎn)有什么區(qū)別和聯(lián)系?

    點(diǎn)和極點(diǎn)的作用 復(fù)變函數(shù)的極點(diǎn)點(diǎn)有什么區(qū)別和聯(lián)系? 復(fù)變函數(shù)是指自變量和函數(shù)值都是復(fù)數(shù)的函數(shù)。在復(fù)平面上,復(fù)變函數(shù)的極點(diǎn)
    的頭像 發(fā)表于 11-08 17:46 ?7450次閱讀

    模擬技術(shù)入門(mén)之極點(diǎn)分析(1)

    系統(tǒng)的極點(diǎn)的物理含義:   點(diǎn):當(dāng)系統(tǒng)輸入幅度不為且輸入頻率使系統(tǒng)輸出為時(shí),此輸入頻率值即為
    發(fā)表于 11-29 12:20 ?1211次閱讀
    模擬技術(shù)入門(mén)之<b class='flag-5'>零</b><b class='flag-5'>極點(diǎn)</b>分析(1)

    什么是極點(diǎn)電路 極點(diǎn)仿真原理

    通過(guò)極點(diǎn)仿真,可以分析系統(tǒng)的穩(wěn)定性。系統(tǒng)的穩(wěn)定性是由其傳遞函數(shù)的極點(diǎn)位置決定的。如果所有的極點(diǎn)都位于復(fù)平面的左半部分,那么系統(tǒng)就是穩(wěn)定的。
    的頭像 發(fā)表于 03-07 15:12 ?2016次閱讀
    什么是<b class='flag-5'>零</b><b class='flag-5'>極點(diǎn)</b>電路 <b class='flag-5'>零</b><b class='flag-5'>極點(diǎn)</b>仿真原理

    極點(diǎn)怎么判斷濾波器類(lèi)型

    極點(diǎn)分析是濾波器設(shè)計(jì)中的一個(gè)重要概念,它可以幫助我們了解濾波器的頻率響應(yīng)特性。 極點(diǎn)的概念 點(diǎn)和
    的頭像 發(fā)表于 08-21 14:32 ?1206次閱讀

    極點(diǎn)與單位圓分布關(guān)系總結(jié)

    極點(diǎn)與單位圓分布關(guān)系是信號(hào)處理和系統(tǒng)分析中的一個(gè)重要概念。 極點(diǎn)的定義 在信號(hào)處理和系統(tǒng)分析中,
    的頭像 發(fā)表于 08-21 14:38 ?864次閱讀