modelSwitchedRLC"An RLC circuit with a switch"typeVoltage=Real(unit="V");typeCurrent=Real(unit="A");typeResistance=Real(unit="Ohm");typeCapacitance=Real(unit="F");typeInductance=Real(unit="H");parameterVoltageVb=24"Battery voltage";parameterInductanceL=1;parameterResistanceR=100;parameterCapacitanceC=1e-3;VoltageVs;VoltageV;Currenti_L;Currenti_R;Currenti_C;equationVs=iftime>0.5thenVbelse0;i_R=V/R;i_C=C*der(V);i_L=i_R+i_C;L*der(i_L)=(Vs-V);endSwitchedRLC;
在该模型中,时间事件是通过一个 if 表达式来引入的。由于条件表达式中唯一随时间变化的变量就是时间,这意味着这将触发一个时间事件,并且底层的数值求解器能够在求解底层方程的过程中预先确定该事件何时发生。