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

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

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

離散化與代碼實現(xiàn)

汽車電子技術(shù) ? 來源:開關(guān)電源仿真與實用設(shè)計 ? 作者:楊帥鍋 ? 2023-02-08 15:43 ? 次閱讀

前言:

一直有在用比例諧振控制器,是在matlab里面用C2D函數(shù)離散好了后直接使用參數(shù),對于不同的電網(wǎng)頻率還需要修改一下參數(shù)。而且在運行過程中發(fā)現(xiàn)網(wǎng)側(cè)頻率改變也不能實時修改PR的控制參數(shù)來達到最佳的控制效果,因此我需要能在MCU里面實時進行PR多個系數(shù)的計算,提取,更新的操作。

poYBAGPjUjuAFMI9AAAnckfBzqo067.png

QPR因為緩解PR在諧振點的增益以及有更好的適應性,而被廣泛使用。傳遞函數(shù)中的wc用來調(diào)節(jié)QPR控制器在諧振點的增益帶寬,wc越小則QPR在諧振的增益峰值越接近PR。kr是QPR控制器在諧振點的增益值,wr則是QPR控制器的設(shè)定諧振頻率。參考文獻1中展示了一張不同的kr和wc的QPR的bode圖,可見:

poYBAGPjUlOATUUhAAQVOz3ycUU050.png

所以我們要在MCU中運行這個傳遞函數(shù),第一步是需要將其進行Z變換離散化后得到Z域傳遞函數(shù)的系數(shù),第二步是運行這個傳遞函數(shù)。

我們先來看第一步:使用雙線性變換來得到Z域傳遞函數(shù)。根據(jù)雙線性變換的公式,可以計算到這個QPR的s域傳遞函數(shù)到Z域的傳遞函數(shù)。

poYBAGPjUmKAK-AXAACBBVpczB4208.png

從上圖來看,是一個典型的二階Z域傳遞函數(shù),但是有點麻煩的地方是分母的Z^2的系數(shù)不是1,因此還需要對其進行改寫一下,我把分子和分母都同時除以分母Z^2項的系數(shù),從而使得這個傳遞函數(shù)可以提取標準化系數(shù):B0,B1,B2,A1,A2,可見:

ts_x_ts = ts * ts;

wr_x_wr = wr * wr;

div_x = ts * ts * wr * wr + 4.0 * wc * ts + 4.0;

coeff_B0 = (4.0 * kr * wc * ts)/div_x;

coeff_B1 = 0;

coeff_B2 = -1*coeff_B0;

coeff_A1 = (2.0 * ts_x_ts * wr_x_wr - 8.0)/div_x;

coeff_A2 = (ts_x_ts * wr_x_wr - 4.0 * ts * wc + 4)/div_x;

經(jīng)過上面的處理后,即可得到標準的2階Z域傳遞函數(shù)的系數(shù),可見Matlab的輸出:

pr_1st_z = c2d(pr_1st, ts, 'tustin')%Matlab自帶函數(shù)

pr_1st_Z = tf([coeff_B0 coeff_B1 coeff_B2], [1 coeff_A1 coeff_A2], ts)%自己手動

兩者輸出一致,驗證了正確性。

pr_1st_z =

0.03912 z^2 - 0.03912

----------------------

z^2 - 1.992 z + 0.9922

Sample time: 2.5e-05 seconds

Discrete-time transfer function.

pr_1st_Z =

0.03912 z^2 - 0.03912

----------------------

z^2 - 1.992 z + 0.9922

Sample time: 2.5e-05 seconds

Discrete-time transfer function.

第二步就是使用IIR濾波器來根據(jù)上面提取的系數(shù)來得到所需的輸出了,其代碼為:

w(1) = inputl(i) - w(2) * a_coff(2) - w(3) * a_coff(3);

yout(i) = (w(1) * b_coff(1) + w(2) * b_coff(2) +w(3) * b_coff(3));

w(3) = w(2);

w(2) = w(1);

第三步打包封裝

我們的目的是使用QPR對1,3,5,7,9,11次諧波進行抑制,如果各個傳遞函數(shù)的kr和wc一致,則只需要調(diào)整wr到各個頻率即可??梢跃帉懸粋€IIR二階系統(tǒng)提取函數(shù),根據(jù)所需的頻率進行計算即可。 最后在把KP和低通濾波器引入,LPF能提供一個在高頻的增益衰減功能,用于提升多個PR組合后的傳遞函數(shù)的穩(wěn)定性。


可見閉環(huán)控制器的傳遞函數(shù)最終為:

lpf = (flpf*2*pi/(s + flpf*2*pi));

sys_pr = kp + lpf * (pr_1st + pr_3st + pr_5st + pr_7st + pr_9st + pr_11st);

運行測試:

poYBAGPjUnCAWqjbAAGRfaOBXIw629.png

(3KHZ后 LPF開始起到作用)

編寫QPR代碼并運行測試,發(fā)現(xiàn)對3~5次諧波有抑制效果。

pYYBAGPjUnyACVc2AAKXRkh4UcA698.png

小結(jié):根據(jù)s域傳遞函數(shù)計算出z域傳遞函數(shù)公式,并測試驗證了準確性。

關(guān)于本人:

我是楊帥,目前從事逆變器儲能行業(yè),專注在雙向AC/DC變換器領(lǐng)域,對雙向DC/DC的研究較多。數(shù)年來一直從事電力電子仿真技術(shù)研究與應用推廣,致力于實現(xiàn)讓天下沒有難搞的電源而努力。

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

    關(guān)注

    146

    文章

    16802

    瀏覽量

    349355
  • matlab
    +關(guān)注

    關(guān)注

    180

    文章

    2952

    瀏覽量

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

    關(guān)注

    3

    文章

    4260

    瀏覽量

    62228
  • 諧振控制器
    +關(guān)注

    關(guān)注

    1

    文章

    29

    瀏覽量

    9126
收藏 人收藏

    評論

    相關(guān)推薦

    怎么在labview FPGA端實現(xiàn)離散傳遞函數(shù)的表達?

    我只知道有一個這個控件,叫直接型離散傳遞函數(shù)實現(xiàn),但是我輸入離散傳遞函數(shù)的系數(shù)之后,他的輸出有問題。我再非FPGA端嘗試使用相同的系數(shù)進行仿真,輸出是沒有問題的。我不知道前面的問題出在哪里,或者說還有沒有其他的方法
    發(fā)表于 05-09 11:43

    離散點采樣方法的MATLAB實現(xiàn)

    誰有離散點采樣方法的MATLAB實現(xiàn)代碼 老師說是用于圖像處理上的基于目標區(qū)域和基于目標邊界兩類方法的優(yōu)勢,用陰采樣圖獲取目標圖像中目標的邊界信息,用陽采樣圖獲取目標圖像中目標的區(qū)域信息,陰、陽
    發(fā)表于 03-16 00:16

    離散傳感器

    離散傳感器一般包括光電開關(guān)、接近開關(guān)、光柵、編碼器等,這些都是自動上經(jīng)常用到的器件,它們各有各的作用,但是經(jīng)常一起配合使用,成為傳感器中增長較快的一支隊伍。尤其是近幾年來離散傳感器增加非常迅猛
    發(fā)表于 01-27 14:23

    自動基礎(chǔ)--線性離散系統(tǒng)的分析與校正

    `自動基礎(chǔ)--線性離散系統(tǒng)的分析與校正`
    發(fā)表于 02-24 13:24

    離散型PID算法的Matlab仿真

    ,'v');% 離散后提取分子、分母 u_1=0.0; u_2=0.0; y_1=0.0; y_2=0.0; x=[0,0,0]'; error_1=0; error_2=0; %核心代碼 for k
    發(fā)表于 05-30 09:10

    PID參數(shù)在進行離散前后是不是相同的

    對傳遞函數(shù)進行離散后用sisotool設(shè)計了補償函數(shù),得到的Kp,Kd,Ki參數(shù),和直接在時域里面進行補償函數(shù)設(shè)計所得到的參數(shù)是不是一樣的
    發(fā)表于 11-05 15:35

    怎么實現(xiàn)基于RFID技術(shù)的離散MES設(shè)計?

    怎么實現(xiàn)基于RFID技術(shù)的離散MES設(shè)計?
    發(fā)表于 06-07 06:02

    Matlab中使用S函數(shù)實現(xiàn)離散數(shù)值計算的問題有哪些

    關(guān)于Matlab中使用S函數(shù)實現(xiàn)離散數(shù)值計算的問題求助,現(xiàn)在我想使用S函數(shù)寫一個永磁同步電機dq軸坐標系下的離散數(shù)學模型,使用改進歐拉法
    發(fā)表于 08-27 07:00

    連續(xù)屬性離散的Imp-Chi2算法

    連續(xù)屬性離散是機器學習和數(shù)據(jù)挖掘領(lǐng)域中的一個重要問題,離散是否合理決定著表達和提取相關(guān)信息的準確性。經(jīng)過研究Chi2 系列算法,提出一種新的基于屬性重要性的連
    發(fā)表于 04-17 08:39 ?11次下載

    Marr小波離散方法及其應用

    本文介紹了將連續(xù)小波Marr小波進行離散的一種新方法,實現(xiàn)了連續(xù)小波離散信號處理。將其應用于實際人體血壓信號分析中,取得了滿意的效果,具
    發(fā)表于 08-15 14:16 ?16次下載

    連續(xù)特征離散方法綜述

    離散特征在數(shù)據(jù)挖掘的過程中具有重要的作用,如何將實際數(shù)據(jù)集中的連續(xù)特征最好地離散是一個NP-hard問題。本文介紹了離散方法的不同角度的
    發(fā)表于 01-03 17:02 ?25次下載

    基于離散小波變換的數(shù)字水印技術(shù) (matlab源代碼)

    基于離散小波變換的數(shù)字水印技術(shù) (matlab源代碼):提出了一種基于小波分析的簡單有效的數(shù)字水印嵌入和盲檢測的算法。先將嵌入的水印信息加密,然后將加密后的水印信息嵌到相
    發(fā)表于 02-10 10:04 ?317次下載

    離散傅里葉變換

    《OpenCV3編程入門》書本配套源代碼:離散傅里葉變換
    發(fā)表于 06-06 15:39 ?5次下載

    針對多量級應急數(shù)據(jù)的無監(jiān)督離散方法

    在對連續(xù)的多量級應急數(shù)據(jù)進行離散化時,采用傳統(tǒng)無監(jiān)督離散方法難以找出量級變化點完成離散。提出一種針對多量級應急數(shù)據(jù)的無監(jiān)督離散
    發(fā)表于 06-04 14:28 ?1次下載

    進行鴻蒙移植和開發(fā)的離散滑塊教程

    項目介紹 離散滑塊嘗試通過 API 為您提供帶有值標簽的滑塊,如 [Material Design spec] 中所示。該庫還為您提供范圍滑塊模式。 離散滑塊嘗試為您提供帶有“材質(zhì)設(shè)計”規(guī)范中所
    發(fā)表于 04-01 09:24 ?2次下載