Open Modelica, work with an RLC-circuit

  • Context: Engineering 
  • Thread starter Thread starter Lotos
  • Start date Start date
  • Tags Tags
    Rlc circuit Work
Click For Summary
SUMMARY

The discussion focuses on using Open Modelica to simulate an RLC circuit, specifically addressing issues with the implementation of equations in the Modelica environment. The user provided code snippets for a model named "Lab5," which includes parameters for resistance, inductance, voltage, and capacitance. Errors encountered during simulation include "Internal error IndexReduction.pantelidesIndexReduction failed!" indicating a lack of sufficient continuous equations. The user seeks guidance on correcting the equations to resolve these errors.

PREREQUISITES
  • Familiarity with Open Modelica version 3.2.3
  • Understanding of RLC circuit theory and components
  • Knowledge of Modelica syntax and equation formulation
  • Experience with debugging simulation errors in modeling software
NEXT STEPS
  • Review Modelica documentation on equation formulation and index reduction techniques
  • Learn about the Pantelides algorithm for index reduction in dynamic systems
  • Explore examples of RLC circuit simulations in Open Modelica
  • Investigate common errors in Open Modelica and their resolutions
USEFUL FOR

Students and engineers working with Open Modelica, particularly those involved in circuit simulation and modeling, as well as anyone troubleshooting equation-related errors in dynamic systems.

Lotos
Messages
2
Reaction score
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
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 3 ·
Replies
3
Views
866
  • · Replies 28 ·
Replies
28
Views
3K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
10K
  • · Replies 17 ·
Replies
17
Views
6K
  • · Replies 14 ·
Replies
14
Views
5K
  • · Replies 8 ·
Replies
8
Views
2K