integrate (fState11, l1, r11, v11); setState (fState22, i2 * l2); integrate (fState22, l2, r22, v22); // mutual inductances setState (fState12, i2 * M12); integrate (fState12, M12, r12, v12); setState (fState21, i1 * M12); integrate (fState21, M12, r21, v21); setD (VSRC_1, VSRC_1, -r11); setD (VSRC_1, VSRC_2, -r12); setD (VSRC_2, VSRC_2, -r22); setD (VSRC_2, VSRC_1, -r21); setE (VSRC_1, v11 + v12); setE (VSRC_2, v22 + v21); } // properties PROP_REQ [] = { { "L1", PROP_REAL, { 1e-3, PROP_NO_STR }, PROP_POS_RANGEX }, { "L2", PROP_REAL, { 1e-3, PROP_NO_STR }, PROP_POS_RANGEX }, { "k", PROP_REAL, { 0.9, PROP_NO_STR }, PROP_RNGXX (-1, 1) }, PROP_NO_PROP }; PROP_OPT [] = { PROP_NO_PROP }; struct define_t mutual::cirdef = { "MUT", 4, PROP_COMPONENT, PROP_NO_SUBSTRATE, PROP_LINEAR, PROP_DEF };
setState (fState32, i2 * M23); integrate (fState32, M23, r32, v32); setD (VSRC_1, VSRC_1, -r11); setD (VSRC_1, VSRC_2, -r12); setD (VSRC_1, VSRC_3, -r13); setD (VSRC_2, VSRC_1, -r21); setD (VSRC_2, VSRC_2, -r22); setD (VSRC_2, VSRC_3, -r23); setD (VSRC_3, VSRC_1, -r31); setD (VSRC_3, VSRC_2, -r32); setD (VSRC_3, VSRC_3, -r33); setE (VSRC_1, v11 + v12 + v13); setE (VSRC_2, v21 + v22 + v23); setE (VSRC_3, v31 + v32 + v33); } // properties PROP_REQ [] = { { "L1", PROP_REAL, { 1e-3, PROP_NO_STR }, PROP_POS_RANGEX }, { "L2", PROP_REAL, { 1e-3, PROP_NO_STR }, PROP_POS_RANGEX }, { "L3", PROP_REAL, { 1e-3, PROP_NO_STR }, PROP_POS_RANGEX }, { "k12", PROP_REAL, { 0.9, PROP_NO_STR }, PROP_RNGXX (-1, 1) }, { "k13", PROP_REAL, { 0.9, PROP_NO_STR }, PROP_RNGXX (-1, 1) }, { "k23", PROP_REAL, { 0.9, PROP_NO_STR }, PROP_RNGXX (-1, 1) }, PROP_NO_PROP }; PROP_OPT [] = { PROP_NO_PROP }; struct define_t mutual2::cirdef = { "MUT2", 6, PROP_COMPONENT, PROP_NO_SUBSTRATE, PROP_LINEAR, PROP_DEF };