Hi everyone, I have a serious problem, which I cannot solve myself. Task: I want to convert a SPICE subcircuit to a Simscape component using the matlab syntax "subcircuit2ssc(filename,target)" The SPICE subcircuit are only related to Inductors and mutual inductors. SPICE-model: .subckt Ckt_model_series 1 2 3 4 5 6 L1 1 4 3.93e-09 L2 2 5 5.35e-09 L3 3 6 5.39e-09 K12 L1 L2 0.38 K13 L1 L3 0.45 K23 L2 L3 0.19 .ends Ckt_model_series Problem: After converting I get the following message in the .ssc file: % Users should manually implement the following SPICE commands in order to % achieve a complete implementation: % ckt_model_series: K12 l1 l2 0.38 % ckt_model_series: K13 l1 l3 0.45 % ckt_model_series: K23 l2 l3 0.19 This basically means all three inductor coupling are not taken into consideration. According to this link my syntax should be right. Question: Where is my mistake and how can I manually implement the SPICE commands afterwards? I need this solution for even bigger circuits ...
Prashant Kumar answered .
2025-11-20
component ckt_model_series
% ckt_model_series
nodes
node_1 = foundation.electrical.electrical; % node_1
node_2 = foundation.electrical.electrical; % node_2
node_3 = foundation.electrical.electrical; % node_3
node_4 = foundation.electrical.electrical; % node_4
node_5 = foundation.electrical.electrical; % node_5
node_6 = foundation.electrical.electrical; % node_6
end
variables
L1 = {value={0,'A'},priority=priority.none};
L2 = {value={0,'A'},priority=priority.none};
L3 = {value={0,'A'},priority=priority.none};
end
branches
L1: node_1.i -> node_4.i;
L2: node_2.i -> node_5.i;
L3: node_3.i -> node_6.i;
end
equations
value(node_1.v-node_4.v,'V') == 3.93e-09*value(L1.der,'A/s')+0.38*sqrt(3.93e-09*5.35e-09)*value(L2.der,'A/s')+0.45*sqrt( ...
3.93e-09*5.39e-09)*value(L3.der,'A/s');
value(node_2.v-node_5.v,'V') == 5.35e-09*value(L2.der,'A/s')+0.38*sqrt(5.35e-09*3.93e-09)*value(L1.der,'A/s')+0.19*sqrt( ...
5.35e-09*5.39e-09)*value(L3.der,'A/s');
value(node_3.v-node_6.v,'V') == 5.39e-09*value(L3.der,'A/s')+0.45*sqrt(5.39e-09*3.93e-09)*value(L1.der,'A/s')+0.19*sqrt( ...
5.39e-09*5.35e-09)*value(L2.der,'A/s');
end
end