IEEEST Stabilizer Improvements/Corrections#460
Conversation
|
@pelesh this fix is also ready to be merged I forgot to make a PR for this one. |
509506c to
e2c07d8
Compare
pelesh
left a comment
There was a problem hiding this comment.
The logic governing changing differential into algebraic equations and vice versa does not seem to be sustainable. This requires more offline discussion.
| f[8] = tag_[4] * (-T2_ * (v5 - x5) + T1_ * (v4 - x5)) + (1 - tag_[4]) * (v4 - v5); | ||
| f[9] = tag_[5] * (-T4_ * (v6 - x6) + T3_ * (v5 - x6)) + (1 - tag_[5]) * (v5 - v6); | ||
| f[10] = tag_[6] * (-T6_ * v7 + Ks_ * T5_ * (v6 - x7)) + (1 - tag_[6]) * (Ks_ * v6 - v7); |
There was a problem hiding this comment.
I am not sure if this is a good idea. We are changing equations based on whether we defined other equations to be differential or algebraic. Furthermore, we rely here on implicit bool-to-integer and integer-to-floating point conversions. This logic needs to be implemented in a different way.
There was a problem hiding this comment.
I am not sure how to implement this without introducing template-y solutions. Do we want to move toward something like this where we define the model conditionally?
template <class ScalarT, typename IdxT, Order order, Block t2, Block t4, Block t6>But there are 31 different permutations, so there would be a lot of duplicate code. I don't know what the general approach should be, so I am open to any suggestions.
| tag_[0] = (a2_ != ZERO<RealT> || a3_ != ZERO<RealT> || a4_ != ZERO<RealT>); | ||
| tag_[1] = tag_[0]; | ||
| tag_[2] = (a3_ != ZERO<RealT> || a4_ != ZERO<RealT>); | ||
| tag_[3] = (a4_ != ZERO<RealT>); | ||
| tag_[4] = (T2_ != ZERO<RealT>); | ||
| tag_[5] = (T4_ != ZERO<RealT>); | ||
| tag_[6] = (T6_ != ZERO<RealT>); |
There was a problem hiding this comment.
The logic implemented this way will break when we add solvers that require DAEs implemented in Hessenberg form.
There was a problem hiding this comment.
Opened an issue #463 where hopefully we can discuss the general approach to take since this impacts almost every model
e2c07d8 to
bab57ad
Compare
8bbbad6 to
090289b
Compare
|
I have rebased and adjusted the formulation to align with #463 . |
755ee20 to
282fc1d
Compare
Description
Fixes and cleans up the
IEEESTstabilizer implementation and documentation.This updates the older initial implementation style so that reduced-order notch filters and zero denominator time constants are handled consistently
Proposed changes
IEEESTfrom the attached input signal instead of forcing all states to zero.Checklist
-Wall -Wpedantic -Wconversion -Wextra.Changelog changes N/A
Further comments
This is cleanup/correction work for the existing
IEEESTmodel, not a new model