Computer Science, Programación en C++

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

SIGUIENTE: C++ Declaración de variables

Jueves 29 marzo 2018, 05:17 am

Today’s literature review:

  1. BalaguruswamyObjectOrientedProgrammingWithC++Fourth
    1. 1.3 A look at Procedure-Oriented Programming
    2. 1.4 Object-Oriented Programming Paradigm(OOP)
    3. 1.5 Basic concepts
    4. 2.3 A simple program “Hello world”

La Programación Orientada a Objetos (Object-Oriented Programming – OOP) es un enfoque que proporciona una forma de modularización de programas mediante la creación de un área de memoria particionada para datos y funciones que se pueden usar como plantillas para crear copias de dichos módulos bajo demanda. Por lo tanto, se considera que un objeto es un área particionada de la memoria de la computadora que almacena datos y un conjunto de operaciones que pueden acceder a esos datos. Como las particiones de memoria son independientes, los objetos se pueden usar en una variedad de programas diferentes sin modificación…..(Balagurusamy, 2008).

1.3 Las características exhibidas por la programación orientada a procedimientos (Procedure-Oriented Programming – POP) son:

  • El énfasis está en hacer cosas (algoritmos)
  • Los grandes programas se dividen en pequeños programas llamados funciones.
  • La mayoría de las funciones comparten datos globales.
  • Los datos se mueven abiertamente alrededor del sistema de una función a otra.
  • Las funciones transforman datos de un tipo a otro,
  • La técnica emplea es un enfoque de arriba hacia abajo para el diseño del programa.

1.4 En contraposición OOP trata los datos como un elemento crítico en el desarrollo del programa y no permite que fluyan libremente alrededor de un sistema. Ata datos más de cerca a las funciones que operan en él, y los protege de modificaciones accidentales de funciones externas. OOP permite la descomposición en una serie de entidades llamadas objetos y luego construye datos y funciones alrededor de estos objetos. La organización de data y las funciones en programación orientada a objetos se muestra en la Figura 1.6

OOP es un enfoque que proporciona una forma de modularización de programas mediante la creación de un área de memoria particionada para datos y funciones que se pueden usar como plantillas para crear copias de dichos módulos según la demanda. Por lo tanto, se considera que un objeto es un área particionada de la memoria de la computadora que almacena datos y un conjunto de operaciones que pueden acceder a esos datos. Dado que las particiones de memoria son independientes, los objetos pueden usarse en una variedad de programas diferentes sin modificaciones.

Un programa orientado a objetos consiste en un conjunto de objetos que se comunican entre sí. El proceso de programación en un lenguaje orientado a objetos, por lo tanto, implica los siguientes pasos básicos:

  • Crear clases que definen objetos y su comportamiento,
  • Crear objetos a partir de definiciones de clase y,
  • Establecer la comunicación entre los objetos.

Los objetos se comunican entre sí al enviar y recibir información de la misma manera que las personas se transmiten mensajes entre sí. Eso hace que sea más fácil hablar sobre la construcción de sistemas que modelan o simulan directamente sus contrapartes del mundo real.

Un mensaje para un objeto es una solicitud de ejecución de un procedimiento y, por lo tanto, invocará una función (procedure) en el objeto receptor que genera el resultado deseado. La transmisión de mensajes (Message passing) implica especificar el nombre del objeto, el nombre de la función (message) y la información que se enviará. Ejemplo:

Los sistemas de negocio reales a menudo son muy complejos y contienen muchos más objetos con atributos y métodos complicados. OOP es útil en este tipo de dominios de aplicación porque puede simplificar un problema complejo. Las áreas prometedoras para la aplicación de OOP incluyen:

  • Real-time systems
  • Simulation and modeling
  • Object-oriented databases
  • Hypertext, hypermedia and expertext
  • AI and expert systems
  • Neural networks and parallel programming
  • Decision support and office automation systems
  • CIM/CAM/CAD System

La programación orientada a procedimientos (POP) tiene mayores desventajas: (1) los datos se mueven libremente alrededor del programa y, por lo tanto, son vulnerables a los cambios causados por cualquier función en el programa; (2) POP no modela muy bien los problemas del mundo real. El OOP fue inventado para superar los inconvenientes de POP.

En OOP, un problema se considera como una colección de varias entidades llamadas objetos (Objects ). Los objetos son instancias de clases. El aislamiento de datos (Insulation) del acceso directo por el programa se denomina ocultación de datos (data hiding).

La abstracción de datos (Data abstraction) se refiere a reunir características esenciales sin incluir detalles de fondo.

La herencia (Inheritance) es el proceso por el cual los objetos de una clase adquieren propiedades de objetos de otra clase.

Polimorfismo (Polymorphism) significa un nombre, formas múltiples. Nos permite tener más de una función con el mismo nombre en un programa. También permite la sobrecarga de los operadores (overloading) para que una operación pueda mostrar diferentes comportamientos en diferentes instancias.

La vinculación dinámica (Dynamic binding) significa que el código asociado con un procedimiento dado no se conoce hasta el momento de la llamada en tiempo de ejecución (run-time).

//“Hello World” program

 

#include “stdafx.h”

#include <iostream>

using namespace std;

int main()

{

cout << “Hello World\n”;

return 0;

}

Un programa C++ es una colección de funciones. El ejemplo anterior contiene una sola función, main(). La ejecución del programa inicia con main(). Cada programa C++ debe tener una main().

cout ( C Out) representa la salida estándar en C++

El operador << es el operador de inserción o colocar en. Inserta los contenidos de la variable a su derecha al objeto a su izquierda, como se muestra en la Figura 2.1

Aquí, el identificador cout es un objeto predefinido que representa la pantalla y tiene una interfaz simple. Si cadena representa una variable de cadena, la siguiente instrucción mostrará su contenido:

cout << string;

El operador << es también el operador de desplazamiento a la izquierda ( left-shift operator), es un ejemplo de una sobrecarga del operador (una función que se puede comportar diferente dependiendo del argumento que recibe), un aspecto importante del polimorfismo. Hemos utilizado la siguiente directiva #include:

#include <iostream>

Esta directiva hace que el preprocesador agregue los contenidos del archivo iostream al programa. Contiene declaraciones para el identificador cout y el operador <<. El archivo de encabezado iostream debe incluirse al comienzo de todos los programas que usan declaraciones de entrada / salida.

Namespace, el espacio de nombres, es un nuevo concepto introducido por el comité de estándares ANSI C ++. Esto define un ámbito, un campo de aplicación o envergadura, para los identificadores que se usan en un programa. Para usar los identificadores definidos en el ámbito del espacio de nombres, debemos incluir la directiva using, como:

using namespace std;

En C ++, main () devuelve un valor de tipo entero (integer) al sistema operativo. Por lo tanto, cada main () en C ++ debe terminar con una declaración return (0); de lo contrario, puede ocurrir un error. El tipo de retorno para main () se especifica explícitamente como int.

Un programa un poco más complejo

Supongamos que nos gustaría leer dos números del teclado y mostrar su promedio en la pantalla.

#include “stdafx.h”

#include <iostream>

using namespace std;

int main()

{

float number1, number2, sum, average;

cout << “Enter two numbers: “; // prompt

cin >> number1; // reads number

cin >> number2; // read number from the keyboard

sum = number1 + number2;

average = sum / 2;

cout << “Sum=” << sum << “\n“;

cout << “Average=” << average << “\n“;

   return 0;

}

Comentarios:

El programa usa cuatro variables que son declaradas como tipo flotante por la declaración:

float number1, number2, sum, average;

Todas las variables deben declararse antes de ser utilizadas en el programa.

Operador de entrada. La declaración:

cin >> number1;

hace que el programa espere a que el usuario escriba un número, que se coloca en la variable number1. El identificador cin (C in) es un objeto predefinido en C ++ que corresponde con la entrada estándar tipo string.

El operador >> se conoce como extracción o obtiene del operador. Extrae el valor del teclado y lo asigna a la variable a su derecha. Este operador también puede estar overloaded.

null

 

Conexión en cascada de operadores de entrada / salida

Hemos utilizado el operador de inserción << repetidamente en las dos últimas declaraciones para imprimir los resultados:

cout << “Sum=” << sum << “\n”;

cout << “Average=” << average << “\n”;

Primero, envía la cadena “Sum =” a cout y luego envía el valor de sum. Finalmente, envía el carácter de nueva línea \ n para que la próxima salida esté en la nueva línea. Cuando se conecta en cascada un operador de salida, debemos asegurar espacios en blanco entre los diferentes elementos. La declaración dos se puede combinar como:

cout << “Sum=” << sum << “\n”

        << “Average=” << average << “\n”;

Esta es una afirmación pero proporciona dos líneas de salida. También podemos conectar en cascada el operador de entrada >> como se muestra a continuación:

cin >> number1 >> number2;

Los valores se asignan de izquierda a derecha.

SIGUIENTE: C++ Declaración de variables

Nota: Para ejecutar los ejercicios propuestos recomiendo descargar el IDE (Interface Development Environment) Visual Studio,  y luego para cada ejercicio seguir los pasos recomendados en el link: Introducción a C++ en Visual Studio. 

Fuente:

  1. BalaguruswamyObjectOrientedProgrammingWithC++Fourth

 

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: +593984950376

email: dademuchconnection@gmail.com

Anuncios
C++ Programming, Computer Science

C++ Principles of object-oriented programming

NEXT: C++ Declaration of Variables

Jueves 29 , 05:17 am

Today’s literature review:

  1. BalaguruswamyObjectOrientedProgrammingWithC++Fourth
    1. 1.3 A look at Procedure-Oriented Programming
    2. 1.4 Object-Oriented Programming Paradigm(OOP)
    3. 1.5 Basic concepts
    4. 2.3 A simple program “Hello world”

Object-Oriented Programming (OOP) is an approach that provides a way of modularizing programs by creating partitioned memory area for both data and functions that can be used as templates for creating copies of such modules on demand. Thus, an object is considered to be a partitioned area of computer memory that stores data and set of operations that can access that data. Since the memory partitions are independent, the objects can be used in a variety of different programs without modification…(Balagurusamy, 2008).

1.3 Characteristics exhibited by procedure-oriented programming (POP) are:

  • The emphasis is on doing things (algorithms)
  • Large programs are divided into small programs called functions.
  • Most of the functions shared global data.
  • Data move openly around the system from function to function.
  • Functions transform data from one type to another,
  • The technique employs top-down approach in program design.

1.4 Object-Oriented Programming (OOP) treats data as a critical element in the program development and does not allow it to flow freely around a system. It ties data more closely to the functions that operate on it, and protects it from accidental modifications from outside functions. OOP allows decomposition into a number of entities called objects and then builds data and function around these objects. The organization of dta and functions in object-oriented programming is shown in Figure 1.6

Object-Oriented Programming (OOP) is an approach that provides a way of modularizing programs by creating partitioned memory area for both data and functions that can be used as templates for creating copies of such modules on demand. Thus, an object is considered to be a partitioned area of computer memory that stores data and set of operations that can access that data. Since the memory partitions are independent, the objects can be used in a variety of different programs without modification.

An object-oriented program consists of a set of objects that communicate with each other. The process of programming in a object-oriented language, therefore, involves the following basic steps:

  • Creating classes that define objects and their behaviour,
  • Creating objects from class definitions and,
  • Establishing communication among objects.

Objects communicate with one another by sending and receiving information much the same way as people pass messages to one another. That makes it easier to talk about building systems that directly model or simulate their real-world counterparts.

A message for an object is a request for execution of a procedure, and therefore will invoke a function (procedure) in the receiving object that generates the desired result. Message passing involves specifying the name of the object, the name of the function (message) and the information to be sent. Example:

Real-business systems are often much complex and contain many more objects with complicated attributes and methods. OOP is useful in these types of application domains because it can simplify a complex problem. The promising areas for application of OOP include:

  • Real-time systems
  • Simulation and modeling
  • Object-oriented databases
  • Hypertext, hypermedia and expertext
  • AI and expert systems
  • Neural networks and parallel programming
  • Decision support and office automation systems
  • CIM/CAM/CAD System

Procedure-oriented programming (POP) has to majors drawbacks: (1) data move freely around the program and are therefore vulnerable to changes caused by any function in the program; (2) POP does not model very well the real-world problems. OOP was invented to overcome the drawbacks of POP.

In OOP, a problem is considered as a collection of a number of entities called objects. Objects are instances of classes. Insulation of data from direct access by the program called data hiding.

Data abstraction refers to putting together essential features without including background details.

Inheritance is the process by which objects of one class acquire properties of objects of another class.

Polymorphism means one name, multiple forms. It allows us to have more than one function with the same name in a program. It also allows overloading of operators so that an operation can exhibit different behaviours in different instances. Dynamic binding means that the code associated with a given procedure is not known until the time of the call at run-time.

//“Hello World” program

 

#include “stdafx.h”

#include <iostream>

using namespace std;

int main()

{

cout << “Hello World\n”;

return 0;

}

A C++ program is a collection of functions. The above example contains only one function, main(). Execution begins at main(). Every C++ program must have a main().

cout ( C Out) represents the standard output stream in C++

The operator << the insertion or put to operator. It inserts the contents of the variable on its right to the object on its left, as it is shown in Figure 2.1

Here, the identifier cout is a predefined object representing the screen and it has a simple interface. If string represents a string variable, then the following statement will display its contents:

cout << string;

The operator << is also the bit-wise left-shift operator is an example of an operator overloading, an important aspect of polymorphism. We have used the following #include directive:

#include <iostream>

This directive causes the preprocessor to add the contents of the iostream file to the program. It contains declarations for the identifier cout and the operator<< . The header file iostream should be included at the beginning of all programs that use input/output statements.

Namespace is a new concept introduced by the ANSI C++ standards committee. This defines a scope for the identifiers that are used in a program. For using the identifiers defined in the namespace scope we must include the using directive,like:

using namespace std;

In C++, main() returns an integer type value to the operating system. Therefore, every main() in C++ should end with a return(0) statement; otherwise an error may occur. The return type for main() is thus explicitly specified as int.

A slightly more complex program

Assume that we would like to read two numbers from the keyboard and display their average on the screen.

 

#include “stdafx.h”

#include <iostream>

using namespace std;

int main()

{

float number1, number2, sum, average;

cout << “Enter two numbers: “; // prompt

cin >> number1; // reads number

cin >> number2; // read number from the keyboard

sum = number1 + number2;

average = sum / 2;

cout << “Sum=” << sum << “\n“;

cout << “Average=” << average << “\n“;

   return 0;

}

Comments:

The program uses four variables that are declared as type float by the statement

float number1, number2, sum, average;

All variables must be declared before they are used in the program.

Input Operator. The statement:

cin >> number1;

causes the program to wait for the user to type in a number, which is placed in the variable number1. The identifier cin ( C in) is a predefined object in C++ that corresponds to the standard input stream.

The operator >> is known as extraction or get from operator. It extracts the value from the keyboard and assigns it to the variable on its right. This operator can also be overloaded.

null

Cascading of Input/Output Operators

We have used the insertion operator << repeatedly in the last two statements for printing results:

cout << “Sum=” << sum << “\n”;

cout << “Average=” << average << “\n”;

First, send the string  “Sum=” to cout and then sends the value of sum. Finally, it sends the newline character \n so that the next output will be in the new line. When cascading an output operator we should ensure blank spaces between different items. The two statement can be combined as:

cout << “Sum=” << sum << “\n”

        << “Average=” << average << “\n”;

This is one statement but provides two lines of output. We can also cascade input operator >> as shown below:

cin >> number1 >> number2;

The values are assigned from left to the right.

NEXT: C++ Declaration of Variables

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

Source:

  1. BalaguruswamyObjectOrientedProgrammingWithC++Fourth

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: +593984950376

email: dademuchconnection@gmail.com

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

Desaceleración y control de velocidad del vehículo

ANTERIOR: Fuerza neta y control de la aceleración del vehículo

SIGUIENTE: Gradiente de carretera

En esta oportunidad, veremos qué sucede cuando no hay suficiente tracción para que podamos superar las fuerzas de resistencia en marcha, o cuando se aplica una fuerza de tracción negativa. Comenzamos el análisis desde un vehículo que conduce a velocidad constante de 100 kilómetros por hora con una fuerza de tracción lo suficientemente fuerte como para equilibrar la resistencia a la rodadura y la resistencia aerodinámica. ¿Qué pasará si la fuerza de tracción se vuelve 0? Nosotros, de nuevo, calculamos la suma de las fuerzas restantes que actúan en el vehículo, y eso nos da la fuerza neta.

Observe que la fuerza neta ahora está en la dirección inversa. Y, por lo tanto, obtenemos una aceleración de menos 0,33 metros por segundo al cuadrado en este caso, lo que significa una desaceleración. Tenga en cuenta que la dirección del vector de fuerza corresponde al cambio de signo en la fuerza en las ecuaciones.

En el diagrama de velocidad de fuerza, nuestra fuerza de tracción es solo 0, por lo que no se suma a la suma vectorial de todas las fuerzas en el vehículo. Y así, la fuerza neta se convierte en la suma de la resistencia a la rodadura y la resistencia aerodinámica. El resultado es un vehículo de desaceleración. Tenga en cuenta que dado que la fuerza de tracción es menor que la resistencia de conducción total, el vehículo está desacelerando.

Cuando la velocidad disminuye, el arrastre aerodinámico es más pequeño y la desaceleración disminuirá. Sin embargo, el tren motriz puede aumentar la desaceleración produciendo una fuerza de tracción negativa. Si ahora calculamos la fuerza neta, se vuelve aún más negativa. Esto da como resultado una aceleración de menos 0,40 metros por segundo al cuadrado en este caso. Esta fuerza de tracción negativa puede crearse por pérdidas en el tren motriz o por un motor eléctrico que funciona como generador. Si eso no es suficiente, los frenos del vehículo pueden generar una fuerza negativa mayor.

Esta desaceleración activa se puede ilustrar en el diagrama de velocidad de fuerza. Observe que el eje y ha cambiado y ahora incluye valores de fuerza negativa. La resistencia aerodinámica y la resistencia a la rodadura se agregan a la fuerza de tracción ahora negativa, lo que resulta en una mayor fuerza neta negativa y, por lo tanto, aún más desaceleración.

Ahora que hemos estudiado las fuerzas y la aceleración en diferentes situaciones de manejo, podemos sacar algunas conclusiones generales sobre cómo se controla la velocidad del vehículo.

Uno, el conductor solo puede controlar la fuerza del tren motriz y los frenos para influir en la velocidad del vehículo. Dos, al cambiar la fuerza de tracción, se puede controlar la fuerza neta, de modo que el vehículo lea la aceleración deseada. Tres, con el tiempo, la aceleración o la desaceleración pueden hacer que el vehículo alcance la velocidad deseada. También podemos resumir algunas reglas de control simples.

La fuerza de tracción debe exceder la resistencia de conducción total para que el vehículo se acelere. La fuerza de tracción y la resistencia de conducción total deben estar en equilibrio para que el vehículo tenga una velocidad constante. Y la fuerza de tracción debe ser menor que la resistencia de conducción total para que el vehículo desacelere. Ahora conoce los conceptos básicos de cómo determinar qué fuerza de tracción se requiere al conducir un vehículo y cómo el conductor controla la velocidad del vehículo al controlar la fuerza de tracción del tren motriz. Hay una fuerza más importante que incluir, y esa es la fuerza causada por el gradiente de la carretera.

ANTERIOR: Fuerza neta y control de la aceleración del vehículo

SIGUIENTE: Gradiente de carretera

Fuente: Deceleration and speed control 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

Análisis de sistemas de control, Respuesta en el tiempo

Error en estado estable de un sistema de control

ANTERIOR: Estabilidad de un sistema de control

SIGUIENTE: PID – Acciones básicas de sistemas de control

Introducción

Los errores en un sistema de control se pueden atribuir a muchos factores. Cambios en la referencia de entrada causarán errores inevitables durante los períodos transitorios y también pueden causar errores de estado estacionario. Las imperfecciones en los componentes del sistema, como la fricción estática, el envejecimiento o el deterioro, provocarán errores en el estado estable. En esta sección, sin embargo, no discutiremos los errores debidos a imperfecciones en los componentes del sistema. Más bien, investigaremos un tipo de error de estado estacionario que es causado por la incapacidad de un sistema para seguir tipos particulares de entradas. Las entradas de prueba comúnmente utilizadas para el análisis y diseño de errores en estado estable se resumen en la Tabla 7.1.

Para explicar cómo se utilizan estas señales de prueba, supongamos un sistema de control de posición, donde la posición de salida sigue a la posición de entrada de comando.

Escalón Unitario. Las entradas de escalón unitario representan una posición constante y, por lo tanto, son útiles para determinar la capacidad del sistema de control para posicionarse con respecto a un objetivo estacionario. Un control de posición para una antena es un ejemplo de un sistema que se puede probar con precisión mediante entradas escalonadas.

Rampa. Las entradas de rampa representan entradas de velocidad constante a un sistema de control de posición, con una amplitud que aumenta linealmente. Estas formas de onda se pueden utilizar para probar la capacidad de un sistema para seguir una entrada (una posición) que aumenta linealmente o, de manera equivalente, para rastrear un objetivo de velocidad constante. Por ejemplo, un sistema de control de posición que rastrea un satélite que se mueve a través del cielo a una velocidad angular constante.

Parábola. Las entradas parabólicas, cuyas segundas derivadas son constantes, representan entradas de aceleración constantes para los sistemas de control de posición y se pueden usar para representar objetivos acelerados, como un misil.

Cualquier sistema de control físico sufre inherentemente un error de estado estable en respuesta a ciertos tipos de entradas. Un sistema puede no tener un error de estado estable en una entrada escalón, pero el mismo sistema puede presentar un error de estado estable distinto de cero en una entrada rampa. (La única forma en que podemos eliminar este error es modificar la estructura del sistema.) El que un sistema determinado muestre un error de estado estable para un tipo dado de entrada depende del tipo de función de transferencia de bucle abierto del sistema.

Cálculo rápido del error en estado estable - Especificaciones.

La finalidad de toda la teoría sobre el error en estado estable es, al fin y al cabo, calcular dicho error o calcular los valores de ciertos parámetros para cumplir con especificaciones tales como “determinar el valor de K para que el error en estado estable sea de 10%”. Este documento cumple con la misión de explicar la teoría a partir del siguiente apartado (bastante extensa). Para aquellos que prefieren un resumen e ir directamente al grano, le propongo el siguiente método que le permita hallar el error en estado estable en tres pasos. Luego, le doy un ejemplo.

Antes de aplicar el siguiente método, debe cerciorarse que el sistema sea estable. Lo correcto es hacerlo aplicando el criterio de Routh (para un repaso, ver Estabilidad de un sistema de control). En nuestro ejemplo, para abreviar, aplicaremos el comando Matlab isstable() junto con feedback() para asegurarnos de que el sistema es estable.

1er Paso: Al igual que en el caso de la evaluación de la respuesta transitoria, el primer paso es lograr representar nuestro sistema como uno de realimentación unitaria (es frecuente que en el enunciado de los problemas típicos, ya se suponga de antemano), y asegurarse de que la entrada y la salida tengan las mismas unidades. Es decir, representarlo como un diagrama de bloques con la forma siguiente:

Donde G(s) es la Función de Transferencia Directa de nuestro sistema.

2do Paso: Luego, determine el valor de unos factores llamados “Constantes de error” definidos como sigue:

  • Constante de posición Kp:

null

  • Constante de velocidad Kv:

null

  • Constante de aceleración Ka:

null

3er Paso: Una vez calculadas estas constantes podemos calcular el error en estado estable para cada una de las entradas de la Tabla 7.1, mediante las siguientes fórmulas:

  • Error en estado estable e(∞) para entrada escalón unitario U(t) (step):

null

  • Error en estado estable e(∞) para entrada rampa unitaria tU(t) (ramp):

null

  • Error en estado estable e(∞) para entrada parábola unitaria (1/2)t^2U(t) (parabola):

null

Ejemplo - Sistema con realimentación unitaria

Determinar el error en estado estable de cada uno de los sistemas de la Figura 7.7, para entradas escalón unitario, rampa y parábola.

Respuesta para sistema (a)

1. Comprobación de estabilidad.

Para el sistema (a) comprobamos que el sistema es estable mediante el siguiente comando en matlab:

> s=tf(‘s’)

>G=(500*(s+2)*(s+5))/((s+8)*(s+10)*(s+12))

G =

   500 s^2 + 3500 s + 5000 /  s^3 + 30 s^2 + 296 s + 960

>sys=feedback(G,1)

sys =

     500 s^2 + 3500 s + 5000 /  s^3 + 530 s^2 + 3796 s + 5960

>isstable(sys)

ans =     1

2. Cálculo de las constantes Kp, Kv y Ka

null

3. Cálculo del error para entrada escalón, rampa y parábola:

null

Los errores en estado estable dependen de la forma de G(s) (la presencia o ausencia de integradores y su número) y de la función de entrada que se utiliza como prueba. Para ver el resto del ejercicio, o para ver un segundo ejemplo donde se deben cumplir especificaciones de diseño, ver los siguientes link:

Ejemplo 1 – Error en estado estable de un sistema de control con realimentación unitaria

Ejemplo - Sistema con realimentación no unitaria

En numerosos casos, los sistemas de control no tienen realimentación unitaria. El recorrido de realimentación puede estar constituido por una ganancia diferente de cero, o una función de transferencia específica. Es por ello que debemos considerar el caso de un sistema de control general con realimentación no unitaria, tal como el mostrado en el siguiente ejemplo:

Considerando el sistema de la Figura P7.19 (Nise, p378), determinar lo siguiente:

  1. Tipo de sistema
  2. El valor de K para obtener un error de 20% en estado estable.

null

La respuesta completa puede ser consultada en el siguiente link:

Ejemplo 2 – Error en estado estable de un sistema de control con realimentación no unitaria

En los siguientes apartados se deducen teóricamente las ecuaciones de error y constantes de error utilizadas anteriormente.

Definición del error en estado estable en función de la configuración del sistema.

Los errores en estado estable de sistemas de control lineales dependen del tipo de la señal de referencia y del tipo de sistema. Antes de emprender el error en estado estable, se debe clarificar cuál es el significado del error del sistema.

El error se puede ver como una señal que rápidamente debe ser reducida a cero, si esto es posible. Consideremos el sistema de la Figura 7-5:

Donde r(t) es la señal de entrada, u(t) es la señal actuante, b(t) es la señal de realimentación y y(t) es la señal de salida. El error e(t) del sistema se puede definir como:

Debemos recordar que r(t) y y(t) no tienen necesariamente las mismas dimensiones. En cambio, cuando el sistema tiene realimentación unitaria, H(s)=1, la entrada r(t) es la señal de referencia y el error es simplemente:

Es decir, el error es la señal actuante , u(t) . Cuando H(s) no es igual a 1, u(t) puede o no ser el error, en función de la forma y propósito de H(s). Por tanto, se debe definir la señal de referencia cuando H(s) no es igual a 1.

El error en estado estable se define como:

Para establecer un estudio sistemático del error en estado estable para sistemas lineales, Clasificaremos los sistemas de control como sigue:

1. Sistemas de realimentación unitaria,

2. Sistemas de realimentación no unitaria.

Error en Estado Estable para Sistemas con Realimentación Unitaria

Considere el sistema de la Figura 5-49

La Función de Transferencia para el lazo cerrado de la figura anterior es:

La Función de Transferencia entre la señal de error e(t) y la señal de entrada r(t) es:

Donde el error e (t) es la diferencia entre la señal de entrada y la señal de salida. El teorema del valor final proporciona una forma conveniente de encontrar el error en estado estable de un sistema:

El error en estado estable es:

Esta última ecuación nos permite calcular el error de estado estable ess, dada la entrada R(s) y la función de transferencia directa G (s). Luego sustituimos varias entradas por R(s) y entonces sacamos conclusiones sobre la relación que existe entre el sistema de bucle abierto G (s) y la naturaleza del error de estado estable ess.

  • Entrada Escalón Unitario: Utilizando R(s) =1/s, obtenemos los siguiente:

Donde:

Es la ganancia de la función de transferencia directa. Para tener un error en estado estable igual a cero debemos lograr que:

Para satisfacer esta condición, G(s) debe tener la siguiente forma:

Y para que el límite sea infinito, el denominador debe ser igual a cero, cuando S tiende a cero. Entonces n debe ser n> = 1, es decir, al menos un polo debe estar en el origen, lo que equivale a decir que al menos una integración pura debe estar presente en la ruta directa. La respuesta de estado estacionario para este caso de error de estado estable igual a cero es similar a la mostrada en la Figura 7-2a, output 1.

Si no hay integradores entonces n = 0, y se produce un error constante. Este es el caso que se muestra en la Figura 7-2a, output 2.

En resumen, para una entrada escalón unitario a un sistema de retroalimentación unitaria, el error de estado estacionario será cero si hay al menos una integración pura en la función de transferencia directa.

  • Entrada Función Rampa. Utilizamos R(s) =1/Sˆ2, y obtenemos:

Para obtener un error en estado estable para una entrada rampa al sistema de realimentación unitaria, se debe cumplir que:

Para satisfacer esta condición, G (s) debe tomar la forma donde n> = 2. En otras palabras, debe haber al menos dos integraciones en la ruta directa. En la Figura 7.2b, salida 1, se muestra un ejemplo de un error de estado estable para esta entrada en rampa:

Si existe un solo integrador en la ruta directa, entonces lim sG (s) es finita en vez de infinito y esto conduce a un error constante, como se muestra en la figura 7.2b, salida 2. Si solo hay un integrador en la ruta de reenvío, lim sG (s) = 0, y el error de estado estacionario será infinito y dará lugar a una rampa divergente, como se muestra en la figura 7.2b, salida 3.

  • Entrada Función Parábola. Utilizamos R(s) =1/Sˆ3, y obtenemos:

Para obtener cero error en estado estable a una entrada parabólica en un sistema de realimentación unitaria, se debe cumplir que:

Para satisfacer esta condición, n debe ser n> = 3. En otras palabras, debe haber al menos tres integraciones en la ruta de acceso. Si solo hay dos integradores en la ruta de reenvío, entonces lim s2G (s) es finita en vez de infinito y esto lleva a un error constante. Si hay uno o cero integradores en la ruta de avance, e (∞) es infinito.

Clasificación de sistemas de control (tipos de sistema) y constantes de error.

Tipo de sistema. El sistema de control se puede clasificar de acuerdo con su capacidad para seguir entradas escalonadas, entradas de rampa o entradas parabólicas, y así sucesivamente. Este es un esquema de clasificación razonable porque la mayoría de las entradas reales se pueden considerar como una combinación de tales entradas. Considere el sistema de control de retroalimentación unitaria con la siguiente función G (s) de transferencia de bucle abierto:

Implica el término elevado a la N en el denominador, que representa un polo de multiplicidad N en el origen. Un sistema se llama tipo 0, tipo 1, tipo 2, … si N = 0, 1, 2 … respectivamente. A medida que el tipo aumenta, la precisión mejora. Sin embargo, esto agrava el problema de estabilidad. Si G (s) se escribe para que cada término en el numerador y el denominador, excepto el término S elevado a la N, se acerque a la unidad cuando s se acerca a cero, entonces la ganancia de bucle abierto K está directamente relacionada con el error de estado estacionario.

Constante de error estático. Las constantes de error estático definidas a continuación son figuras de mérito de los sistemas de control. Cuanto más altas sean las constantes, menor será el error de estado estacionario.

  • La Constante de Error de Posición Kp (error escalón). El error en estado estable de un sistema para una entrada escalón unitario es:

La Constante de Error de Posición Kp está definida por:

Por lo tanto, el error de estado estacionario definido en términos de la constante de error escalón Kp es:

Para el sistema tipo cero:

Para un sistema tipo 1 o mayor:

  • La Constante de Error de Velocidad Kv (error rampa). El error en estado estable de un sistema para una entrada rampa unitaria es:

La Constante de Error de Velocidad Kv está definida por:

Por lo tanto, el error de estado estacionario definido en términos de la constante de error rampa Kv es:

Para el sistema tipo cero:

Para un sistema tipo 1:

Para un sistema tipo 2 o mayor:

  • La Constante de Error de Aceleración Ka (error parabólico). El error en estado estable de un sistema para una entrada parábola unitaria es:

La Constante de Error de Aceleración Ka está definida por:

Por lo tanto, el error de estado estacionario definido en términos de la constante de error aceleración Ka es:

Para el sistema tipo cero:

Para el sistema tipo 1:

Para el sistema tipo 2:

Para el sistema tipo 3 o mayor:

La Tabla 7.2 vincula los conceptos de error de estado estacionario, constantes de error estático y tipo de sistema. La tabla muestra las constantes de error estático y el error de estado estable como funciones de la forma de onda de entrada y el tipo de sistema.

Error de estado estable para sistemas de realimentación no unitarios.

Los sistemas de control a menudo no tienen retroalimentación unitaria debido a la compensación utilizada para mejorar el rendimiento o debido al modelo físico del sistema. En estos casos, la forma práctica de analizar el error en estado estable es tomar el sistema y transformarlo en otro sistema con realimentación unitaria al agregar y restar rutas de realimentación unitaria como se muestra en la Figura 7.15

 

Donde G(s)=G1(s)G2(s) y H(s)=H1(s)/G1(s). Tenga en cuenta que estos pasos requieren que las señales de entrada y salida tengan las mismas unidades.

ANTERIOR: Estabilidad de un sistema de control

SIGUIENTE:  PID – Acciones básicas de sistemas de control

Fuentes:

  1. Control Systems Engineering, Nise
  2. Sistemas de Control Automatico Benjamin C Kuo
  3. Modern_Control_Engineering, Ogata 4t

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

Mentoring Académico / Emprendedores / Empresarial

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, 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: +593981478463

+593998524011

email: dademuchconnection@gmail.com

Atención:

Si lo que Usted necesita es resolver con urgencia un problema de “Sistema Masa-Resorte-Amortiguador” (encontrar la salida X(t), gráficas en Matlab del sistema de 2do Orden y parámetros relevantes, etc.), o un problema de “Sistema de Control Electromecánico” que involucra motores, engranajes, amplificadores diferenciales, etc…para entregar a su profesor en dos o tres días, o con mayor urgencia…o simplemente necesita un asesor para resolver el problema y estudiar para el próximo examen…envíeme el problema…Yo le resolveré problemas de Sistemas de Control, le entrego la respuesta en digital y le brindo una video-conferencia para explicarle la solución…incluye además simulación en Matlab.

Relacionado:

Diagrama de Bloques – Ingeniería de Control

Dinámica de un Sistema Masa-Resorte-Amortiguador

Diagrama de Bloques de Sistema Electromecánico con Motor DC

Respuesta Transitoria de un Sistema de Control

Estabilidad de un sistema de control

Servomotores – Sistema de control de posición

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

Fuerza neta y control de la aceleración del vehículo

ANTERIOR: Aerodinámica y resistencia al rodamiento de un auto.

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

En esta presentación, agregaremos la fuerza de tracción del tren motriz y veremos cómo calcular la fuerza neta total en el vehículo. La Segunda Ley de Newton puede decirnos cuánto acelerará el vehículo con una determinada fuerza de tracción. Bien, ahora veremos cómo el tren motriz influye en el vehículo. El tren de potencia aplica una fuerza de tracción al vehículo, tal como lo muestra la siguiente imagen:

La fuerza se distribuye en todas las ruedas, pero sólo vamos a considerar la fuerza de tracción total. Aquí se ilustra como actuando sobre las ruedas delanteras del automóvil. Una vez que conocemos la fuerza de tracción y todas las fuerzas de resistencia de conducción, podemos calcular la fuerza neta total en dirección longitudinal.

La Segunda Ley de Newton nos dice que la fuerza neta es igual a la masa del vehículo multiplicada por la aceleración del vehículo. Podemos usar esto para controlar la aceleración controlando la fuerza neta. Para hacer eso, el tren motriz necesita producir una fuerza de tracción igual a la resistencia a la rodadura, más resistencia aerodinámica, más la masa del vehículo por la aceleración deseada. Y una vez que obtengamos una aceleración, con el tiempo, la velocidad también cambiará.

De modo que el conductor controla la velocidad solo de forma indirecta controlando la fuerza del tren de potencia y, por lo tanto, la aceleración.

Ahora suponemos que la fuerza de tracción es de 750 newtons a una velocidad de 50 kilómetros por hora. Cuando conocemos la fuerza de tracción, la fuerza neta puede calcularse como la suma vectorial de la fuerza de tracción, la resistencia a la rodadura y la resistencia aerodinámica. La suma del vector es la fuerza neta, y a partir de eso podemos calcular la aceleración.

Ahora, mostraremos cómo se puede ilustrar el mismo análisis en un diagrama de fuerza-velocidad con las curvas mostrando la resistencia a la rodadura más la resistencia aerodinámica. El resultado es la fuerza neta, y es igual a la masa del vehículo por la aceleración.

Observamos que la aceleración es proporcional a la diferencia entre la fuerza de tracción y la curva de resistencia de la carretera a la velocidad real. Si mantenemos la fuerza de tracción constante, la velocidad aumentará. Y cuando la velocidad aumenta, la resistencia aerodinámica también aumentará. Si ahora calculamos la suma vectorial de las fuerzas, obtenemos la fuerza neta. Tenemos en cuenta que, esta vez, es un poco más pequeño que a 50 kilómetros por hora debido a la mayor resistencia aerodinámica.

La situación a 75 kilómetros por hora también se puede analizar en el diagrama de fuerza-velocidad. La suma de vectores con la misma fuerza de tracción de 750 newtons da una fuerza neta de 75 kilómetros por hora. Lo que conduce a una aceleración un poco más baja, ya que la resistencia de conducción total es más alta a 75 que a 50 kilómetros por hora.

Si queremos seguir acelerando a 100 kilómetros por hora, podemos mantener la fuerza de tracción en 750 newtons. La velocidad aumenta y eso lleva a un mayor aumento en la resistencia aerodinámica. Una vez que alcanzamos los 100 kilómetros por hora, queremos dejar de acelerar y mantener la velocidad en 100. Luego, el conductor tiene que disminuir la fuerza de tracción de manera que sea igual a las fuerzas de resistencia de conducción. Y el resultado es una fuerza neta igual a cero. Y sin fuerza neta, la aceleración se detiene, y luego la velocidad es constante.

La fuerza de tracción no es cero, tiene que ser positiva y constante para equilibrar la suma de las fuerzas de resistencia. En el diagrama de fuerza-velocidad, podemos ver que la fuerza de tracción se mantiene constante durante la aceleración. Una vez que se alcanzan los 100 kilómetros por hora, la fuerza de tracción se reduce para coincidir perfectamente con la resistencia de conducción a 100 kilómetros por hora, según se muestra en el siguiente diagrama:

En conclusión:

Fuente: Net force and control of vehicle acceleration del curso Section 1: Vehicles and powertrains

ANTERIOR: Aerodinámica y resistencia al rodamiento de un auto.

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

 

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

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

Aerodinámica y resistencia al rodamiento de un auto

SIGUIENTE: Fuerza neta y control de la aceleración del vehículo

Introducción

Sólo se analizarán las fuerzas en la dirección longitudinal, ya que influyen en el tren de potencia. Las fuerzas en otras direcciones se ignoran momentáneamente, ya que principalmente influyen en la dirección y la suspensión. Cuando el vehículo está parado en una carretera plana, no hay fuerzas longitudinales que actúen sobre el vehículo. Cuando el vehículo avanza, los neumáticos causan resistencia a la rodadura. Elegimos ilustrar la fuerza de resistencia a la rodadura solo en la rueda trasera en esta imagen:

La resistencia a la rodadura es 0 en parada. Cuando la velocidad no es cero, se puede calcular como el coeficiente de resistencia a la rodadura multiplicado por la fuerza normal entre el vehículo y la carretera. La resistencia a la rodadura es aproximadamente independiente de la velocidad, como se muestra en este diagrama.

Cambia ligeramente con el ángulo de la carretera, ya que la fuerza normal disminuye si el vehículo desciende por una carretera que se vuelve muy empinada.

El coeficiente de resistencia a la rodadura debería ser lo más bajo posible para mantener bajo el consumo de energía. Y típicamente su valor está alrededor de 0.01. Una vez que el vehículo se mueve un poco más rápido, también hay resistencia aerodinámica, que es causada por el aire, ya que se ve forzado a fluir alrededor del vehículo cuando está conduciendo. Las fuerzas aerodinámicas ocurren alrededor del vehículo, pero aquí las ilustramos como una fuerza concentrada que actúa en la parte trasera del vehículo.

La resistencia aerodinámica es principalmente causada por una mayor presión de aire en la parte delantera del vehículo y una menor presión detrás de él. Cuando la velocidad del vehículo aumenta, más aire tiene que pasar el mismo por segundo, lo que lleva a una mayor fuerza de arrastre aerodinámica. A una velocidad de alrededor de 75 kilómetros por hora, la fuerza aerodinámica es similar en tamaño a la resistencia a la rodadura de un automóvil típico. A medida que la velocidad aumenta aún más, la fuerza aerodinámica aumenta más y más rápidamente, cuadráticamente según la curva Fuerza-Velocidad anterior.

El coeficiente aerodinámico de arrastre debe ser lo más bajo posible y, por lo general, es de aproximadamente 0,25 a 0,35 para un automóvil moderno. Para camiones y autobuses, es mayor, alrededor de 0.7. En esta presentación, consideramos dos fuerzas que siempre están presentes cuando un vehículo está conduciendo. Es la resistencia a la rodadura, que es bastante constante con la velocidad del vehículo y la resistencia aerodinámica, que aumenta con el cuadrado de la velocidad.

A baja velocidad, la resistencia a la rodadura es mayor que la resistencia aerodinámica.

Y para un automóvil moderno, la resistencia aerodinámica es mayor, por encima de aproximadamente 70 kilómetros por hora, como se puede apreciar en la Figura siguiente:

SIGUIENTE: Fuerza neta y control de la aceleración del vehículo

Fuente: Aerodynamic- and rolling resistance 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

Block Diagram, Control System Analysis, Time Domain

Control System Stability

BEFORE: Transient-response specifications

NEXT: Steady-state error in Control Systems

Introduction

The most important problem in linear control systems concerns stability. It is the most important system specification among the three requirements enter into the design of a control system: transient response, stability and steady-state error. That is, under what conditions will a system become unstable? If it is unstable, how should we stabilize the system?

The total response of a system is the sum of the forced and natural responses:

null

Using this concept, we present the following definition of stability, instability and marginal stability:

  • A linear time-invariant system is stable if the natural response approaches to zero as time approaches infinity.
  • A linear time-invariant system is unstable if the natural responses grows without bound as time approaches infinity.
  • A linear time-invariant system is marginally stable if the natural response neither decays nor grows but remains constant or oscillates as time approaches infinity.

Thus the definition of stability implies that only the forced response remains as the natural response approaches zero. An alternate definition of stability is regards the total response and implies the first definition based upon the natural response:

  • A system is stable if every bounded input yields a bounded output. We call this statement a bounded-input, bounded-output (BIBO) definition of stability.

We now realize that if the input is bounded but the output is unbounded, the system is unstable. If the input is unbounded we will see an unbounded total response and we cannot draw any about conclusion about stability.

Physically, an unstable system whose natural response grows without bound can cause damage to the system, to adjacent property, or to human life. Many times systems are designed with limited stops to prevent total runaway.

Negative feedback tends to improve stability. From the study of the system poles we must recall that poles in the left half-plane (lhp) yield either pure exponential decay or damped sinusoidal natural responses. These natural responses decay to zero when time approaches infinity. Thus, if the closed-loop system poles are in the left half of the plane and hence have a negative real part, the system is stable. That is:

  • Stable systems have closed-loop transfer functions with poles only in the left half-plane.

Poles in the right half-plane (rhp) yield either pure exponentially increasing or exponentially increasing sinusoidal natural responses, which approche infinity when time approaches infinity. Thus:

  • Unstable systems have closed-loop transfer functions with at least one pole in the right half-plane and /or poles of multiplicity greater than 1 on the imaginary axis.

Finally, the system that has imaginary axis poles of multiplicity 1 yields pure sinusoidal oscillations as a natural response. These responses neither increase nor decrease in amplitude. Thus,

  • Marginally stable systems have closed-loop transfer functions with only imaginary axis poles of multiplicity one and poles in the left half-plane.

Figure 6.1a shows a unit step response of a stable system, while Figure 6.1b shows an unstable system.

null

[1]

Routh’s Stability Criterion

Routh’s Stability criterion tell us whether or not there are unstable roots in a polynomial equation without actually solving for them. This stability criterion applies to polynomials with only a finite number of terms. When the criterion is applied to a control system, information about absolute stability can be obtained directly from the coefficients of the characteristic equation.

The method requires two steps: 1) Generate a data table called a Routh Table and 2) Interpret the to tell how many closed-loop system poles are in the left half-plane, the right half-plane, and on the jw-axis. The power of the method lies in design rather than analysis. For example, if you have an unknown parameter in the denominator of a transfer function, it is difficult to determine via a calculator the range of this parameter to yield stability. We shall see that The Routh-Hurwitz criterion can yield a closed-form expression for the range of the unknown parameter.

  • Generating a basic Routh Table. Considering the equivalent closed-loop transfer function in Figure 6.3. Since we are interested in the system poles, we focus our attention on the denominator. We first create the Routh Table shown in Table 6.1:

null

Begin by labeling the rows with powers of s from the highest power of the denominator of the closed-loop transfer function to s^0. Next start with the coefficient of the highest power of s in the denominator and list, horizontally in the first row every other coefficient.

null

In the second row, list horizontally, starting with the next higher power of s, every coefficient that was skipped in the first row. The remain entries are filled as follows:

null

Each entry is a negative determinant of entries in the previous two rows divided by the entry in the first column directly above the calculated row. The left-hand column of the determinant is always the first column of the previous two rows, and the right-hand column is the elements of the column above and to the right.

Figures 6.4 shows an example of building the Routh Table :

null

null

null

The complete array of coefficients is triangular. Note that in developing the array an entire row maybe divided or multiplied by a positive number in order to simplify the subsequent numerical calculation without altering the stability conclusion.

Consider the following characteristic equation, example 5-13:

null

The first two rows can be obtained directly from the given polynomial. The second is divided by two but we arrive to the same conclusion:

null

  • Interpreting the basic Routh Table. Simply stated, the Routh-Hurwitz criterion declares that the number of roots of the polynomial that are in the right-half plane is equal to the number of sign changes in the first column.

If the closed-loop transfer function has all poles in the left-hand plane the system is stable. Thus, the system is stable if there are no sign changes in the first column of the Routh Table.

The last case, Example 5-13, is one of an unstable system. In that example the number of sign changes in the first column is equal to two. This means that there are two roots with positive real parts. Table 6.3 is also an unstable system. There, the first change occurs from 1 in the s^2 row to -72 in the s^1 row. The second occurs from -72 in the  s^1 row to 103 in the  s^0 row. Thus, the system has two poles in the right-half plane.

Routh’s stability criterion is of limited usefulness when applying to control system analysis because it does not suggest how to improve relative stability or how to stabilize a unstable system. It is possible, however, to determine the effects of changing one or two parameters of the system by examining the values that causes instability. In the following we consider the problem of determining the stability range of a parameter value. Consider the system of the Figure 5-38. Let us determine the range of K for stability.

nullnull

The characteristic equation is:

null

And the Routh Table:

null

For stability, K must be positive and all coefficient in the first column must be positive. Therefore:

null

When K=14/9 the system becomes oscillatory and, mathematically, the oscillation is sustained at constant amplitude.

Routh-Hurwitz Criterion Special Cases

Two special cases can occur: (1) The Routh table sometimes will have a zero only in the first column of a row, (2) The Routh table sometimes will have an entire row that consists of zeros

  • Zero only in the first column. If the first elemento of a row is zero, division by zero will be required to form the next row. To avoid this phenomenon, an epsilon ε is assigned to replace the zero in the first column. The value is then allowed to approach zero from either the positive or the negative side, after which the signs of the entries in the first column can be determined. To see the application of this, let us look the follow example: determine the stability of the closed-loop transfer function T(s):

null

The solution is shown in table 6.4:

null

We must begin by assembling the Routh table down to the row where a zero appears only in the first column (the s^3 row). Next, replace the zero by a small number ε complete the table. To begin the interpretation we must first assume a sign, positive or negative for the quantity  ε. Table 6.5  shows the first column of table 6.4 along with the resulting signs for choices of  ε positive and ε negative.

null

If is chosen ε positive Table 6.5 shows a sign change from the s^3 row to the s^2 row, and there will be another sign change from the s^2 row to the s^1 row. Hence the system is unstable and has two poles in the right half-plane. Alternatively, we could chose ε negative.  Table 6.5 then shows a sign change from the s^4 row to the s^3 row. Another sign change would occur from the s^3 row to the s^2 row. Our result would be exactly the same as that for a positive choice for ε. Thus, the system is unstable.

  • Entire Row is zero. We now look at the second special case. Sometimes while making a Routh table, we can find that an entire row consists of zeros because there is a even polynomial that is a factor of the original polynomial. This case must be handled differently from the previous case. Next example shows how to construct and interpret the Routh table wne an entire row of zeros is present.

Determine the number of right half-plane poles in the closed-loop transfer function T(s):

null

Start by forming the Routh table for the denominator. We get Table 6.7:

null

At the second we multiply by 1/7 for convenience. We stop at the third row since the entire row consist of zeros and use the following procedure. First we return to the row immediately above the row of zeros and form an auxiliary polynomial using the entries in that row as coefficients. The polynomial will start with the power of s in the label column and continue by skipping every other power of s. Thus, the polynomial formed for this example is:

null

Next we differentiate the polynomial with respect to s and we obtain:  

null

Finally we use the coefficients of this last equation to replace the row of zeros. Again, for convenience the third row is multiplied by ¼ after replacing the zeros. The remainder of the table is formed in a straightforward manner by following the standard form shown in Table 6.2

We get Table 6.7. It shows that all entries in the first column are positive. Hence, there are no right half-plane poles and the system is stable.

BEFORE: Transient-response specifications

NEXT: Steady-state error in Control Systems

Source:

  1. Control Systems Engineering, Nise pp 301-320
  2. Sistemas de Control Automatico Benjamin C Kuo pp
  3. Modern_Control_Engineering, Ogata 4t pp 288,

Written 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: +593984950376

email: dademuchconnection@gmail.com

Attention:

If what you need is to solve urgently a problem of a “Mass-Spring-Damper System ” (find the output X (t), graphs in Matlab of the 2nd Order system and relevant parameters, etc.), or a “System of Electromechanical Control “… to deliver to your teacher in two or three days, or with greater urgency … or simply need an advisor to solve the problem and study for the next exam … send me the problem…I Will Write The Solution To any Control System Problem…

, …I will give you the answer in digital and I give you a video-conference to explain the solution … it also includes simulation in Matlab. In the link above, you will find the description of the service and its cost.

Related:

The Block Diagram – Control Engineering

Dinámica de un Sistema Masa-Resorte-Amortiguador

Block Diagram of Electromechanical Systems – DC Motor

Transient-response Specifications

Steady-state error in Control Systems

Análisis de sistemas de control, Respuesta en el tiempo

Estabilidad de un sistema de control

ANTERIOR: Respuesta transitoria de un sistema de control

SIGUIENTE: Error en estado estable de un sistema de control

Introducción

El problema más resaltante de un sistema de control lineal es el relativo a su estabilidad. Estabilidad es la especificación más importante que debe cumplirse entre los requerimientos a la hora de diseñar un sistema de control. Sin estabilidad, las otras dos especificaciones, respuesta transitoria y error en estado estable, son irrelevantes.

Entonces, las preguntas más urgentes a la hora de diseñar un sistema de control son las siguientes: ¿Bajo qué condiciones un sistema se vuelve inestable?. ¿Si el sistema es inestable, que debemos hacer para estabilizar dicho sistema?

La respuesta total de un sistema es la suma de la respuesta natural y la respuesta forzada, tal como lo señala la siguiente relación:

Usando este concepto presentamos la siguiente definición para estabilidad, inestabilidad y estabilidad crítica o marginal:

  • Un sistema lineal e invariante en el tiempo es estable si su respuesta natural tiende a cero cuando el tiempo tiende a infinito.
  • Un sistema lineal e invariante en el tiempo es inestable si su respuesta natural crece ilimitadamente cuando el tiempo tiende a infinito.
  • Un sistema lineal e invariante en el tiempo es críticamente estable si su respuesta natural no decae ni crece y tiende a permanecer constante cuando el tiempo tiende a infinito.

Esta definición de estabilidad implica por lo tanto que sólo la respuesta forzada permanece a medida que la respuesta natural tiende a cero. Una definición alternativa para estabilidad considera la respuesta total del sistema y la primera definición basada en la respuesta natural:

  • Un sistema es estable si genera una salida acotada como respuesta a una entrada acotada. Llamamos a ésta definición BIBO de estabilidad, por su siglas en inglés (bounded-input, bounded-output).

Ahora podemos entender que si una entrada acotada produce una salida no acotada, el sistema es inestable. Por otra parte, si la entrada no es acotada con seguridad veremos una salida no acotada pero no podremos llegar a ninguna conclusión respecto a la estabilidad del sistema.

Físicamente hablando, un sistema inestable cuya salida crece ilimitadamente puede causar daño al mismo sistema o a sistemas adyacentes, incluso puede atentar contra la vida humana (imagine el caso de un ascensor cuyo sistema de control se vuelve inestable). Por ello muchos sistemas se diseñan habilitando al mismo tiempo una parada de emergencia que podría ser sencillamente un interruptor de suministro de energía eléctrica (breaker).

La retroalimentación negativa en la mayoría de los sistemas de ingeniería tiende a mejorar la estabilidad. Piense en los efectos beneficiosos de la retroalimentación en los sistemas electrónicos. Del estudio de polos y zeros de la función de transferencia de un sistema de control podemos retomar el hecho de que los polos ubicados en el lado izquierdo del plano complejo producen respuestas naturales en forma de exponenciales decrecientes puras o sinusoides amortiguadas. Estas respuestas naturales tienden a cero a medida que el tiempo tiende a infinito. Por lo tanto, los polos de sistemas de lazo cerrado ubicados en a la izquierda del plano complejo tienen una parte real negativa y producen estabilidad en el sistema, es decir:

  • Los sistemas de lazo cerrado son estables si su función de transferencia tiene sólo polos ubicados a la izquierda del plano complejo (lhp – left half-plane).

Los polos de dichas funciones de transferencia ubicados en el lado derecho del plano complejo producen exponenciales crecientes puras o sinusoides que crecen exponencialmente, cuando el tiempo tiende a infinito. Por lo tanto:

  • Los sistemas de lazo cerrado son inestables si su función de transferencia posee al menos un polo ubicado en el lado derecho del plano complejo o al menos un polo de multiplicidad mayor a 1 en el eje imaginario (rhp – right half-plane).

Finalmente, un sistema que tiene polos en el eje imaginario de multiplicidad igual a 1 produce oscilaciones sinusoidales que no crecen ni decrecen en amplitud. Por lo tanto:

  • Los sistemas de lazo cerrado son críticamente o marginalmente inestables si su función de transferencia posee sólo polos de multiplicidad igual a uno en el eje imaginario y polos en el lado izquierdo del plano complejo.

La Figura 6.1a muestra la respuesta a la entrada escalón unitario de un sistema estable, mientras la Figura 6.1b muestra un sistema inestable.

Criterio de estabilidad de Routh-Hurwitz

El criterio de estabilidad de Routh-Hurwitz nos dice si hay o no raíces en una ecuación polinomial que causen inestabilidad, sin explicarnos cómo resolver dicha inestabilidad. Este criterio sólo aplica para polinomios con un número finito de términos. Cuando el criterio es aplicado a sistemas de control, la información sobre la estabilidad absoluta de un sistema puede obtenerse directamente de los coeficientes de la ecuación característica.

El método consiste en la ejecución de dos pasos: 1) Generar la tabla datos denominada Tabla de Routh, 2) Interpretar los resultados de la Tabla de Routh para saber cuantos polos de la función de transferencia se encuentran en el semiplano izquierdo, cuantos en el semiplano derecho y cuántos en el eje imaginario. La gran utilidad del método se aprecia en el proceso de diseño más que en el análisis del sistema. Por ejemplo, si tenemos un parámetro desconocido en el denominador de la función de transferencia es difícil determinar por medio de una calculadora el rango de valor de un parámetro para garantizar estabilidad. Más adelante veremos que gracias al criterio Routh-Hurwitz podremos generar una expresión para el rango de estabilidad para dicho parámetro desconocido.

  • Generar la tabla de Routh. Consideremos la función de transferencia equivalente para el sistema de la Figura 6.3. Debido a que lo que nos interesa son los polos de la función de transferencia, nos enfocamos en el denominador de dicha función. Luego, creamos la tabla de Routh mostrada en la Tabla 6.1:

Comenzamos por etiquetar las filas con las s elevadas a la potencia, comenzando por el valor más alto de las potencias en el denominador de la función de transferencia, hasta llegar a cero. Luego, iniciamos la fila con el coeficiente de la potencia más alta del denominador y creamos una lista horizontal como se aprecia en la Tabla 6.1

En la segunda fila, lista horizontal, comenzamos con el coeficiente de la potencia siguiente y se completa con los coeficientes que faltaron en la fila anterior. Luego, las entradas restantes se rellenan como sigue:

Cada entrada es un determinante negativo de entradas en las dos filas anteriores dividido por la entrada en la primera columna directamente sobre la fila calculada. La columna de la izquierda del determinante es siempre la primera columna de las dos filas anteriores, y la columna de la derecha es los elementos de la columna de arriba y a la derecha.

La Figura 6.4 muestra un ejemplo en la construcción de la tabla de Routh:

La matriz completa de coeficientes es triangular. Tenga en cuenta que al desarrollar la matriz, una fila entera puede dividirse o multiplicarse por un número positivo para simplificar el cálculo numérico subsiguiente sin alterar la conclusión de estabilidad.

Considere la siguiente ecuación característica:

Las dos primeras filas se pueden obtener directamente del polinomio dado. El segundo está dividido por dos, pero llegamos a la misma conclusión.

  • Interpretar la tabla básica de Routh. En pocas palabras, el criterio de Routh-Hurwitz declara que el número de raíces del polinomio que están en el plano de la mitad derecha es igual al número de cambios de signo en la primera columna.

Si la función de transferencia de circuito cerrado tiene todos los polos en el plano de la izquierda, el sistema es estable. Por lo tanto, el sistema es estable si no hay cambios de signo en la primera columna de la Tabla de Routh.

El caso del ejemplo 5-13, es el de un sistema inestable. En ese ejemplo el número de cambio de signo de la primera columna es igual a dos. Esto significa que el sistema tiene dos polos con valores reales positivos. En la Tabla 6.3 también tenemos el caso de otro sistema inestable. Aquí, el primer cambio ocurre del 1 en la fila de s^2 , a -72 en la fila de s^1. El segundo cambio ocurre del -72 en la fila de s^1 hacia el 103 en la fila de s^0. Por lo tanto, el sistema tiene dos polos en el lado derecho del plano complejo.

El criterio de estabilidad de Routh tiene una utilidad limitada cuando se aplica al análisis del sistema de control porque no sugiere cómo mejorar la estabilidad relativa o cómo estabilizar un sistema inestable. Sin embargo, es posible determinar los efectos de cambiar uno o dos parámetros del sistema examinando los valores que causan inestabilidad. A continuación, consideramos el problema de determinar el rango de estabilidad de un valor de parámetro. Considere el sistema de la Figura 5-38. Vamos a determinar el rango de K para que el sistema sea estable.

La función característica de este sistema es:

Y la tabla de Routh luce así:

Para un sistema estable, K debe ser positivo al igual que todos los coeficientes de la primera columna. Por lo tanto:

Cuando K=14/9 el sistema se vuelve oscilatorio y, matemáticamente, la oscilación se mantiene con una amplitud constante.

Casos especiales del criterio Routh-Hurwitz.

Pueden ocurrir dos casos especiales: (1) La tabla de Routh a veces tendrá un cero solo en la primera columna de una fila, (2) La tabla de Routh a veces tendrá una fila completa que consta de ceros.

  • Cero sólo en la primera columna de una fila. Si el primer elemento de una fila es cero, se requerirá una división por cero para formar la siguiente fila. Para evitar este fenómeno, se asigna un epsilon ε para reemplazar el cero en la primera columna. Luego se aproxima el valor de ε a cero desde el lado positivo o el negativo,y así se pueden determinar los signos de las entradas en la primera columna. Para ver la aplicación de esto, veamos el siguiente ejemplo: determinar la estabilidad de la función de transferencia de bucle cerrado T(s):

null

La solución se muestra en la tabla 6.4:

null

Debemos comenzar por ensamblar la tabla de Routh hasta la fila donde aparece un cero solo en la primera columna (la fila s ^ 3). Luego, reemplazamos el cero por un número pequeño ε que permita completar la tabla. Para comenzar la interpretación, primero debemos asumir un signo, positivo o negativo para la cantidad ε. La Tabla 6.5 muestra la primera columna de la tabla 6.4 junto con los signos resultantes para las elecciones de ε positivo y ε negativo.

null

Si se elige ε positivo, la Tabla 6.5 muestra un cambio de signo de la fila s ^ 3 a la fila s ^ 2, y habrá otro cambio de signo de la fila s ^ 2 a la fila s ^ 1. Por lo tanto, el sistema es inestable y tiene dos polos en el semiplano derecho. Alternativamente, podríamos elegir ε negativo. La Tabla 6.5 muestra un cambio de signo de la fila s ^ 4 a la fila s ^ 3. Otro cambio de signo ocurriría desde la fila s ^ 3 a la fila s ^ 2. Nuestro resultado sería exactamente el mismo que para una elección positiva para. Por lo tanto, el sistema es inestable.

  • Una fila entera está compuesta por cerosAhora miramos el segundo caso especial. A veces, al hacer una tabla de Routh, podemos encontrar que una fila entera consta de ceros porque hay un polinomio uniforme que es un factor del polinomio original. Este caso debe manejarse de manera diferente al caso anterior. El siguiente ejemplo muestra cómo construir e interpretar la tabla de Routh cuando hay una fila completa de ceros.

Determine el número de polos del semiplano derecho en la función de transferencia de bucle cerrado T (s):

null

Comenzamos formando la tabla de Routh para el denominador. Obtenemos la Tabla 6.7:

null

En el segundo multiplicamos por 1/7 por conveniencia. Nos detenemos en la tercera fila ya que toda la fila consta de ceros y usamos el siguiente procedimiento. Primero volvemos a la fila inmediatamente superior a la fila de ceros y formamos un polinomio auxiliar usando las entradas en esa fila como coeficientes. El polinomio comenzará con la potencia de s en la columna de la etiqueta y continuará omitiendo cualquier otra potencia de s. Por lo tanto, el polinomio formado para este ejemplo es:

null

A continuación, diferenciamos el polinomio con respecto a s y obtenemos:

null

Finalmente usamos los coeficientes de esta última ecuación para reemplazar la fila de ceros. De nuevo, por conveniencia, la tercera fila se multiplica por ¼ después de reemplazar los ceros. El resto de la tabla se forma de manera directa siguiendo la forma estándar que se muestra en la Tabla 6.2 que repetimos aquí por comodidad:

Obtenemos la Tabla 6.7 ya mostrada con anterioridad. Muestra que todas las entradas en la primera columna son positivas. Por lo tanto, no hay polos del semiplano derecho y el sistema es estable.

ANTERIOR: Respuesta transitoria de un sistema de control

SIGUIENTE: Error en estado estable de un sistema de control

Fuentes:

  1. Control Systems Engineering, Nise
  2. Sistemas de Control Automatico Benjamin C Kuo
  3. Modern_Control_Engineering, Ogata 4t

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: +593998524011

email: dademuchconnection@gmail.com

Atención:

Si lo que Usted necesita es resolver con urgencia un problema de “Sistema Masa-Resorte-Amortiguador” (encontrar la salida X(t), gráficas en Matlab del sistema de 2do Orden y parámetros relevantes, etc.), o un problema de “Sistema de Control Electromecánico” que involucra motores, engranajes, amplificadores diferenciales, etc…para entregar a su profesor en dos o tres días, o con mayor urgencia…o simplemente necesita un asesor para resolver el problema y estudiar para el próximo examen…envíeme el problema…Yo le resolveré problemas de Sistemas de Control, le entrego la respuesta en digital y le brindo una video-conferencia para explicarle la solución…incluye además simulación en Matlab.

Relacionado:

Diagrama de Bloques – Ingeniería de Control

Dinámica de un Sistema Masa-Resorte-Amortiguador

Diagrama de Bloques de Sistema Electromecánico con Motor DC

Respuesta Transitoria de un Sistema de Control

Error en estado estable de un sistema de control

Análisis de sistemas de control, Respuesta en el tiempo

Simulación de Respuesta Transitoria con Matlab

Introducción

Para el análisis transitorio de algunos ejemplos tomamos en cuenta el cuadro presentado con anterioridad en ensayo teórico Respuesta Transitoria de un Sistema de Control, junto con la forma estándar de la Función de Transferencia:

En la siguiente figura vemos la relación entre σ  (coeficiente de amortiguamiento) y el tipo de respuesta obtenida: mientras menor sea el valor de σ , más oscilatoria es la respuesta. La frecuencia natural ωd  es un factor de escala de tiempo y no afecta la naturaleza de la respuesta más allá de afectar su escalamiento en el tiempo.

  1. Matlab y la función tf() y step(). La Función de Transferencia para un sistema masa-resorte-amortiguador se muestra en la Figura 2.15.

Considerando M=1 Kg, Fv= 4 N*seg/m, y K= 3 N/m. Introduciendo la expresión de la función de transferencia en la consola de Matlab, utilizando tf() y step(), obtenemos la respuesta del sistema a a la entrada escalón unitario

> X=tf([1],[1 4 3])

>step(X)

X = 1/ s^2 + 4 s + 3

Gráfica 1

Mediante la función residue (X) podemos ver que los polos de esta función están en -3 y -1:

> [r,p,k]=residue ([1],[1 4 3])

r = -0.5000, 0.5000 // polos = -3, -1 // k =0. Los polos son reales negativos diferentes, lo que sugiere un factor de amortiguamiento por ello estamos en presencia de un sistema sobreamortiguado como lo sugiere la gráfica 1

>ilaplace(1/(s^3 + 4*s^2 + 3*s),s,t)

ans = exp(-3*t)/6 – exp(-t)/2 + ⅓ (respuesta a la aplicación de una fuerza repentina semejante a la función escalón unitario)

2. Utilizando tf() introducimos la función de transferencia del sistema descrito en forma estándar 25/(s^2 + 4s +25). Realice el gráfico de x(t) ante impulso y rampa para el intervalo 0<t<3 utilizando lsim() y impulse()

> p=tf([25],[1 4 25])

> t=0:0.1:3

> x=t

>lsim(p,x,t)

obtenemos la respuesta a la entrada rampa

> impulse(p)

obtenemos la respuesta al impulso del sistema

Utilizando step() obtenemos la respuesta al escalón unitario y utilizando stepinfo() obtenemos el valor de los parámetros más relevantes de esta respuesta:

> s=tf([25],[1 4 25])

> step(s)

> stepinfo(s)

null

3. Matlab y la función residue() y ilaplace(). Considerando el sistema

Gráfica 2. Respuesta a la entrada escalón unitario

>[r,p,k]=residue ([2 25],[1 4 25])

r = 1.0000 – 2.2913i; 1.0000 + 2.2913i

polos = -2.0000 + 4.5826i; -2.0000 – 4.5826i; k = []. Dos polos imaginarios conjugados, lo que sugiere un sistema subamortiguado, como se confirma en la gráfica, para

Vemos claramente que ωn = 2 y ωd = 4.5826.

>ilaplace((2*s + 25)/(s^3 + 4*s^2 + 25*s),s,t)

ans =1 – exp(-2*t)*cos(21^(1/2)*t) parecida a la forma

Vemos que a diferencia del ejemplo 1, en este caso la salida en el tiempo incluye un componente coseno que la hace oscilar como se muestra en la Gráfica 2.

Utilizando la función damp(), podremos encontrar los valores del coeficiente de amortiguamiento ζ , la constante de tiempo τ y el de la frecuencia natural ωn:

> damp(s2)m 

               Pole                  Damping     Frequency (r/s)      Time Constant  (s)

-2.00e+00 + 4.58e+00i       4.00e-01      5.00e+00              5.00e-01

-2.00e+00 – 4.58e+00i        4.00e-01       5.00e+00             5.00e-01

 ζ=0.4 // ωn=5.00 r/s  //  τ=0.5 s

4. Matlab y la forma estándar: Supongamos que las especificaciones que deben cumplirse están expresadas como los valores del coeficiente de amortiguamiento y de la frecuencia natural. Podemos generar la función de transferencia de este sistema utilizando las funciones ord2() y printsys(NUM,DEN,’s’), y luego graficar esta respuesta recordando que ambos parámetros se relacionan con la entrada escalón unitario:

[NUM,DEN] = ord2(Wn,Z) returns the polynomial transfer function of the second order system.

> wn=5

> damping_ratio=0.4

>[Num0,den]=ord2(wn,damping_ratio)

Num0 =1;

den = 1 4 25.

printsys(NUM,DEN,’s’) prints the transfer function as a ratio of two polynomials in the transform variable ‘s’

> Num=5^2*Num0

> printsys(Num,den,’s’)

num/den = 25/ s^2 + 4 s + 25

>p=tf([25],[1 4 25])

>step(p)

 

5. Ahora analizamos la aplicación de la función lsim(): lsim – Simulate time response of dynamic system to arbitrary inputs-This MATLAB function produces a plot of the time response of the dynamic system model sys to the input history, t,u.

Consideramos el sistema simple 25/(s^2 + 4s +25) en su forma estándar, y la respuesta al escalón unitario. Aplicamos las funciones siguientes:

> p=tf([25],[1 4 25])

>[u,t]=gensig(‘pulse’,0.1,3,0.1)

> lsim(p,u,t)

obtenemos

6. Vamos a derivar la Función de Transferencia a partir de un diagrama de bloques y la función feedback(). Consideramos el sistema:

donde:

Determine la expresión de la función de transferencia Gfinal=C(s)/R(s) en Matlab utilizando el comando feedback()

>s=tf(‘s’)

> G3=1/s

> H3=10/(s+5)

>G3H3cloop=feedback(G3,H3)

G3H3cloop = s + 5/ s^2 + 5 s + 10

G2=20/(s+2)

> H2=10/(s+20)

G2H2cloop=feedback(G2,H2) // G2H2cloop = 20 s + 400/ s^2 + 22 s + 240 //

> G1plusG2H2cloop= G2H2cloop + G1

G1plusG2H2cloop = 5 s^2 + 130 s + 1600/ s^2 + 22 s + 240

> GRH1cloop=feedback(GR,H1)

GRH1cloop = 5 s^2 + 130 s + 1600/ 51 s^2 + 1322 s + 16240

> Gfinal= GRH1cloop + (GRH1cloop/G2) + G3H3cloop

Gfinal =

255 s^7 + 20125 s^6 + 774760 s^5 + 1.786e07 s^4 + 2.647e08 s^3 + 2.482e09 s^2 + 1.362e10 s + 3.209e10

—————————————————————————————————–

52020 s^6 + 2.957e06 s^5 + 8.209e07 s^4 + 1.226e09 s^3 + 1.025e10 s^2 + 3.496e10 s + 5.275e10

7. Vamos a analizar la estabilidad del siguiente sistema:

null

> T=tf([128],[1 3 10 24 48 96 128 192 128])

> G=feedback(T,1)

G =

                                   128

 ———————————————————————–

 s^8 + 3 s^7 + 10 s^6 + 24 s^5 + 48 s^4 + 96 s^3 + 128 s^2 + 192 s + 256

> poles=pole(G)

poles=

  1.0154 + 1.5963i

  1.0154 – 1.5963i

  0.2646 + 2.0468i

  0.2646 – 2.0468i

 -0.9684 + 1.9698i

 -0.9684 – 1.9698i

 -1.8116 + 0.4508i

 -1.8116 – 0.4508i

Vemos claramente que el sistema tiene dos polos en el semiplano derecho, dos polos en el eje imaginario y cuatro en el semiplano izquierdo, por tanto es inestable. La respuesta al escalón unitario mediante step() así lo sugiere:

null

 

8. Obtenga las respuestas impulso, escalón y rampa para 0<t<10 s simulando los sistemas siguientes en Simulink, utilice un Scope para comparar las respuestas escalón y las respuestas ante una entrada rampa.

> sys=tf([5 100],[1 8 32 80 100])

stepinfo(sys):  

RiseTime: 0.7217 , SettlingTime: 3.1056, Overshoot: 13.8472,

PeakTime (Pt): 1.6579, Peak (P): 1.1385 (se señala Pt y P en la gráfica para la curva color amarillo mediante herramientas de medición de Scope)

sys2=tf([245],[1 10])

>> sys3=tf([1],[1 4 24])

> stepinfo(sys2*sys3)

 RiseTime: 0.3443,  SettlingTime: 1.8124, Overshoot: 21.3046, PeakTime: 0.8197,

Peak: 1.2383 (se señala Pt y P en la gráfica para la curva color azul)

9. Ejercicio 77, p295, Nise. The mechanical system shown in Figure P5.52(a) is used as part of the unity feedback system shown in Figure P5.52(b). Find the values of M and D to yield 20% overshoot and 2 seconds settling time.

 

Respuesta:

 

 

Respuesta completa en el siguiente link: Ejemplo 1 – Respuesta transitoria de un sistema electromecánico

Fuentes:

  1. Control Systems Engineering, Nise
  2. Sistemas de Control Automatico Benjamin C Kuo
  3. Modern_Control_Engineering, Ogata 4t

Elaborado por: Larry Francis Obando – Technical Specialist – Educational Content Writer

Mentoring Académico / Empresarial / Emprendedor

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, 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

Atención:

Si lo que Usted necesita es resolver con urgencia un problema de “Sistema Masa-Resorte-Amortiguador” (encontrar la salida X(t), gráficas en Matlab del sistema de 2do Orden y parámetros relevantes, etc.), o un problema de “Sistema de Control Electromecánico” que involucra motores, engranajes, amplificadores diferenciales, etc…para entregar a su profesor en dos o tres días, o con mayor urgencia…o simplemente necesita un asesor para resolver el problema y estudiar para el próximo examen…envíeme el problema…Yo le resolveré problemas de Sistemas de Control, le entrego la respuesta en digital y le brindo una video-conferencia para explicarle la solución…incluye además simulación en Matlab.

Relacionado:

Diagrama de Bloques – Ingeniería de Control

Respuesta Transitoria de un Sistema de Control

Dinámica de un Sistema Masa-Resorte-Amortiguador

Diagrama de Bloques de Sistema Electromecánico con Motor DC

Control System Analysis, Time Domain

Transient-response Specifications

NEXT: Control System Stability

Introduction

The response in time of a control system is usually divided into two parts: the transient response and the steady-state response. Let y (t) be the response of a system in continuous time, then:

where yt (t) is the transient response, while yss (t) is the steady state response.

The transient response of a control system is important since both its amplitude and its duration must be kept within tolerable or prescribed limits. It is defined as the part of the response in time that tends to zero when the time becomes very large. Thus,

All real stable control systems present a transient phenomenon before reaching the steady state response. For analysis and design purposes it is necessary to assume some basic types of test inputs to evaluate the performance of a system. The proper selection of these test signals allows the prediction of system performance with other more complex inputs. The following signals are used: Step function, which represents an instantaneous change in the reference input; Ramp function, which represents a linear change over time; Parabolic function, which represents a faster order than the ramp. These signals have the common characteristic that they are simple to write in mathematical form, it is rarely necessary or feasible to use faster functions. In Figure 7-1 you can see these functions:

[2]

For a linear control system, the analysis and characterization of the transient response is performed frequently using the unit step function Us (t), shown in Figure 7-1a with R = 1. A typical response of a control system to a unit step input is shown in Figure 7-11:

[2]

The transient response of a practical control system often exhibits damped oscillations before reaching the steady state. That’s happens because systems have energy storage and cannot responds immediately. The transient-response to a unit step input depends on the initial conditions. That’s why it is a common practice to use the standard initial conditions that the system is at rest initially with the output an all time derivatives thereof zero.

Second-order systems and Transient-response specifications.

Figure 5-5a shows a Servo System as an example of a second-order system. It consists of a proportional controller and load elements (inertia and viscous friction elements):

null

[3]

The closed-loop Transfer Function of the system shown in Figure 5-5c is:

In the transient-response analysis it is convenient to write:

Where σ is called the attenuation; ωn is the undamped natural frequency; and ζ  the damping ratio of the system.  ζ  is the ratio of the actual damping B to the critical damping Bc equal to two times the square-root of JK:

In terms of ωn y σ, the system shown in Figure 5-5c can be expressed as Figure 5-6:

[3]

Now, the Transfer Function C(s)/R(s) can be written as:

This form is called The Standard Form. The dynamic behavior of a second-order system can be now described in terms of the two parameters ωn and σ. In short, the cases of second-order response as a function of σ are summarized in Figure 4.11 (for a better review see FIRST and SECOND ORDER SYSTEMS):

[1]

In specifying the transient-response characteristics of a control system to a unit-step input, it is common to specify the following parameters associated with the underdamped response:

 

  1. Delay time, Td
  2. Rise time, Tr
  3. Peak time, Tp
  4. Percent overshoot (%OS) or Maximum overshoot (Mp)
  5. Settling time, Ts

These specifications are defined as follows:

Delay time (Td): it is the time required for the response to reach half the final value the very first time.

Rise time (Tr): it is the time required for the response to rise from 10% to 90%. In other words, to go from 0.1 of the final value to 0.9 of the final value.

Peak time (Tp): it is the time required for the response to reach the first peak of the overshoot.

Maximum overshoot (Mp): it is the maximum peak value of the response curve measured from unity. It is also the amount that the waveform overshoots the final value, expressed as a percentage of the steady-state value.

Settling time (Ts):  it is the time required for the transient damping oscillations to reach and stay within ±2% or ±5% of the final or steady-state value.

These specifications are graphically shown in Figure 5-8:

[3]

It is important to remark that these specifications don’t necessarily apply to any given case. For example, the terms peak time and maximum overshoot do not apply to overdamped systems.

Except for certain applications where oscillations can’t be tolerated, it is desirable that the transient-response be sufficiently fast and sufficiently damped. Thus, for a desirable transient response of a second-order system, the damping ratio must be between 0.4 and 0.8. Small values of σ (σ<0.4) yields excessive overshoot in the transient response, and systems with a large value of σ (σ>0.8) responds sluggishly. We will also see that the maximum overshoot and the rise time conflict with each other. In other words, they cannot be made smaller simultaneously.

Analytically:
Rise time (Tr):

where ωd is the damped natural frequency:

and ß is defined by the Figure 5-9:

[3]

Peak time (Tp):

Settling time (Ts):

Transient-response of Higher-order systems.

It could be seen that the transient response of a system higher than a second-order is the sum of the responses of first-order and second order systems.  

Transient-response of a First-order system.

We briefly discuss the transient response of a first-order system. A first-order system without zeros can be described by the transfer function shown in Figure 4.4(a).

[1]

If the input is a unit step, where R(s)=1, the Laplace transform of the step response is C(s), where:

Taking the inverse transform:

Figure 4-5 shows a typical response of this system to a unit step input:

[1]

We call 1/a the time constant of the response. The parameter a is the only one needed to describe the transient response for a first-order system. Thus, the time constant can be considered a transient response specification for a first order system, since it is related to the speed at which the system responds to a step input. Since the pole of the transfer function is at a, we can say the pole is located at the reciprocal of the time constant, and the farther the pole from the imaginary axis, the faster the transient response.

The other specifications for a first-order system are:

Rise time (Tr):

Settling time (Ts):

NEXT: Control System Stability

Source:

  1. Control Systems Engineering, Nise pp 177-181
  2. Sistemas de Control Automatico Benjamin C Kuo p 385,
  3. Modern_Control_Engineering, Ogata 4t pp 224, 232

Written 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: +593984950376

email: dademuchconnection@gmail.com

Attention:

If what you need is to solve urgently a problem of a “Mass-Spring-Damper System ” (find the output X (t), graphs in Matlab of the 2nd Order system and relevant parameters, etc.), or a “System of Electromechanical Control “… to deliver to your teacher in two or three days, or with greater urgency … or simply need an advisor to solve the problem and study for the next exam … send me the problem…I Will Write The Solution To any Control System Problem…

, …I will give you the answer in digital and I give you a video-conference to explain the solution … it also includes simulation in Matlab. In the link above, you will find the description of the service and its cost.

Related:

The Block Diagram – Control Engineering

Dinámica de un Sistema Masa-Resorte-Amortiguador

Block Diagram of Electromechanical Systems – DC Motor

Control System Stability

Steady-state error in Control Systems