Undefined function 'hinfnorm' for input arguments of type 'tf'.

1 vue (au cours des 30 derniers jours)
Kashish Pilyal
Kashish Pilyal le 4 Mai 2022
Modifié(e) : Paul le 4 Mai 2022
I am trying to calculate the H inf norm of a transfer function. The code is
theta=0;
kp=0.2;
kd=0.7;
tau=0.1;
h=0.5;
s=tf('s');
Gamma=(exp(-theta*s)*s^2*((0.6*s)+1)+(kd*s)+kp)/((h*s+1)*(s^2*((0.1*s)+1)+(kd*s)+kp));
ninf=hinfnorm(Gamma);
I do have the control system toolbox but I do not know why am I getting this error?

Réponse acceptée

Paul
Paul le 4 Mai 2022
Modifié(e) : Paul le 4 Mai 2022
Hi Kashish,
If you don't have the Robust Control Toolbox for hinfnorm(), you can probably use sigma() from the Control Systems Toolbox
Example from the Question:
theta=0;
kp=0.2;
kd=0.7;
tau=0.1;
h=0.5;
s=tf('s');
Gamma=(exp(-theta*s)*s^2*((0.6*s)+1)+(kd*s)+kp)/((h*s+1)*(s^2*((0.1*s)+1)+(kd*s)+kp));
ninf=hinfnorm(Gamma)
ninf = 1.0753
sv = sigma(Gamma);
max(sv(1,:))
ans = 1.0736
MIMO example from doc page for hinfnorm()
G = [0 tf([3 0],[1 1 10]);tf([1 1],[1 5]),tf(2,[1 6])];
ninf = hinfnorm(G)
ninf = 3.0150
sv = sigma(G);
max(sv(1,:))
ans = 2.9976
See the doc page for sigma() for more info to see if it will suit your needs.
Note that, unilke hinfnorm(),sigma() doesn't check for stability of the system.

Plus de réponses (0)

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by