Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

stability_margins doesn't find gain=1 crossover frequency correctly for DT systems #523

Closed
Assignees
bnavigator
@sawyerbfuller

Description

@sawyerbfuller

stability_margins doesn't find gain=1 crossover frequency correctly for DT systems, but it seems to mostly do so for CT systems. I think the probelm may be in howmargins.poly_z_mag1_crossing is finding roots, but there were a few steps in that function I couldn't follow, e.g. why H(z)*H(1/z)=1 implies |H(z)| = 1.

Example:

importcontrolasctomegan=2*np.pizeta=0.2plant=1.1*ct.tf(omegan**2, [1,2*zeta*omegan,omegan**2])Ts=.05plantdisc=ct.c2d(plant,Ts,'zoh')#_ = ct.bode_plot(plant, margins=True) # gives correct gain=1 crossover freq_=ct.bode_plot(plantdisc,margins=True)# no gain=1/no phase margin given

image

As an example of what it should look like, here is Matlab:

omegan=2*pi;zeta=0.2;plant=1.1*tf(omegan^2, [1,2*zeta*omegan,omegan^2])Ts=.05;plantdisc= c2d(plant,Ts,'zoh')margin(plantdisc)

image

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions


    [8]ページ先頭

    ©2009-2025 Movatter.jp