Why are G1 and G2 outputs different?

3 ビュー (過去 30 日間)
宏伟 张
宏伟 张 2024 年 4 月 29 日
回答済み: 宏伟 张 2024 年 4 月 29 日
clear
clc
Ts=0.0001;
kc=9000;
w0=400*2*pi;
z=tf('z',Ts);
QZ=(0.25+0.5*z^(-1)+0.25*z^(-2));
m=2;
kr=1;
RCZ=(kr*QZ*z^(-199+m)/(1-QZ*z^(-199)));
PI=(w0^2*(Ts*z)/(z-1)+2*w0);
Grc=((1+RCZ)*PI);
U1Y2=((z-1)*Grc)/(z-1+Ts*Grc);
U1Y1=kc*(Grc*Ts)/(z-1+Ts*Grc);
Gbot1=U1Y1+U1Y2
Gbot2=(((z-1)*Grc)+kc*(Grc*Ts))/(z-1+Ts*Grc)

回答 (2 件)

VBBV
VBBV 2024 年 4 月 29 日
編集済み: VBBV 2024 年 4 月 29 日
The order of mathematical operations in evaluating G1 and G2 are different. In case of G1 , individual terms are evaluated first and then added. In case if G2 , the numerator terms are added first and later divided by common denominator expression. You can try to use simplify function to verify that both results are essentially same.
  1 件のコメント
宏伟 张
宏伟 张 2024 年 4 月 29 日
Thanks,"Gbot3=(z*Grc-Grc+kc*Grc*Ts)/(z-1+Ts*Grc)" is correct!

サインインしてコメントする。


宏伟 张
宏伟 张 2024 年 4 月 29 日
clear
clc
Ts=0.0001;
kc=9000;
w0=400*2*pi;
z=tf('z',Ts);
QZ=(0.25+0.5*z^(-1)+0.25*z^(-2));
m=2;
kr=1;
RCZ=(kr*QZ*z^(-199+m)/(1-QZ*z^(-199)));
PI=(w0^2*(Ts*z)/(z-1)+2*w0);
Grc=((1+RCZ)*PI);
U1Y2=((z-1)*Grc)/(z-1+Ts*Grc);
U1Y1=kc*(Grc*Ts)/(z-1+Ts*Grc);
Gbot3=(z*Grc-Grc+kc*Grc*Ts)/(z-1+Ts*Grc)

カテゴリ

Help Center および File ExchangeEntering Commands についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by