C++ Programming, Computer Science

C++ Statements&Declaration of Variables.

BEFORE: C++ Principles of Object-Oriented Programming

NEXT: C++ Types, Variables and Arithmetic

Statements

A C++ program is comprised of various components such as functions, methods, classes, etc. The instructions that form part of a C++ program typically reside inside of functions or methods. These functions are comprised of C++ statements. You will find yourself using various types of statements in your C++ code as listed here:

  • declarations – these are used to declare variables and constants that will be used in your application
  • assignments – these are used to assign values to variables in your application code
  • preprocessor directives – covered in the topic on Code Formatting
  • comments – used to document your code
  • function declarations – covered in the topic on Code Formatting
  • executable statements – these are used to perform operations and execute instructions. Examples would be cout << «Hello World!»; which outputs Hello World! to the console.

In C, all variables must be declare before they are used in executable statements. Their actual use appears elsewhere in the scope, sometimes far away. So, we should go back at the beginning of the program if we want to see its type or its initialization.

C++ allows the declaration of a variable anywhere in the scope. This means that a variable can be declared right at the place of its first use. This makes the program much easier to write or read, so that reducing the errors is more efficient.

Declaration

A declaration is a statement that introduces a name into the program. It specifies a type for the named entity:

  • A type defines a set of possible values and a set of operations (for an object).
  • An object is some memory that holds a value of some type.
  • A value is a set of bits interpreted according to a type.
  • A variable is a named object.

We first look at the definition of scope and dynamic initialization of the variables.

Scope Resolution Operator.

C++ is a block-structured language. The same variable name can be used to have different meanings in different blocks. The scope of the variable extends from the point of its declaration till the end of the block containing the declaration. A variable declared inside a block is said to be local to that block. Consider the following segment of a program:

…..

{

     int x = 20;

…..

…..

}

…..

…..

{

     int x = 10;

…..

…..

}

The two declaration of x to two different memory locations containing different values. Statements in the second block cannot to the variable x declared in the first block. Another style is as follows:

Block two is contained in the block one. The declaration inner inner block hides a declaration of the same variable in an outer block, therefore, each declaration of x causes it to refer a different data object. Within the inner block, the variable x will refer to the data object declared therein.

In C, the global version of a variable cannot be accessed from within the inner block. C++ resolves this problem by introducing a new operator :: called the scope resolution operator. This can be to uncover a hidden variable. It takes the following form:

This operator allows access to the global version of a variable. To illustrate the concepts presented so far, let’s see an example:

#include «stadfx.h»

#include <iostream>

using namespace std;

int m = 10; //global m

int main()

{

int m=20; //local m

{

int k = m;

int m = 30;//local m to inner block

cout << «We are in a inner block \n»;

cout << «k = » << k << «\n»;

cout << «m = » << m << «\n»;

cout << «::m = » << :: m << «\n»;

}

cout << «\n We are in a outer block \n»;

cout << «m = » << m << «\n»;

cout << «::m = » << ::m << «\n»

return 0;

}

Output:

A major application of the scope resolution operator is in the classes to identify the class to which a member function belongs. This will be dealt in detail later where the classes are introduced.

In the previous example the operator int determines the type of the data as integer. This lead us to the definition of data types in C++.

Basic Data Types

Data types in C++ can be classified under various categories as shown in Figure 3.1:

Both C and C++ compilers support all the built-in data type (also called basic data types), which seize and range is shown as follows:

The type void has two normal uses: 1) to specify the return type of a function when it is not returning any value, and 2) to indicate an empty argument list to a function. Example:

void functl(void);

We will explain more about every type of data as we come into more complex examples.

BEFORE: C++ Principles of Object-Oriented Programming

NEXT: C++ Types, Variables and Arithmetic

Note: I recommend Visual Studio IDE (Interface Development Environment) , and after Introducción a C++ en Visual Studio.

Source:

  1. BalaguruswamyObjectOrientedProgrammingWithC++Fourth
  2. 2-Tour-Basics
  3. Curso  Module 1 Introducing C++  C++ Fundamentals

 

Review by: Larry Francis Obando – Technical Specialist – Educational Content Writer.

Escuela de Ingeniería Eléctrica de la Universidad Central de Venezuela, Caracas.

Escuela de Ingeniería Electrónica de la Universidad Simón Bolívar, Valle de Sartenejas.

Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.

Contact: Caracas, Quito, Guayaquil, Cuenca – Telf. 00593998524011

WhatsApp: +593998524011

email: dademuchconnection@gmail.com

Computer Science, Programación en C++

C++ Declaración de variables

ANTERIOR: C++ Principios de la programación orientada a objetos

SIGUIENTE: C++ Tipo de variables y aritmética

Statements

Un programa C ++ se compone de varios componentes, tales como funciones, métodos, clases, etc. Las instrucciones que forman parte de un programa C ++ normalmente residen dentro de funciones o métodos. Estas funciones están compuestas por “statements” C ++. Encontrarás varios tipos de “statements” en tu código C ++ como se detalla a continuación:

  • declaraciones (declarations) – estas se usan para declarar variables y constantes que se usarán en la aplicación
  • asignaciones (assignments) – estas se usan para asignar valores a las variables en su código de aplicación
  •  directivas del pre procesador (preprocessor directives) – cubierto en el tema sobre Formato de código
  • comentarios (comments) – documentación del código
  • declaración de funciones (function declarations) – cubierto en el tema sobre Formato de código
  • declaraciones ejecutables (executable statements) – estos se utilizan para realizar operaciones y ejecutar instrucciones. Ejemplos serían cout << «Hello World!»; que imprime la palabra Hello World! e la consola.

En C, todas las variables deben declararse antes de que se utilicen en sentencias ejecutables. Su uso real aparece en otra parte del campo de aplicación (scope), a veces muy lejos. Entonces, deberíamos volver al comienzo del programa si queremos ver su tipo o su inicialización.

C ++ permite la declaración de una variable en cualquier parte del scope. Esto significa que una variable puede declararse directamente en el lugar de su primer uso. Esto hace que el programa sea mucho más fácil de escribir o leer, por lo que reducir los errores es más eficiente.

Declaración

Una declaración es una sentencia que introduce un nombre en el programa. Especifica un tipo para la entidad nombrada:

  • Un tipo (type) define un conjunto de valores posibles y un conjunto de operaciones (para un objecto).
  • Un objeto (object) es una unidad de memoria que tiene un valor de algún tipo.
  • Un valor (value) es un conjunto de bits interpretados de acuerdo a un tipo.
  • Una variable (variable) es el nombre de un objeto.

Primero observamos la definición de alcance (scope) de las variables.

Operador scope (Scope Resolution)

C ++ es un lenguaje estructurado por bloques. El mismo nombre de variable se puede usar para tener diferentes significados en diferentes bloques. El scope de la variable se extiende desde el punto de su declaración hasta el final del bloque que contiene la declaración. Una variable declarada dentro de un bloque se dice que es local a ese bloque. Considere el siguiente segmento de un programa:

…..

{

int x = 20;

…..

…..

}

…..

…..

{

int x = 10;

…..

…..

}

Las dos declaraciones de x se remiten a dos ubicaciones de memoria diferentes que contienen diferentes valores. Las declaraciones en el segundo bloque no pueden acceder a la variable x declarada en el primer bloque. Otro estilo es el siguiente:

El bloque dos está contenido en el bloque uno. El bloque interno de declaración, oculta una declaración de la misma variable en un bloque externo, por lo tanto, cada declaración de x hace que remita un objeto de datos diferente. Dentro del bloque interno, la variable x se referirá al objeto de datos declarado allí.

En C, no se puede acceder a la versión global de una variable desde dentro del bloque interno. C ++ resuelve este problema introduciendo el nuevo operador :: llamado operador de resolución de alcance (scope resolution operator). Esto puede ser para descubrir una variable oculta. Toma la siguiente forma:

Este operador permite el acceso a la versión global de una variable. Para ilustrar los conceptos presentados hasta ahora, veamos el siguiente ejemplo:

#include «stadfx.h»

#include <iostream>

using namespace std;

int m = 10; //global m

int main()

{

int m=20;//local m

{

int k = m;

int m = 30;//local m to inner block

cout << «We are in a inner block \n»;

cout << «k = » << k << «\n»;

cout << «m = » << m << «\n»;

cout << «::m = » << :: m << «\n»;

}

cout << «\n We are in a outer block \n»;

cout << «m = » << m << «\n»;

cout << «::m = » << ::m << «\n»

return 0;

}

Salida:

Una aplicación principal del operador :: está en classes para identificar la clase a la que pertenece una función miembro. Esto se tratará en detalle más adelante donde hablaremos de classes.

En el ejemplo anterior, el operador int determina el tipo de datos como un entero. Esto nos lleva a la definición de tipos de datos en C ++.

Tipos Básicos de Datos (Basic Data Types)

Los tipos de datos en C ++ se pueden clasificar en varias categorías, como se muestra en la Figura 3.1:

Los compiladores C y C ++ son compatibles con todos los tipos de datos built-in (también llamados tipos básicos de datos), que se capturan y se muestran de la siguiente figura:

El tipo void tiene dos usos normales: 1) para especificar el tipo de retorno de una función cuando no devuelve ningún valor, y 2) para indicar una lista de argumento vacía para una función. Ejemplo:

void functl(void);

Explicaremos más acerca de cada tipo de datos a medida que ingresamos a ejemplos más complejos.

ANTERIOR: C++ Principios de la programación orientada a objetos

SIGUIENTE: C++ Tipo de variables y aritmética

Fuente:

  1. BalaguruswamyObjectOrientedProgrammingWithC++Fourth
  2. 2-Tour-Basics
  3. Curso  Module 1 Introducing C++  C++ Fundamentals

Revisión Literaria hecha por: Larry Francis Obando – Technical Specialist – Educational Content Writer.

Escuela de Ingeniería Electrónica de la Universidad Simón Bolívar, Valle de Sartenejas.

Escuela de Ingeniería Eléctrica de la Universidad Central de Venezuela, Caracas.

Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.

Contact: Caracas, Quito, Guayaquil, Jaén– Telf. +34 633129287

WhatsApp: +34 633129287

email: dademuchconnection@gmail.com

Control System Analysis, PID Control

PID – Basic Control System Actions

BEFORE:  Steady-State error control system

NEXT: PID – Effect of integrative and derivative control actions.

Introduction

An automatic controller compares the real value of the output of a plant with the input reference (the desired value), determines the deviation and produces a control signal that will reduce the deviation to zero or a small value. The way in which the automatic controller produces the control signal is called control action.

Classification of industrial controls

According to their control actions, industrial controllers are classified as:

  1. Two-position (On / Off)
  2. Proportional
  3. Integrals
  4. Proportional-Integrals
  5. Proportional-Derivatives
  6. Proportional-Integrals-Derivatives

Almost all industrial controllers use electricity as an energy source or a pressurized fluid, such as oil or air. The controllers can also be classified, according to the type of energy they use in their operation, like pneumatic, hydraulic or electronic. The type of controller that is used must be decided based on the nature of the plant and operational conditions, including considerations such as safety, cost, availability, reliability, precision, weight and size.

Figure 5-1 shows a typical configuration for an Industrial Control System:

The previous figure consists of a Block Diagram for an industrial control system composed of an automatic controller, an actuator, a plant and a sensor (measuring element). The controller detects the error signal, which is usually at a very low power level, and amplifies it to a sufficiently high level. The output of an automatic controller feeds an actuator that can be a pneumatic valve or an electric motor. The actuator is a power device that produces the input for The plant according to the control signal, so that the output signal approaches the reference input signal. The sensor, or measurement element, is a device that converts an output variable, such as a displacement, into another manageable variable, such as a voltage, that can be used to compare the output with the reference input signal. This element is in the feedback path of the closed-loop system. The setpoint of the controller must be converted into a reference input with the same units as the feedback signal from the sensor or from the measuring element.

Two positions control (On / Off).

In a two position control system, the acting element only has two fixed positions that, in many cases, are simply turned on and off. The On/Off control is relatively simple and cheap, which is why it is extensively used in industrial and domestic control systems.

Suppose that the output signal of the controller is u(t) and that the error signal is e(t). In the control of two positions, the signal u(t) remains at a value either maximum or minimum, depending on whether the error signal is positive or negative. In this way,

where U1 y U2 are constants. Very often, the minimum value of U2 is zero or –U1.

It is common for two-position controllers to be electrical devices, in which case an electrical valve operated by solenoids is widely used. Pneumatic proportional controllers with very high gains function as two-position controllers and are sometimes referred to as two-position pneumatic controllers.

Figures 5-3 (a) and (b) show the block diagrams for two controllers of two positions The range in which the error signal must move before the commutation is called differential gap. In Figure 5-3 (b) a differential gap is indicated. Such a gap causes the output of the controller u (t) to retain its present value until the error signal has moved slightly beyond zero. In some cases, the differential gap is the result of unintentional friction and a lost movement; however, it is often intentionally caused to avoid too frequent operation of the on and off mechanism.

Proportional control action.

For a controller with proportional control action, the relationship between the controller output u (t) and the error signal e (t) is:

or, in quantities transformed by the Laplace method:

where Kp is considered proportional gain.

Whatever the actual mechanism and the form of the operating power, the controller

proportional is, in essence, an amplifier with an adjustable gain. A block diagram of such a controller is presented in Figure 5-6.

Integral control action.

In a controller with integral control action, the value of the controller output u (t) is changed to a ratio proportional to the error signal e (t). That is to say,

O well:

where Ki is an adjustable constant. The transfer function of the integral controller is:

If the value of e (t) is doubled, the value of u (t) varies twice as fast. For an error of zero, the value of u (t) remains stationary. Sometimes, the integral control action is called adjustment control (reset). Figure 5-7 shows a block diagram of such controller.

 

Integral-proportional control action.
The control action of a proportional-integral controller (PI) is defined by:

null

or the transfer function of the controller, which is:

null

where Kp is the proportional gain and Ti is called integral time. Both Kp and Ti are adjustable. Integral time adjusts the integral control action, while a change in the value of Kp affects the integral and proportional parts of the control action.

The inverse of the integral time Ti is called the readjustment speed. The rate of readjustment is the number of times per minute that the proportional part of the control action is doubled. The rate of readjustment is measured in terms of the repetitions per minute. The Figure 5-8 (a) shows a block diagram of a PI controller. If the error signal e (t) is a unit step function, as shown in Figure 5-8 (b), the controller output u (t) becomes what is shown in Figure 5-8 (c).

null

null

null

Proportional-derivative control action.
The control action of a proportional-derivative (PD) controller is defined by:

null

The transfer function is:

null

where Kp is the proportional gain and Td is a constant called derivative time. Both Kp and Td are adjustable. The derivative control action, sometimes called speed control, occurs where the magnitude of the controller output is proportional to the rate of change of the error signal. The derivative time Td is the time interval during which the action of the velocity advances the effect of the proportional control action.

Figure 5-9 (a) shows a block diagram of a PD controller. If the error signal e (t) is a unit ramp function as shown in Figure 5-9 (b), the controller output u (t) becomes that shown in Figure 5-9 (c). ). The derivative control action has a forecast nature. However, it is obvious that a derivative control action never foresees an action that has never occurred.null

null

null

Although the derivative control action has the advantage of being forecast, it has the disadvantages that it amplifies the noise signals and can cause a saturation effect in the actuator. Note that the derivative control action is never used alone, because it is only effective during transient periods.

Proportional-Integral-derivative (PID) control action.

The combination of a proportional control action, an integral control action and a derivative control action is called proportional-integral-derivative (PID) control action.

This combined action has the advantages of each of the three individual control actions. The equation of a controller with this combined action is obtained by:

null

The transfer function is:

null

where Kp is the proportional gain, Ti is the integral time and Td is the derivative time. The block diagram of a PID controller appears in Figure 5-10 (a). If e (t) is a unit ramp function, like the one shown in Fig. 5-10 (b), the controller output u (t) becomes that of Fig. 5-10 (c).

null

nullnull

Effects of the sensor on the performance of the system.

Since the dynamic and static characteristics of the sensor or measuring element affects the indication of the actual value of the output variable, the sensor fulfills a function important to determine the overall performance of the control system. As usual, the sensor determines the transfer function in the feedback path. If the time constants of a sensor are negligible compared to other constants of time of the control system, the sensor transfer function simply it becomes a constant. Figures 5-11 (a), (b) and (c) show diagrams of automatic controller blocks with a first-order sensor, an overdamped second-order sensor and a second-order underdamped sensor, respectively. Often the response of a thermal sensor is of the overdamped second order type.

null

null

BEFORE:  Steady-State error control system

NEXT: PID – Effect of integrative and derivative control actions.

Source:

  1. Ingenieria de Control Moderna, 3° ED. – Katsuhiko Ogata pp 211-232

Literature review by Larry Francis Obando – Technical Specialist – Educational Content Writer

Copywriting, Content Marketing, Tesis, Monografías, Paper Académicos, White Papers (Español – Inglés)

Escuela de Ingeniería Eléctrica de la Universidad Central de Venezuela, CCs.

Escuela de Ingeniería Electrónica de la Universidad Simón Bolívar, Valle de Sartenejas.

Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.

Contact: Caracas, Quito, Guayaquil, Cuenca. telf – 0998524011

WhatsApp: +593984950376

email: dademuchconnection@gmail.com

ANSYS, Física Aplicada, Ingeniería Mecánica

Análisis de elementos finitos (FEA) – ANSYS,1era parte.

Introducción

¿Qué es el Análisis de Elementos Finitos (Finite-Element Analysis (FEA))?

  1. Governing Equation Derivation
  2. Mathematical Model summary
  3. Discretization

Ahora que sabemos cuál es el modelo matemático que queremos resolver, las ecuaciones que gobiernan el problema y las condiciones de contorno, es decir, un problema de valor límite, echamos un vistazo a cómo resolverlo numéricamente utilizando el método de elementos finitos. Pasamos a la solución numérica y cómo a través de la solución numérica con el método de elementos finitos, se pueden calcular las variables seleccionadas en los puntos seleccionados.

Lo primero que hacemos es discretizar. Reducimos el problema a determinar los valores de temperatura en ubicaciones seleccionadas. Nuevamente, la siguiente es la barra con la que estamos trabajando, y necesitamos determinar la temperatura a lo largo de esa línea.

Reduciremos el asunto a un problema unidimensional, por lo que debemos determinar la temperatura solo a lo largo de la línea. Entonces necesitamos determinar la función T de x. Y decimos que, en lugar de determinar la temperatura en todas partes a lo largo de esa línea, vamos a determinarla sólo en la ubicación seleccionada, y particularmente la determinaremos en cuatro ubicaciones: 1, 2, 3, 4. Luego, si queremos saber cuál es la temperatura entre los nodos 2 y 3 por ejemplo, lo podemos determinar a través de interpolación linear.

Por interpolación lineal queremos decir que si graficamos la temperatura T versus x, y T1, T2, T3 y T4 son mis cuatro valores, entonces para hallar los valores intermedios utilizamos interpolación lineal. Todavía no conozco esos valores intermedios, pero ya sabemos la forma de la curva.

En consecuencia, la forma de la curva va a ser la de la gráfica anterior. Así que hemos reducido el problema a determinar la temperatura en cuatro puntos. En lugar de determinar una función desconocida T (x), vamos a determinar cuatro valores. Eso se llama discretización, y es más fácil determinar un número finito de valores en lugar de una función.

En términos de terminología, los puntos rojos de la gráfica se llaman nodos, y las líneas intermedias se llaman elementos, elementos finitos. Entonces, en la gráfica anterior hemos dividido nuestro dominio en tres elementos y cuatro nodos.

Y en el proceso, lo que hemos hecho es que hemos asumido una forma para nuestra función, y esa forma consiste en polinomios por partes, polinomios lineales por partes. Y la forma de la función se construye elemento por elemento. En cualquier metodología de elementos finitos hacemos eso. Estamos asumiendo una forma, y la forma se construye elemento por elemento.

La clave del problema ahora es cómo determinar la temperatura en los nodos, en nuestro caso, en los cuatro nodos.

Aclaración: La forma particular que se muestra en la gráfica de arriba es solo una solución posible. En este punto, las temperaturas nodales pueden tomar cualquier valor a lo largo de las líneas verticales punteadas que se muestran en la figura a continuación. Por ejemplo, podemos imaginarnos moviendo el valor T2 a un nuevo valor mayor:

Esto causará un cambio correspondiente en la variación de temperatura en los elementos 1 y 2 solamente. La nueva forma indicada por las líneas punteadas también es una solución posible. En el método de elementos finitos, encontraremos el conjunto de temperaturas nodales que mejor se ajusta a las ecuaciones que gobiernan la dinámica del sistema y las condiciones de contorno que rigen dichas ecuaciones.

4, How to find nodal temperatures

En nuestro caso, tenemos cuatro temperaturas nodales por encontrar. Y tenemos nuestro modelo matemático, que es un problema de valor límite. Así que pasaremos del problema del valor límite, es decir, ecuaciones diferenciales con condiciones de contorno, a un sistema de ecuaciones algebraicas con las temperaturas nodales. Entonces vas a pasar de una ecuación diferencial a un sistema de ecuaciones algebraicas. Y derivas el sistema de ecuaciones algebraicas, usando la aproximación polinómica por partes para la temperatura que vimos anteriormente. Y cada ecuación relacionará una temperatura nodal con sus vecinos. Va a ser una ecuación lineal. Así que vamos del cálculo al álgebra lineal. Y el sistema de ecuaciones algebraicas puede escribirse en forma de matriz. Y entonces, la esencia del método FEA se reduce a cómo derivamos nuestro sistema de ecuaciones algebraicas, de modo que satisfaga mejor nuestro modelo matemático. No podemos satisfacer nuestro problema de valor límite exactamente. Pero queremos satisfacerlo lo mejor que podamos.

 

Pregunta: Una de las siguientes afirmaciones es falsa.

  • En el método de elementos finitos, pasamos de ecuaciones diferenciales a un conjunto de ecuaciones algebraicas. Cada ecuación algebraica relacionará una temperatura nodal con todas las demás temperaturas nodales.
  • Para derivar las ecuaciones algebraicas, necesitamos suponer una variación polinómica para la temperatura dentro de cada elemento. En nuestro ejemplo, este polinomio es lineal.
  • Una vez que las temperaturas nodales se determinan resolviendo el sistema de ecuaciones algebraicas, se puede encontrar la temperatura en cualquier punto del dominio….respuesta: la primera.

5. How to derive algebraic equations

La multiplicación de la ecuación diferencial por una función arbitraria y la integración sobre el dominio es un truco que nos permitirá derivar las ecuaciones algebraicas necesarias. Esta es una de las ideas conceptualmente más desafiantes en el marco de elementos finitos. A este modelo le llaman Weighted Integral Form ó Weak Form.

Asumo una forma para W que se parece a la forma de la temperatura T, y lo veremos gráficamente. Y luego, tengo una forma para la temperatura; Tengo una forma para W: ahora si conecto ambas formas, genero un sistema de ecuaciones algebraicas para las temperaturas nodales.

Pero hay una importante conclusión aquí. Y es que mi solución de elementos finitos no satisfacerá mi ecuación diferencial exactamente. De hecho, en este caso, lo satisface pobremente. No satisfacerá esta forma integral ponderada para cualquier w arbitraria, pero si satisfacerá la forma integral ponderada para una forma particular de w. Y uno puede mostrar que a medida que uso más nodos, esto se vuelve más y más acertado. Entonces tenderá a la solución exacta.

Entonces nuestra temperatura T aquí es de esta forma. Nuestra integral ponderada, nuestro peso W es de esta forma. Y se puede ver que ambas tienen el mismo tipo de forma, por lo que asignamos valores para los pesos en los nodos, y luego hacemos una interpolación lineal. Y si trazamos estas dos formas aquí, sacaremos nuestras ecuaciones algebraicas, y obtendremos el número de ecuaciones algebraicas que necesitamos para determinar las temperaturas nodales.

Se discutirá más en los próximos videos. ¡No te preocupes, por medio de ejemplos pronto este concepto estará más claro!

Pregunta: Seleccione verdadero o falso

Nuestra solución de elementos finitos producirá una distribución de temperatura T (x) que será una variación lineal por partes. Esta distribución de temperatura T (x) satisfacerá la forma integral ponderada para cualquier función arbitraria w (x) …. respuesta: Falso.

6. Weak form derivation. Weak Form to Algebraic Equations: Overview

Hasta este punto tenemos nuestra integral ponderada y tenemos las formas supuestas para la temperatura y la función de ponderación. Y nuestra función de ponderación es arbitraria, pero hemos reducido la arbitrariedad de la función de ponderación a la arbitrariedad de los valores en los nodos. Por lo tanto, queremos satisfacer esto para una función de ponderación arbitraria de esta forma. ¿Como hacemos eso? Lo que hacemos es hacer una integración por partes.

Así que aquí, hemos escrito lo que obtendrá de la integración por partes.

null

Aquí lo que vamos a hacer es mostrarle el proceso por el cual pasamos de la forma débil (Weak Form) a un conjunto de ecuaciones algebraicas. Y este es realmente el corazón del método de elementos finitos. Estos son los trucos y ahora en ANSYS vamos a utilizar estos conocimientos todo el tiempo. Trataremos de hacer esto de manera muy gráfica porque generalmente se presenta con muchas ecuaciones y demás, lo que quizás dificulte el entendimiento práctico.

Así que tenemos la Weak Form que se muestra a continuación:

null

Y tenemos nuestro dominio dividido en tres elementos.

null

Podemos pensar en cada elemento como un segmento del dominio. Y tenemos las formas supuestas para la temperatura y para la función de ponderación,

null

y queremos satisfacer esta ecuación para estas formas.

Hacemos integración por partes. Entonces cuando hagamos la integración sobre el primer elemento, obtendremos los términos donde tendremos w1 multiplicando T1, y también obtendremos un término donde w1 multiplica T2. Etc.

Entonces este es un montón de términos. Así que veamos la primera fila aquí. Si tomamos todos los términos que se multiplican w1 y los organizamos de esta manera, esto es lo que obtendremos.

null

Entonces, si queremos satisfacer esto para que sea igual a 0 para cualquier valor de w1, w2, w3, w4, la única forma es que cada término individual es igual a 0. Entonces, ya que w1 es arbitrario, lo haremos igual a 0, y eso nos da la ecuación en el primer nodo.

null

Entonces, sea lo que sea que multiplique w1, estos términos contribuirán a la ecuación en el primer nodo.

Lo que multiplique w2 contribuirá a la ecuación del segundo nodo y así sucesivamente. Y ese es el proceso por el cual pasamos de la Weak Form a la forma algebraica. Y como usuario del código ANSYS, es útil saber cómo se obtienen cada uno de estos términos en las ecuaciones algebraicas, para luego tener pleno conocimiento de estas ideas cuando estemos en ANSYS.

SIGUIENTE: Aprendiendo ANSYS – 2da parte

 

Fuente: curso edX Página de inicio

CornellX: ENGR2000XA Hands-on Introduction to Engineering Simulations

Module 1: Finite Element Analysis (FEA) 1.3 Big Ideas: Finite Element Analysis Weak Form

Revisión Literaria hecha por: Larry Francis Obando – Technical Specialist – Educational Content Writer.

Escuela de Ingeniería Eléctrica de la Universidad Central de Venezuela, Caracas.

Escuela de Ingeniería Electrónica de la Universidad Simón Bolívar, Valle de Sartenejas.

Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.

Contact: Caracas, Quito, Guayaquil, Cuenca – Telf. 00593998524011

WhatsApp: +593998524011

email: dademuchconnection@gmail.com

Automóvil, Electrical Engineer, Ingeniería Eléctrica, Tren de poder - Dinámica de Fuerzas

Gradiente de carretera

ANTERIOR: Desaceleración y control de velocidad del vehículo

SIGUIENTE: Efectos del Gradiente de carretera. 

En esta presentación, discutiremos qué sucede con las fuerzas que actúan en el vehículo cuando se conduce en una pendiente de subida o bajada. También interpretaremos los efectos que tiene el gradiente de la carretera en el diagrama de resistencia en ejecución. El gradiente es un número adimensional. En este caso, es el cambio de altitud dividido por el movimiento horizontal correspondiente.

La masa del vehículo da lugar a una gran fuerza que es igual a la masa multiplicada por la aceleración gravitacional g. Esta fuerza actúa desde el centro de gravedad del vehículo hacia el centro de la Tierra. En una carretera plana es perpendicular a la carretera, y por lo tanto, no tiene ningún componente en la dirección longitudinal del vehículo.

Pero esto cambiará cuando estamos conduciendo cuesta arriba o cuesta abajo. La inclinación de la carretera la mayor parte del tiempo se describe como el gradiente de la carretera.

En los cálculos, a menudo también necesitamos expresar la inclinación de la carretera como el ángulo de inclinación alfa entre el plano horizontal y la superficie de la carretera. Desde el triángulo rectángulo, podemos ver que el gradiente es igual a la tangente de alfa.

Con frecuencia, el gradiente es dado en porcentaje. Y tanto el gradiente como el alfa son negativos al conducir cuesta abajo. Si el vehículo está en un gradiente ascendente con ángulo alfa, la fuerza de masa (fuerza gravitacional) ya no es perpendicular a la carretera. Por lo tanto, ahora tiene un componente de fuerza en la dirección longitudinal del vehículo, a la que llamamos fuerza de gradiente. La fuerza del gradiente se puede determinar con esta ecuación:

El siguiente diagrama muestra la resistencia de funcionamiento en una carretera plana:

Como la fuerza de gradiente es independiente de la velocidad del vehículo, solo agrega una constante a la fuerza de resistencia en marcha para una carretera plana. De modo que la fuerza de resistencia de carrera total es igual a la resistencia aerodinámica más la resistencia a la rodadura más la fuerza del gradiente.

Observe que ya con un gradiente modesto de 5%, la fuerza del gradiente es mayor que la suma de la resistencia a la rodadura más la resistencia aerodinámica hasta llegar a una velocidad de 130 kilómetros por hora para este vehículo.

Si el vehículo en su lugar es conducido cuesta abajo, las condiciones son las mismas, excepto que el ángulo alfa se vuelve negativo. Eso cambia la dirección de la fuerza del gradiente, por lo que ahora actúa en la dirección de avance. La geometría es similar en cuanto a la situación cuesta arriba, por lo tanto, podemos usar la misma ecuación que antes para calcular el tamaño de la fuerza del gradiente. Esta ecuación también dará automáticamente un signo negativo de la fuerza del gradiente al ingresar en un ángulo negativo de la carretera.

Entonces, una fuerza de gradiente positiva debe interpretarse como que actúa en la dirección inversa del vehículo, mientras que la fuerza negativa actúa en la dirección de avance.

Un gradiente descendente producirá una fuerza de resistencia hacia abajo en el diagrama. De nuevo, la fuerza de resistencia de funcionamiento total es igual a la resistencia aerodinámica más la resistencia a la rodadura más la fuerza de gradiente, sólo que ahora es negativa hasta llegar a una velocidad aproximada de 130 Km por hora para este vehículo en particular.

La fuerza de resistencia de ejecución resultante es la curva negra. El resultado es que, teóricamente, este vehículo en un gradiente de descenso del 5% podría alcanzar 130 kilómetros por hora sin ninguna fuerza de tracción de un tren motriz. Podría ser impulsado solo por la fuerza del gradiente. Sin embargo, llevaría mucho tiempo alcanzar esa velocidad solo acelerada por la fuerza de los gradientes.

En resumen, usted ha aprendido cómo la masa del vehículo da lugar a una fuerza de gradiente en la dirección longitudinal del vehículo cuando conduce cuesta arriba o cuesta abajo. El valor de la fuerza del gradiente puede calcularse como la masa del vehículo multiplicada por la aceleración gravitacional g multiplicada por el seno de alfa. Esta fuerza cambia con el gradiente de la carretera, pero es independiente de la velocidad. Si el gradiente cuesta abajo es significativo, la resistencia de marcha se vuelve negativa y actuará para acelerar el vehículo.

ANTERIOR: Desaceleración y control de velocidad del vehículo

SIGUIENTE: Efectos del Gradiente de carretera. 

Fuente: Road Gradient del curso Section 1: Vehicles and powertrains

Escrito por: Larry Francis Obando – Technical Specialist – Educational Content Writer.

Escuela de Ingeniería Eléctrica de la Universidad Central de Venezuela, Caracas.

Escuela de Ingeniería Electrónica de la Universidad Simón Bolívar, Valle de Sartenejas.

Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.

Contact: Caracas, Quito, Guayaquil, Cuenca – Telf. 00593998524011

WhatsApp: +593984950376

email: dademuchconnection@gmail.com