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

Commitb2e86b8

Browse files
committed
unit test for nonuniform sampling in simulations
1 parent19c1d58 commitb2e86b8

File tree

1 file changed

+31
-3
lines changed

1 file changed

+31
-3
lines changed

‎control/tests/iosys_test.py

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1648,7 +1648,9 @@ def test_interconnect_unused_output():
16481648
outputs=['u'],
16491649
name='k')
16501650

1651-
withpytest.warns(UserWarning,match=r"Unused output\(s\) in InterconnectedSystem:")asrecord:
1651+
withpytest.warns(
1652+
UserWarning,
1653+
match=r"Unused output\(s\) in InterconnectedSystem:")asrecord:
16521654
h=ct.interconnect([g,s,k],
16531655
inputs=['r'],
16541656
outputs=['y'])
@@ -1679,13 +1681,17 @@ def test_interconnect_unused_output():
16791681
pytest.fail(f'Unexpected warning:{r.message}')
16801682

16811683
# warn if explicity ignored output in fact used
1682-
withpytest.warns(UserWarning,match=r"Output\(s\) specified as ignored is \(are\) used:"):
1684+
withpytest.warns(
1685+
UserWarning,
1686+
match=r"Output\(s\) specified as ignored is \(are\) used:"):
16831687
h=ct.interconnect([g,s,k],
16841688
inputs=['r'],
16851689
outputs=['y'],
16861690
ignore_outputs=['dy','u'])
16871691

1688-
withpytest.warns(UserWarning,match=r"Output\(s\) specified as ignored is \(are\) used:"):
1692+
withpytest.warns(
1693+
UserWarning,
1694+
match=r"Output\(s\) specified as ignored is \(are\) used:"):
16891695
h=ct.interconnect([g,s,k],
16901696
inputs=['r'],
16911697
outputs=['y'],
@@ -1697,3 +1703,25 @@ def test_interconnect_unused_output():
16971703
inputs=['r'],
16981704
outputs=['y'],
16991705
ignore_outputs=['v'])
1706+
1707+
deftest_nonuniform_timepts():
1708+
"""Test non-uniform time points for simulations"""
1709+
sys=ct.LinearIOSystem(ct.rss(2,1,1))
1710+
1711+
# Start with a uniform set of times
1712+
unifpts= [0,1,2,3,4,5,6,7,8,9,10]
1713+
uniform= [1,2,3,2,1,-1,-3,-5,-7,-3,1]
1714+
t_unif,y_unif=ct.input_output_response(sys,unifpts,uniform)
1715+
1716+
# Create a non-uniform set of inputs
1717+
noufpts= [0,2,4,8,10]
1718+
nonunif= [1,3,1,-7,1]
1719+
t_nouf,y_nouf=ct.input_output_response(sys,noufpts,nonunif)
1720+
1721+
# Make sure the outputs agree at common times
1722+
np.testing.assert_almost_equal(y_unif[noufpts],y_nouf,decimal=6)
1723+
1724+
# Resimulate using a new set of evaluation points
1725+
t_even,y_even=ct.input_output_response(
1726+
sys,noufpts,nonunif,t_eval=unifpts)
1727+
np.testing.assert_almost_equal(y_unif,y_even,decimal=6)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp