前言:昨天晚上發(fā)了一篇用手動(dòng)添加零極點(diǎn)來模擬系統(tǒng)傳遞函數(shù)的文章《利用matlab中的controlSystemDesigner加速你的環(huán)路設(shè)計(jì)》,今天跟大神請教了一番,利用system identification來識(shí)別bode圖,可以獲得更加精確的模型,從而以更準(zhǔn)確更迅速的來實(shí)現(xiàn)環(huán)路設(shè)計(jì),這里要感謝王磊大大,感謝您的幫助。
實(shí)現(xiàn)方法:利用仿真軟件獲得系統(tǒng)從控制到輸出的bode圖數(shù)據(jù),然后將數(shù)據(jù)導(dǎo)入到system identification,使用波形分析功能來獲得傳遞函數(shù),一般能達(dá)到90%以上的吻合度,這就說明是識(shí)別出來的傳遞函數(shù)已經(jīng)足夠精確,完全可考慮拿來使用了。有了準(zhǔn)確的傳遞函數(shù)就可以利用昨天發(fā)的那篇文章來實(shí)現(xiàn)設(shè)計(jì)。
軟件:
1,plecs 或其他能仿真環(huán)路的軟件,要求能導(dǎo)出cvs格式的文件。
2,matlab
3,execl
獲得仿真文件后,選擇導(dǎo)出文件:
然后導(dǎo)入到excel表格中,對數(shù)據(jù)進(jìn)行修改。因?yàn)?/span>plces導(dǎo)出的頻率是Hz,matlab中是rad/s,所有要修改頻率。然后還要將db修改為正常值,使用10^(db/20)來換算一下。然后excel的數(shù)據(jù)導(dǎo)入到matlab中。
然后打開system identification選擇導(dǎo)入數(shù)據(jù)。
如果沒有錯(cuò)誤就可以打開導(dǎo)入波形看看bode有米有問題。
可見上圖,導(dǎo)入數(shù)據(jù)正常。然后開始模型識(shí)別,使用3P2Z來進(jìn)行識(shí)別,吻合度達(dá)到98.2%。
識(shí)別后的傳遞函數(shù):
觀察一下識(shí)別出來的傳遞的bode是不是和導(dǎo)入的一樣?可以看到,和仿真得到的數(shù)據(jù)基本一致,就可以根據(jù)該傳遞函數(shù)進(jìn)行環(huán)路設(shè)計(jì)了。
m代碼:
% LLC SISO TF%時(shí)間:2019年1月05日
clear all;echo offclc
% TF:num = [3698 -4.641e7 -1.321e13];den = [1 9.807e4 1.212e9 4.8913e13];
Gx = tf(num, den); zpk(Gx) bode = (Gx) h = bodeplot(Gx) grid on; setoptions(h,'FreqUnits','Hz','PhaseVisible','on');
controlSystemDesigner(Gx)
反饋傳遞函數(shù):
以上,結(jié)束。
致謝:王磊大師