#
msgid ""
msgstr ""
"Project-Id-Version: Modelica by Example v0.3.6\n"
"Report-Msgid-Bugs-To: mail@modelica.co.kr\n"
"POT-Creation-Date: 2023-01-28 22:37+0000\n"
"PO-Revision-Date: 2023-03-12 22:37+0000\n"
"Last-Translator: Baek Youngjin, mail@modelica.co.kr / Ha HyeonSu, <iloveyou934671@gmail.com>\n"
"Language-Team: modelica.co.kr <mail@modelica.co.k>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.6.0\n"


#: ../../source/behavior/discrete/when.rst:4
msgid "When"
msgstr ""
"When 구문"

#: ../../source/behavior/discrete/when.rst:8
msgid ""
"By using ``when``, we can express conditions we are interested in "
"reacting to and what we wish to do in response to them.  In this section,"
" we'll review the key ideas behind ``when`` statements.  A ``when`` "
"statement has the following general form:"
msgstr ""
"``when`` 을 사용하여  반응하고자 하는 조건과 그에 대한 반응으로 무엇을 하고 싶은지 표현할 수 있습니다."
"이 섹션에서는 ``when`` 문 이 가지고 있는 핵심 아이디어를 살펴 보겠습니다. "
"``when`` 문은 다음과 같은 일반적인 형식을 갖습니다."


#: ../../source/behavior/discrete/when.rst:22
msgid "``if`` vs. ``when``"
msgstr ""
"``if`` 와 ``when`` 비교(``if`` vs. ``when``)"

#: ../../source/behavior/discrete/when.rst:24
msgid ""
"In our discussion on :ref:`hysteresis`, we briefly discussed the "
"difference between an ``if`` statement and a ``when`` statement.  The "
"statements in a ``when`` statement become active only for an instant when"
" the triggering conditional expression becomes true.  At all other times,"
" the ``when`` statement has no effect.  An ``if`` statement or ``if`` "
"expression remains active as long as the conditional expression is true."
"  If the ``if`` statement or ``if`` expression includes an ``else`` "
"clause then some branch will always be active."
msgstr ""
":ref:`hysteresis` 에 대해 논의 할 때 ``if`` 문과 ``when`` 문 사이의 차이점에 대해 간략하게 논의했습니다. "
"``when`` 문에 있는 구문은 트리거 조건식이 참이 되는 순간에만 활성화되고, 모든 나머지 경우에는 효과가 없습니다. "
"``if`` 문 또는 ``if`` 표현식은 조건식이 참인 동안 활성 상태를 계속 유지합니다. "
"그리고, ``if`` 문 또는 ``if`` 표현식에 ``else`` 절이 포함되어 있으면 일부 분기가 항상 활성화됩니다."


#: ../../source/behavior/discrete/when.rst:34
msgid "Expressions"
msgstr ""
"표현(Expressions)"

#: ../../source/behavior/discrete/when.rst:36
msgid ""
"Most of the time, the expression ``expr`` is going to be a conditional "
"expression and usually it will involve relational operators.  Typical "
"examples of expressions frequently used with a ``when`` statement would "
"be ``time>=2.0``, ``x>=y+2``, ``phi<=prev_phi`` and so on. Recall from "
"our discussion of the :ref:`interval-measurement` speed estimation "
"algorithm that you should **almost always** put the ``pre`` operator "
"around any variables in ``expr`` that also appear inside the ``when`` "
"statement."
msgstr ""
"대부분의 경우 ``expr`` 표현식은 조건식이며 일반적으로 관계 연산자를 포함합니다. "
"``when`` 문과 함께 자주 사용하는 대표적인 표현으로는 ``time>=2.0`` , ``x>=y+2`` , ``phi<=prev_phi`` 등이 있습니다. "
":ref:`interval-measurement` 섹션의 속도 추정 알고리즘에서 다루었듯이, ``expr`` 내부에 있는 변수 주위에 **거의 대부분** ``pre`` 연산자를 넣어야 하는 것도 고려 해야합니다.. "



#: ../../source/behavior/discrete/when.rst:45
msgid ""
"In the :ref:`bouncing-ball` example, we saw a case where ``expr`` was not"
" a (scalar) conditional expression, but rather a vector of conditional "
"expressions.  Recall from that discussion that the ``when`` statement "
"becomes active if **any** of the conditions in the vector of expressions "
"becomes true."
msgstr ""
":ref:`bouncing-ball` 예제에서 ``expr`` 이 (스칼라) 조건식이 아니라 조건식의 벡터인 경우 또한 살펴 보았습니다. "
"표현식 벡터의 조건 중 **어느** 것이라도  참이 되면 ``when`` 문이 활성화된다는 사실을 기억해야 합니다."


#: ../../source/behavior/discrete/when.rst:52
msgid "Statements"
msgstr ""
"서술(Statements)"

#: ../../source/behavior/discrete/when.rst:54
msgid ""
"A ``when`` statement is used to define new values for some variables. "
"These new values can be assigned in one of two ways.  The first is by "
"introducing an equation of the form:"
msgstr ""
"``when`` 문은 일부 변수에 대한 새 값을 정의하는 데 사용하는 경우가 있는데, 두 가지 방법 중 하나로 할당할 수 있습니다. "
"첫 번째는 다음 형식의 방정식을 사용하는 것 입니다."



#: ../../source/behavior/discrete/when.rst:62
msgid ""
"In this case, the variable ``var`` will be given the value of ``expr``.  "
"Within ``expr``, the ``pre`` operator should be used when referring to "
"the pre-event value for a variable.  Any variable assigned in this way is"
" a discrete variable.  This means that its value only changes during "
"events.  In other words, it will be a piecewise constant function.  Note,"
" a variable assigned in this way cannot be continuous over any interval "
"in the simulation."
msgstr ""
"이 경우 변수 ``var`` 에는 ``expr`` 값이 주어집니다. "
"``expr`` 내부에 있는 변수에서 이전 이벤트에서의 값을 사용할 때 ``pre`` 연산자를 적용하며, 이러한 방식으로 할당된 모든 변수는 이벤트 중에만 값이 변경되는 이산 변수입니다. "
"그리고, 구간적 상수 함수(piecewise constant function)가 되는데, 이러한 방식으로 할당된 변수는 어떠한 시뮬레이션 시간 스탭에서도 연속적일 수 없습니다."



#: ../../source/behavior/discrete/when.rst:70
msgid ""
"If you want to explicitly mark a variable as discrete, you can prefix it "
"with the ``discrete`` qualifier (as we saw in the :ref:`sample-and-hold` "
"example earlier in this chapter) although this is not strictly necessary."
"  By adding the ``discrete`` qualifier you ensure that the variable's "
"value must be determined within a ``when`` statement."
msgstr ""
"불연속형 변수를 명시적으로 표시하려면 ``discrete`` 한정자를 접두사로 붙일 수 있습니다(이 장 앞부분의 :ref:`sample-and-hold` 예제에서 본 것처럼)."
"꼭 필요한 것은 아니지만. ``discrete`` 한정자를 추가하면 ``when`` 문 내에서 변수의 값을 결정 하도록 할 수 있습니다."


#: ../../source/behavior/discrete/when.rst:79
msgid ""
"The other way a variable can be given a value within a ``when`` "
"statement, as demonstrated in the :ref:`bouncing-ball` example, is by "
"using the ``reinit`` operator.  In that case, the statement within the "
"``when`` statement will take the form:"
msgstr ""
"``when`` 문 내에서 변수에 값을 부여할 수 있는 다른 방법은 ``reinit`` 연산자를 사용하는 것입니다."
"이 경우 ``when`` 문 내에서 다음과 같은 형식을 취합니다."


#: ../../source/behavior/discrete/when.rst:88
msgid ""
"When using the ``reinit`` operator, the variable, ``var``, **must be a "
"state**.  In other words, its solution must arise from solving a "
"differential equation.  The use of ``reinit`` on such a variable has the "
"effect of stopping the integration process, changing the value of the "
"state (and any other states that have the ``reinit`` operator applied to "
"them within the same ``when`` statement) and then resuming integration "
"using what are effectively a new set of initial conditions.  The values "
"of all other states not re-initialized with the ``reinit`` operator "
"remain unchanged."
msgstr ""
"``reinit`` 연산자를 사용할 때 ``var`` 변수는 **상태 값이여야 합니다** ."
"즉, 그 해는 미분방정식을 푸는 것으로부터 나와야 합니다. "
"이러한 변수에 ``reinit`` 을 사용하면 적분을 멈추고, 상태 (및 동일한 ``when`` 내에서 적용된 ``reinit`` 연산자가 영향을 주는 다른 모든 상태)의 값을 변경합니다. "
"그런 다음, 새로운 초기 조건 세트를 사용하여 효과적으로 적분을 다시 시작합니다. "
"이때, ``reinit`` 연산자로 다시 초기화되지 않은 다른 모든 상태의 값은 변경되지 않습니다."


#: ../../source/behavior/discrete/when.rst:101
msgid "``algorithm`` Sections"
msgstr ""
"``알고리즘`` 섹션(``algorithm`` Sections)"

#: ../../source/behavior/discrete/when.rst:104
msgid ""
"One final note about ``when`` statements is how they interact with the "
"\"single assignment\" rule in Modelica.  This rule, from the "
"specification, states that there must be exactly one equation used to "
"determine the value of each variable.  As we saw in the sections on :ref"
":`speed-measurement` and :ref:`hysteresis`, it is sometimes necessary (or"
" at least clearer) to express behavior in terms of multiple assignments."
"  In those cases, if all the assignments are included within a single "
"``algorithm`` section, they are effectively combined into a single "
"equation.  However, doing so will limit the compiler's ability to perform"
" symbolic manipulation and, therefore, may impact simulation performance "
"and/or reusability of the models."
msgstr ""
"``when`` 문에 대해 다루는 마지막 사항은 모델리카의 "단일 할당" 규칙과의 상호 작용 방법에 대한 것 입니다. "
"단일 할당 규칙은 각 변수의 값을 결정하는 데 사용하는 방정식이 정확히 하나여야 한다고 모델리카 스팩에서 명시합니다."
":ref:`speed-measurement` 및 :ref:`hysteresis` 섹션에서 본 것처럼 다중 할당 측면에서 동작을 표현하는 것이 때때로 필요하거나 적어도 더 명확한 경우가 있는데,"
"이러한 경우 모든 할당이 하나의 ``algorithm`` 섹션에 포함되어 있으면 효과적으로 단일 방정식으로 결합됩니다. "
"그러나 이렇게 하면 기호 조작을 수행하는 컴파일러의 기능이 제한되므로 시뮬레이션 "
"성능 또는 모델의 재사용 가능성에 영향을 미칠 수 있습니다."


#: ../../source/behavior/discrete/when.rst:116
msgid ""
"It is also worth noting that if the semantics of an ``algorithm`` section"
" are needed during initialization, Modelica includes an ``initial "
"algorithm`` section that is analogous to the ``initial equation`` section"
" discussed in the previous discussion on :ref:`initialization`.  The "
"``initial algorithm`` section will be applied only during the "
"initialization phase to determine initial conditions, just like an "
"``initial equation`` section, but the ``initial algorithm`` section will "
"allow multiple assignments to the same variable.  The same caveats apply "
"with respect to symbolic manipulation."
msgstr ""
"또한 초기화 방법 중에서 모델리카에는 논의된 ``initial equation`` 섹션과 유사한 형태로  ``algorithm`` 섹션에서 필요한 경우 사용하는, ``initial algorithm`` 섹션이 있습니다. "
":ref:`initialization` 에 대한 이전 논의에서. ``initial algorithm`` 섹션은 ``initial equation`` 섹션과 마찬가지로 초기 조건을 "
"결정하기 위한 초기화 단계에서만 적용되지만 ``initial algorithm`` 섹션은 동일한 변수에 대한 다중 할당을 허용합니다. "
"기호 조작과 관련하여 앞서 논의한 경고와 동일하게 적용됩니다."


#~ msgid ""
#~ "One final note about ``when`` statements"
#~ " is how they interact with the "
#~ "\"single assignment\" rule in Modelica.  "
#~ "This rule, from the specification, "
#~ "states that there must be exactly "
#~ "one equation used to determine the "
#~ "value of each variable.  As we saw"
#~ " in the sections on :ref:`speed-"
#~ "measurement` and :ref:`hysteresis`, it is "
#~ "sometimes necessary (or least clearer) "
#~ "to express behavior in terms of "
#~ "multiple assignments.  In those cases, "
#~ "if all the assignments are included "
#~ "within a single ``algorithm`` section, "
#~ "they are effectively combined into a "
#~ "single equation.  However, doing so will"
#~ " limit the compiler's ability to "
#~ "perform symbolic manipulation and, therefore,"
#~ " may impact simulation performance and/or"
#~ " reusability of the models."
#~ msgstr ""

#~ msgid "when"
#~ msgstr ""

#~ msgid "reinit"
#~ msgstr ""

