Open Modelica, work with an RLC-circuit

  • #1
Lotos
2
1
Homework Statement
Convert one RLC graph to another using equations
Relevant Equations
dIL/dt=(Uin-R*IL-Uc)/L;
dUc/dt=IL-Iout/C
Good day.
I am studying Open Modelica and building RLC.
I was given the following task:

From the initial network
120453-b86d623096e67e1cf90e3aae372c1b0e.png


make one (sample graphics on Scilab but needs in Open Modelica)
120455-c21360bb619a636c1c586e4178e5bf08.jpg


As you can see in the graph that is presented in scilab, the graphs start from different points.
Here is a list of equations that I implement in the Open Model for the 1st figure(Working,the main example in Modelica)
Code:
model Lab5

extends Modelica.Icons.Example;
type Voltage=Real(unit="V");
type Current=Real(unit="A");
type Resistance=Real(unit="Ohm");
type Capacitance=Real(unit="F");
type Inductance =Real(unit="H");

parameter Modelica.SIunits.Resistance R=100 "Resistance";
parameter Modelica.SIunits.Inductance L=1 "Inductance";
parameter Modelica.SIunits.Voltage Vb=24 "Total DC Voltage";
parameter Modelica.SIunits.Capacitance C=1e-3 "Capacitance";
Voltage V;
Current i_L;
Current i_R;
Current i_C;

equation
V = i_R * R;
C * der(V) = i_C;
L * der(i_L) = Vb - V;
i_L = i_R + i_C;
And these are attempts to implement for my assignment(not working and buildin)

Code:
extends Modelica.Icons.Example;
type Voltage=Real(unit="V");
type Current=Real(unit="A");
type Resistance=Real(unit="Ohm");
type Capacitance=Real(unit="F");
type Inductance =Real(unit="H");

parameter Modelica.SIunits.Resistance R=100 "Resistance";
parameter Modelica.SIunits.Inductance L=1 "Inductance";
parameter Modelica.SIunits.Voltage Vb=24 "Total DC Voltage";
parameter Modelica.SIunits.Capacitance C=1e-3 "Capacitance";

Current u_Vx;
Current u_L;
Current u_R;
Current u_C;
Current i_Vx;
Current i_L;
Current i_R;
Current i_C;

equation
i_L=i_C+i_Vx;
i_R=i_L;
u_L=u_R+u_C;
u_Vx=u_L;
C*der(u_C)=i_C;
L*der(i_L)=u_L;
der(i_L)=(u_Vx-R*i_L-u_C)/L;
der(u_C)=(i_L-i_Vx)/C;

I know, that is this equations errors(a lot of variables, but not enought equations) and wrong scheme for solving equations.
What and how do I need to fix my equations?
 
Physics news on Phys.org
  • #2
Modified the code a little to match the calculations and variables.

Code:
model Lab5
  extends Modelica.Icons.Example;
  type Voltage=Real(unit="V");
  type Current=Real(unit="A");
  type Resistance=Real(unit="Ohm");
  type Capacitance=Real(unit="F");
  type Inductance =Real(unit="H");
 
  parameter Modelica.SIunits.Resistance R=100 "Resistance";
  parameter Modelica.SIunits.Inductance L=1 "Inductance";
  parameter Modelica.SIunits.Voltage Vb=24 "Total DC Voltage";
  parameter Modelica.SIunits.Capacitance C=1e-3 "Capacitance";
  Current u_Vx;
  Current u_L;
  Current u_R;
  Current u_C;
  Current i_Vx;
  Current i_L;
  Current i_R;
  Current i_C;
 
equation 
  i_L = 5;
  u_C =3;
  i_R=i_L+i_Vx+i_C;
  u_Vx=u_L+u_R+u_C;
 
  C*der(u_C)=u_C; 
  L*der(i_L)=i_L; 
  der(i_L)=(u_Vx-R*i_L-u_C)/L;
  der(u_C)=(i_L-i_Vx)/C;  annotation(
    uses(Modelica(version = "3.2.3")));
end Lab5;

But the following errors appeared

Code:
Internal error IndexReduction.pantelidesIndexReduction failed! Found empty set of continuous equations. Use -d=bltdump to get more information.
Internal error Transformation Module PFPlusExt index Reduction Method Pantelides failed!
 

Similar threads

Replies
28
Views
3K
Replies
2
Views
1K
Replies
8
Views
2K
Replies
2
Views
1K
Replies
5
Views
2K
Replies
1
Views
10K
Replies
17
Views
5K
Replies
8
Views
1K
Back
Top