matlab傳函離散化 整數係數

2021-10-21 06:40:50 字數 1535 閱讀 8531

matlab內建的離散化傳遞函式的係數表示多為科學計數法,一些情況下會損失引數精度,導致離散化之後的引數有可能得不到想要的結果。通過設定syms 變數,將z變換之後的離散化係數表示為整數,便於程式設計實現。

% z 變換計算方法

disp

('要離散化的傳遞函式為:')%

-9.197 s^3+

2.107e04 s^2+

4.464e05 s +

6.213e05

% pc =

----

----

----

----

----

----

----

----

----

----

----

----

-% s^3+

190.3 s^2+

2.086e04 s +

31.29

ts =

0.001

;% 取樣時間

[num1,den1]

=tfdata

(pc)

;% 取分子和分母

[numd,dend]

=tfdata

(c2d

(pc,ts));

m1 =

[num1

;den1];

% 將分子和分母轉化為兩行矩陣

syms z;

t =(1-

1/z)

/ts;

% 零階保持器方法

[h,l]

=size

(m1)

;m2 =

sym(

'a',

[l 1])

;% 設定m2大小

for i =1:l

m2(i,1)

= t^

(i-1);

end

m3 =

flipud

(m2)

;% m2 上下倒置

m4 = m1*m3;

% 合併

disp

('z變換結果為:'

MATLAB中fopen fprintf函式的用法

matlab中fopen函式在指定檔案開啟的例項如下 1 fopen 開啟檔案,賦予檔案代號。語法1 fid fopen filename,permission 用指定的方式開啟檔案 fid n n是正整數 表示檔案開啟成功,檔案代號是n.fid 1 表示檔案開啟不成功。fid在此次檔案關閉前總是有...

matlab程式中fminsearch函式使用

我們在處理優化,擬合問題時候,經常需要計算loss函式,也就是說我們通過min求取函式中的位置係數,那麼如果求取,我們可以借助於matlab 中的fminsearch函式,直接針對函式f x 求取極小情況下的x等未知數。下面我們舉乙個例子來演示如何使用 直接以最複雜場景為例 1.新建乙個函式檔案,定...

MATLAB 離散點的圓弧擬合

最近做專案,會遇到很多資料擬合的問題,通常在網上搜尋時會看到很多 乙個個嘗試有對有錯,下面根據專案進展情況總結一下用到的相關知識。都是由本人親測,雖然簡單但是絕對正確的 首先是圓弧擬合的 由離散點擬合 t1為二維矩陣,t1的第一行為x軸的資料點,t1的第二行為y軸的資料點,用 表示為 t1 1,x,...