We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I tried to run my MODELICA model for synchronous machine with a quadratic saturation in Modia
SynchronousMachine = SynchrPart | Model( Omegarated=Var(_outer=true), rfd = 0.00037, xfd = 0.2181, xf1d = 0.0011, S10 = 0.18858668, S12 = 0.43618116, KIS = 0.15, a = parameter | Map(value=:(sqrt(S10/(S12*1.2)))), A = parameter | Map(value=:(1.2 + 0.2/(a - 1.0))), B = parameter | Map(value=:(S12*1.2* (a - 1.0)^2/(1.0 - 1.2)^2)), Plus = Pin, Minus = Pin, equations = :[ ifd = Plus.i Plus.i + Minus.i = 0.0 uF = Plus.v - Minus.v imRe = iRe + i1Re + ifd imIm = iIm + i1Im PsimRe = xadSat * imRe PsimIm = xaqSat * imIm Psifd = Psif1d + ifd * xfd + xadSat * imRe # ^^^^^^^^^^^^^ this is identical with PsimRe (def. above) Psif1d = xf1d * (i1Re + ifd) uF*rfd/xad = rfd*ifd + (der(Psifd))/Omegarated PsimAbs = sqrt(PsimRe*PsimRe+PsimIm*PsimIm) psiM1 = max(0.1, PsimAbs + KIS*current) saturation = if (psiM1 > A); B*((psiM1-A)^2.0)/psiM1; else 0.0; end satD = 1.0 + saturation satQ = 1.0 + xq/xd * saturation xadSat = xad/satD xaqSat = xaq/satQ ] )
imRe = iRe + i1Re + ifd imIm = iIm + i1Im PsimRe = xadSat * imRe PsimIm = xaqSat * imIm Psifd = Psif1d + ifd * xfd + PsimRe # ^^^^^^ replaced Psif1d = xf1d * (i1Re + ifd) uF*rfd/xad = rfd*ifd + (der(Psifd))/Omegarated PsimAbs = sqrt(PsimRe*PsimRe+PsimIm*PsimIm) psiM1 = max(0.1, PsimAbs + KIS*current) saturation = if (psiM1 > A); B*((psiM1-A)^2.0)/psiM1; else 0.0; end
Basically the system of equations are the identical. But in implementation the expression PsimRe = xadSat * imRe is handled in a different way.
PsimRe = xadSat * imRe
in the MODELICA model I used Complex() values. In Modia it was necessary to spit explicit in Re and Im part.
Re
Im
name = "ModiaLang" version = "0.9.0-dev" name = "ModiaBase" version = "0.8.0-dev"
The text was updated successfully, but these errors were encountered:
No branches or pull requests
I tried to run my MODELICA model for synchronous machine with a quadratic saturation in Modia
my 1st attempt ==> unstable
after modification ==> OK
Basically the system of equations are the identical. But in implementation the expression
PsimRe = xadSat * imRe
is handled in a different way.remark
in the MODELICA model I used Complex() values. In Modia it was necessary to spit explicit in
Re
andIm
part.versions
name = "ModiaLang" version = "0.9.0-dev"
name = "ModiaBase" version = "0.8.0-dev"
The text was updated successfully, but these errors were encountered: