Cadena de tipo de datos c#. Operaciones con cuerdas. Operadores de clase de cadena

Introducción

Real Kit de herramientas destinado al estudio de la sección "Automatización" del complejo interdisciplinario MDK 03.01., las disciplinas "Fundamentos de la automatización", "Sistemas" Control automático»

El manual analiza métodos de modelado digital de sistemas de control automático y software para su implementación, y analiza métodos para construir modelos matemáticos.

La primera parte de las instrucciones (Parte 1) muestra cómo describir sistemas usando ecuaciones diferenciales. La siguiente parte (Parte 2) de las instrucciones presentará un método para describir sistemas como una colección de muchas funciones de transferencia.

Para ilustrar el ejemplo se utilizó la versión 7.11 del programa MATLAB.

Trabajar con otras versiones de MATLAB es similar, excepto por la apariencia de "ventana".

Intentamos simplificar las instrucciones tanto como fuera posible y mostrar de forma accesible cómo utilizar Simulink.

Parte 1. información general sobre el sistema Simulink

El programa Simulink es una aplicación del paquete MATLAB.

Al modelar con Simulink, se implementa el principio de programación visual, según el cual el usuario crea un modelo de dispositivo en la pantalla a partir de una biblioteca de bloques estándar y realiza cálculos. Al mismo tiempo, a diferencia de métodos clásicos Para modelar, el usuario no necesita estudiar a fondo el lenguaje de programación y los métodos numéricos de las matemáticas, sino los conocimientos generales necesarios para trabajar en un ordenador y, por supuesto, el conocimiento de ese. área temática donde él trabaja.

El concepto central del sistema de simulación Simulink es la señal. De forma predeterminada, las señales son variables escalares adimensionales que relacionan los componentes del modelo. Sin embargo, también existen señales especiales, por ejemplo eléctricas, hidráulicas, mecánicas, etc., que describen en cierto modo la influencia física específica de unos elementos del sistema modelado sobre otros. Los componentes del modelo son elementos de la biblioteca Simulink u otros modelos que realizan cambios en las señales (por ejemplo, integración, amplificación, suma de dos señales, etc.).

Simulink es una herramienta bastante independiente y, cuando se trabaja con ella, no es necesario conocer MATLAB ni sus otras aplicaciones. Por otro lado, las funciones de MATLAB y sus demás herramientas permanecen abiertas y pueden usarse en Simulink. Algunos de los paquetes incluidos tienen herramientas integradas en Simulink (por ejemplo, LTI-Viewer Aplicaciones de control System Toolbox: un paquete para desarrollar sistemas de control).

También hay bibliotecas de bloques adicionales para diferentes áreas de aplicación (por ejemplo, Power System Blockset - modelado de dispositivos eléctricos, Digital Signal Processing Blockset - un conjunto de bloques para el desarrollo de dispositivos digitales, etc.).

Al trabajar con Simulink, el usuario tiene la oportunidad de actualizar bloques de biblioteca, crear los suyos propios y también componer nuevas bibliotecas de bloques.

Al modelar, el usuario puede elegir el método para resolver ecuaciones diferenciales, así como el método para cambiar el tiempo del modelo.

(paso fijo o variable). Durante la simulación, es posible monitorear los procesos que ocurren en el sistema. Para ello se utilizan dispositivos de monitorización especiales incluidos en la biblioteca de Simulink. Los resultados de la simulación se pueden presentar en forma de gráficos o tablas.

La ventaja de Simulink es también que permite ampliar bibliotecas de bloques utilizando subrutinas escritas tanto en MATLAB como en C++, Fortran y Ada.

Para ejecutar el programa, primero debe ejecutar el paquete MATLAB. La ventana principal del paquete MATLAB se muestra en la Figura 1. También muestra la información sobre herramientas que aparece en la ventana cuando pasa el mouse sobre el acceso directo de Simulink en la barra de herramientas.

Después de abrir la ventana principal del programa MATLAB, debe iniciar el programa Simulink. Esto se puede hacer de una de tres maneras:

Figura 1: ventana principal de MATLAB

∙ Haga clic en el botón (Simulink) en la barra de herramientas de la ventana de comandos de MATLAB.

∙B línea de comando en la ventana principal de MATLAB, escriba Simulink y presione la tecla Enter en su teclado.

∙ Ejecute el comando Abrir... en el menú Archivo y abra el archivo del modelo (archivo mdl).

La última opción es conveniente para ejecutar un modelo listo para usar y depurado, cuando solo necesita realizar cálculos y no es necesario agregar nuevos bloques al modelo. El uso del primer y segundo método conduce a la apertura de la ventana de la biblioteca de Simulink (Figura 2).

Figura 2: ventana de la biblioteca de Simulink.

Los números indican: 1 – línea de búsqueda de componentes, 2 – árbol de biblioteca de Simulink, 3 – contenidos de la biblioteca (secciones o componentes de la biblioteca)

La Figura 2 resalta la biblioteca principal de Simulink (en el lado izquierdo de la ventana) y muestra sus secciones (en el lado derecho de la ventana). La biblioteca Simulink en MATLAB 2010 contiene las siguientes secciones principales:

0. Bloques de uso común: componentes de uso frecuente de varias secciones de la biblioteca principal de Simulink.

1. Continuo – componentes para modelar sistemas en tiempo continuo.

2. Discontinuidades: componentes para modelar funciones no lineales discontinuas y no suaves.

3. Discreto: componentes para modelar sistemas en tiempo discreto.

4. Operaciones lógicas y de bits: componentes para modelar la lógica

operaciones lógicas (binarias).

5. Tablas de búsqueda: componentes para modelar dependencias funcionales y de tablas.

6. Operaciones matemáticas: componentes para modelar operaciones matemáticas.

7. Verificación de modelos: componentes para probar y verificar el comportamiento de los modelos.

8. Utilidades para todo el modelo: componentes auxiliares para documentar y linealizar modelos.

9. Puertos y subsistemas: componentes básicos modelos jerárquicos y subsistemas.

10. Atributos de señal: componentes para convertir tipos de señales en modelos.

11. Enrutamiento de señales: componentes para conmutar y combinar/desconectar señales.

12. Fregaderos: componentes para mostrar y guardar señales.

13. Fuentes – fuentes de señales e influencias.

14. Funciones definidas por el usuario: componentes para crear funciones personalizadas, implementado en MATLAB.

La lista de secciones de la biblioteca Simulink se presenta en forma de árbol y las reglas para trabajar con ella son comunes para listas de este tipo:

∙ El icono de un nodo de árbol colapsado contiene el símbolo + y el icono de un nodo de árbol expandido contiene el símbolo -.

∙ Para expandir o contraer un nodo de árbol, simplemente haga clic en su icono con el botón izquierdo del mouse.

Cuando selecciona la sección de biblioteca correspondiente, su contenido se muestra en el lado derecho de la ventana (Figura 3).

Figura 3: Componentes de la biblioteca Simulink/Continuous.

Un ejemplo de construcción de un modelo en Simulink

Como ejemplo del uso de Simulink para modelar sistemas, considere la calefacción en un edificio residencial individual. Supongamos por simplicidad que la casa consta de una sola habitación en la que se instala calefacción con una potencia térmica total𝑃 . Temperatura dentro de esta casa𝑇 𝑖 grados, la temperatura fuera de la ventana es𝑇 𝑜 grados. Nos interesa cómo cambia la temperatura.𝑇 𝑖 cuando el poder cambia𝑃 (Figura 4).

Figura 4 - Modelo de una habitación climatizada en función de entradas y salidas.

Antes de construir el modelo, consideremos intuitivamente algunas de sus propiedades. En primer lugar, es bastante obvio que si enciende la calefacción, la temperatura primero aumentará y luego se estabilizará: se producirá un equilibrio térmico entre el calor suministrado y el calor disipado al exterior a través de las grietas de las ventanas, la ventilación, etc. Si apagas la estufa, la temperatura bajará y eventualmente la casa estará tan fría como afuera. Básico

Los parámetros del modelo son:

∙ temperatura exterior𝑇 𝑜 – cuanto más pequeño es, más calor

sale de la casa y se necesita más potencia de calefacción para alcanzar la temperatura interior establecida𝑇 𝑖 ;

∙ calidad del aislamiento térmico: cuanto peor es el aislamiento térmico, más calor sale;

∙ la masa de aire dentro de la casa: cuanto más aire, más tiempo será necesario calentarlo a una temperatura determinada y más tiempo se enfriará la casa cuando se apague la calefacción.

En ingeniería térmica existen muchos modelos que simulan los procesos de calentamiento y enfriamiento de cuerpos con distintos grados de precisión. A continuación veremos el más simple de ellos. Para hacer esto, es necesario introducir el concepto de cantidad de calor, la energía necesaria para cambiar el estado termodinámico de un cuerpo (por ejemplo, la temperatura). Es bien sabido por los cursos de física que para calentar un cuerpo con masa𝑚 y capacidad calorífica𝑐 desde la temperatura 𝑇 1 hasta 𝑇 2 es necesario gastar la cantidad de calor𝑄 igual a

𝑄 = 𝑐𝑚 (𝑇 2 − 𝑇 1)

cantidad de calor𝑄 𝑖 , que proviene de un calentador con una potencia𝑃 en el tiempo 𝜏 es solo una integral en el tiempo:

𝑄 𝑖 (𝜏 ) =

Para comprender cuánto calor ha salido al exterior, es necesario utilizar el concepto de flujo de calor.𝑄 0 (t) – la cantidad de calor que pasa a través de la superficie por unidad de tiempo. Si asumimos que la conductividad térmica dentro de dos medios en contacto es mayor que la conductividad térmica entre ellos, entonces el flujo de calor es proporcional a la diferencia de sus temperaturas:

𝑄 0 (t)= -k(T i (t)–T 0 )

𝑄 0 (𝜏 ) = (T i (t)–T 0 )dt

Escribamos la ecuación del balance de calor:

𝑄 = 𝑄 𝑖 + 𝑄 𝑜

Al diferenciar ambas partes con respecto al tiempo, podemos escribir una ecuación diferencial que relacione la dinámica de los cambios de temperatura.𝑇 𝑖 (𝑡 ) sobre la potencia del calentador:

𝑐𝑚 = 𝑘 (𝑇 𝑜 − 𝑇 𝑖 (𝑡 )) + 𝑃 (𝑡 )

Habiendo designado el coeficiente𝑐𝑚 = a y separando las variables para la integración, podemos escribir:

La última expresión es modelo más simple Proceso de intercambio de calor al calentar una habitación. Veamos cómo modelar este sistema usando Simulink.

Para crear un modelo en Entorno de enlace simultáneo es necesario realizar una serie de acciones de forma secuencial.

Primero necesitas crear. archivo nuevo modelo usando el comando Archivo / Nuevo / Modelo, o usando el botón en la barra de herramientas (en adelante, usando el símbolo /, se indican los elementos del menú del programa que deben seleccionarse secuencialmente para ejecutar acción especificada). La ventana del modelo recién creada se muestra en la Figura 5.

Figura 5 - Ventana de modelo vacía.

A continuación, colocaremos los componentes de la biblioteca Simulink en la ventana del modelo. Para hacer esto, debe abrir la sección correspondiente de la biblioteca (por ejemplo, Fuentes). A continuación, apunte el cursor al bloque requerido y, presionando el botón izquierdo del mouse, arrastre el bloque a la ventana del modelo creado. Se debe mantener presionada la tecla del mouse.

Al considerar la ecuación diferencial del modelo, podemos hacer la siguiente lista de componentes que cambian las señales del modelo:

∙ se debe introducir un parámetro en el modelo𝑇 𝑜 , que al principio será

constante: usamos el componente de biblioteca Simulink / Commonly Used Blocks / Constant o Simulink / Sources / Constant (este es el mismo componente);

∙ para obtener la diferencia de temperatura𝑇 𝑜 − 𝑇 𝑖 (𝑡 ) es necesario utilizar un sumador (en modo restador) – un componente de la biblioteca Simulink / Bloques de uso común / Suma o Simulink /

Operaciones matemáticas/Suma (también el mismo componente);

∙ para calcular el producto de la diferencia de temperatura por el coeficiente𝑘 ・ (𝑇 𝑜 − 𝑇 𝑖 (𝑡 )), debes usar un bloque

amplificador, ya que dicho producto equivale a amplificar la señal diferencia en𝑘 una vez instalamos el componente de la biblioteca Simulink / Commonly Used Blocks / Gain o Simulink / Math Operations / Gain;

∙ para obtener la suma de potencias𝑘 (𝑇𝑜 − 𝑇𝑖 (𝑡 )) + 𝑃 (𝑡 ) debajo de la integral debe usar un sumador, un componente de la biblioteca Simulink / Bloques de uso común / Suma o Simulink / Operaciones matemáticas / Suma;

∙ obtener la cantidad de calor a partir de la suma de potencias mediante integración

𝑇 𝑖 (𝑡 )= (𝑘 (𝑇 𝑜 − 𝑇 𝑖 (𝑡 )) + 𝑃 (𝑡 )) dt

debe utilizar un integrador, un componente de la biblioteca Simulink / Commonly Used Blocks / Integrator o Simulink / Continuous / Integrator;

∙ para generar una señal de temperatura interna𝑇 𝑖 (𝑡 ) a partir de la integral de potencia, es necesario utilizar un bloque amplificador que multiplique el valor de la integral por 1/𝑎 – componente de biblioteca

Simulink / Bloques de Uso Común / Ganancia o Simulink / Operaciones Matemáticas / Ganancia;

Además, necesitamos visualizar la dependencia.𝑇 𝑖 (𝑡 ), para esto utilizamos un osciloscopio, un componente de la biblioteca Simulink / Commonly Used Blocks / Scope o Simulink / Sinks / Scope. También establecemos la dependencia del poder en el tiempo.𝑃 (𝑡 ) como una señal de un solo paso utilizando el componente de biblioteca Simulink /Sources/Step.

Figura 6 - Ventana del modelo que contiene los bloques necesarios

La Figura 6 muestra una ventana modelo que contiene bloques instalados.

Para eliminar un bloque, debe seleccionar el bloque (apunte el cursor a su imagen y presione el botón izquierdo del mouse) y luego presione la tecla Eliminar en el teclado.

Para cambiar el tamaño de un bloque, debe seleccionar el bloque, colocar el cursor en una de las esquinas del bloque y, presionando el botón izquierdo del mouse, cambiar el tamaño del bloque (el cursor se convertirá en un doble- flecha lateral).

Figura 7 - Modelado de bloques del integrador y ventana para editar parámetros de bloque

El siguiente paso es configurar los parámetros de cada bloque. Para hacer esto, haga doble clic con el botón izquierdo del mouse, apuntando el cursor a la imagen del bloque. Se abrirá una ventana para editar los parámetros de este bloque. Al especificar parámetros numéricos, tenga en cuenta que el separador decimal debe ser un punto, no una coma. Después de realizar cambios, debe cerrar la ventana con el botón Aceptar. La Figura 7 muestra, a modo de ejemplo, un bloque que modela un integrador y una ventana para editar los parámetros de este bloque.

En el modelo considerado, es necesario configurar los siguientes parámetros de bloque:

∙ Bloque integrador: parámetro Condición inicial = 20 – la integración se realiza a partir de una temperatura ambiente inicial de 20 grados;

∙ bloque Sum1 (el menor de los dos sumadores): Lista de signos = |+- – convierte el sumador en un restador;

Parámetros 𝑎 y 𝑘 No definiremos modelos por ahora, poniendo𝑎 = 1 y 𝑘 = 1. Después de instalar todos los bloques de las bibliotecas requeridas en el circuito, debe conectar los elementos del circuito mediante señales.

Para conectar bloques, debe apuntar el cursor a la salida del bloque y luego presionar y, sin soltar el botón izquierdo del mouse, dibujar una línea hacia la entrada de otro bloque. Luego suelte la llave. Si la conexión es correcta, la imagen de la flecha en la entrada del bloque cambia de color. Para crear un punto de bifurcación en una línea de conexión, debe mover el cursor al nodo deseado y, presionando el botón derecho del mouse, dibujar la línea. Para eliminar una línea, debe seleccionar la línea (de la misma manera que para un bloque) y luego presionar la tecla Eliminar en el teclado.

Para que el modelo sea más fácil de entender, puede establecer nombres no sólo para los bloques, sino también para las señales. Para hacer esto, haga doble clic en la señal e ingrese un nombre. Denotamos las señales correspondientes a las variables.𝑃 , 𝑇 𝑜 , 𝑇 𝑖 , P, T o y T i .

El diagrama del modelo, en el que se realizan todas las conexiones entre los bloques y sus ajustes, se muestra en la Figura 8.

Figura 8 - Diagrama del modelo final.

Después de compilar el modelo, debe guardarlo como un archivo en el disco seleccionando el elemento de menú Archivo/Guardar como... en la ventana del diagrama y especificando la carpeta y el nombre del archivo. Al editar el diagrama más adelante, puede utilizar el elemento de menú Archivo/Guardar. En lanzamientos repetidos Programas de Simulink El diagrama se carga usando el menú Archivo/Abrir... en la ventana del navegador de la biblioteca o desde la ventana principal de MATLAB.

La simulación se inicia seleccionando el elemento del menú Simulación/Inicio o haciendo clic en el botón triangular (reproducir) en la barra de herramientas. La duración de la simulación del sistema se indica en el campo de entrada al lado de forma predeterminada, la simulación se detiene cuando se alcanza el tiempo de simulación;𝑡 𝑠𝑡𝑜𝑝 = 10. El proceso de cálculo se puede completar antes de lo previsto seleccionando el elemento del menú Simulación/Detener o el botón cuadrado (detener). El cálculo también se puede detener (Simulación/Pausa) y luego continuar (Simulación/Continuar).

Comencemos la simulación. Después de terminar, haga doble clic en el bloque del osciloscopio (Scope). Debería mostrar la dependencia.𝑇 𝑖 (𝑡 )

(Figura 9). Si el gráfico no es visible, entonces debe hacer clic botón derecho del ratón a lo largo de la zona negra y seleccione Escala automática en el menú, que escalará automáticamente los ejes del gráfico.

Figura 9 - Resultado de la simulación en𝑃 = 1.

Se puede observar que la temperatura interior baja de 20 grados a una temperatura superior a la exterior.𝑇 𝑜 = 1, modelado por el bloque Constante.

Esto afecta el efecto del calentador.

Establezcamos los parámetros del bloque Paso, que modela la dependencia.𝑃 (𝑡 ), alto poder calorífico. El bloque Paso genera un valor constante especificado por su parámetro Valor final, y esto sucede en el momento especificado por el parámetro Tiempo de paso. Hasta este momento, el valor de salida del componente Paso es 0. Al establecer el parámetro Valor final = 10, ejecutaremos la simulación nuevamente. Consigamos una dependencia𝑇 𝑖 (𝑡 ), que se muestra en la Figura 10.

Figura 10 - Resultado de la simulación en𝑃 = 10.

Es claramente visible que la temperatura desciende antes de encender el calentador en𝑡 = 1, después de lo cual aumenta hasta alcanzar un valor constante, correspondiente al equilibrio termodinámico entre el calor suministrado por el calentador y el calor eliminado al exterior.

Literatura

1. A. Borisevich, Teoría del control automático: una introducción elemental

utilizando MATLAB, Ed. Universidad Estatal de Moscú, 2011

2. A. F. Dashchenko, V. Kh Kirillov, L. V. Kolomiets, V. F. Orobey

MATLAB EN INGENIERÍA Y COMPUTACIÓN CIENTÍFICA

Odesa “Astroprint” 2003

3. Tutorial de VP Dyakonov MATLAB 7.*/R2006/R2007

Moscú, DMK, 2008


INTRODUCCIÓN A SIMULINK

MATLAB (Matrix Laboratory) es un paquete programas de aplicación, diseñado para resolver problemas técnicos de informática.

Figura 1.1 – Logotipo de MATLAB mostrado usando el comando logo

como una lengua programaciónMATLAB Fue desarrollado a finales de la década de 1970 por Cleve Mowler en la Universidad de Nuevo México. MATLAB es un lenguaje de programación interpretado de alto nivel rasgo distintivo que está operando con vectores y matrices. Hoy en día hay más de un millón de usuarios.

Simulink es un sistema para el modelado de bloques de simulación de sistemas dinámicos, que es un subsistema de MATLAB. Las herramientas de modelado de Simulink se basan en el software MATLAB, pero le permiten prescindir del uso explícito del lenguaje MATLAB y crear modelos a partir de bloques de construcción en forma gráfica. Si es necesario, el usuario puede escribir bloques adicionales tanto en MATLAB como en otros lenguajes (C, VHDL, etc.). Una representación visual permite simplificar significativamente el proceso de creación de un modelo, encontrar errores y modificar el modelo por parte de otros usuarios, lo que en general permite lograr resultados mucho más rápido que cuando se utiliza el lenguaje MATLAB en su forma pura. Además, el usuario tiene la oportunidad de generar automáticamente código en lenguajes C, VHDL, Verilog utilizando el modelo creado, lo que permite transferir el modelo del sistema inmediatamente después de la depuración al chip (microcontroladores, FPGA). Se pueden encontrar muchas otras características de MATLAB y Simulink en el sitio web de TheMathWorks (http://www.mathworks.com/).

1.1 Iniciar Simulink

Lanzamiento GUI MATLAB, emita el comando simulink o inicie Simulink usando el botón en panel superior(Figura 1.2).

Figura 1.2 – Lanzamiento de Simulink desde MATLAB

Cuando inicia Simulink, se abre la ventana del navegador de bibliotecas de Simulink (el directorio de la biblioteca de Simulink). El panel izquierdo de la ventana contiene una lista de bibliotecas de Simulink (Fig. 1.3). El panel derecho contiene tres pestañas: Biblioteca, Resultados de búsqueda, Bloques más utilizados

(Bloques más utilizados).

La pestaña Biblioteca muestra los elementos de la biblioteca seleccionada en el panel izquierdo de la ventana. En el futuro, estos elementos podrán utilizarse para crear un nuevo modelo.

Para encontrar rápidamente el bloque deseado, debe utilizar un motor de búsqueda (Ingrese el término de búsqueda). Los resultados de la búsqueda se muestran en la segunda pestaña del panel derecho (Resultados de la búsqueda).

Mientras trabaja en Simulink, se forma un conjunto de los bloques más utilizados, que se mostrarán en la tercera pestaña del panel derecho (Bloques más utilizados).

Figura 1.3 – Directorio de la biblioteca Simulink

El menú principal de la ventana Catálogo de la biblioteca de Simulink contiene los siguientes elementos:

Archivo: trabajar con archivos de modelo de Simulink:

Nuevo (Nuevo): crear un nuevo archivo de modelo (Modelo) o biblioteca (Biblioteca);

Abrir: abre un archivo creado previamente;

Cerrar: cierra la ventana del catálogo de la biblioteca de Simulink. Preferencias: valores predeterminados; Configuración general Simulink (opciones de fuente, configuración de visualización de GUI, ajustes iniciales proyectos de nueva creación y otros).

Editar: agrega un bloque seleccionado al modelo ( Agregar bloque seleccionado a un nuevo modelo), busque un bloque en la biblioteca (Buscar).

Ver: configuración para mostrar elementos de la biblioteca (tamaño de fuente, tipo de iconos de elementos, etc.).

Ayuda: sistema de ayuda de MATLAB Simulink.

Cabe señalar que MATLAB tiene un muy buen sistema de documentación incorporado, que se mejora y complementa constantemente con nueva información. Conocimientos técnicos en Inglés y leer la documentación de MATLAB es La mejor manera Comprender la variedad de funciones y bloques.

Figura 1.4 – Descripción del elemento de biblioteca estándar de Simulink

En haga doble clic Al hacer clic izquierdo en el bloque de interés se abre una ventana de parámetros, que proporciona una breve descripción del bloque y enumera sus parámetros (Fig. 1.4). En esta etapa, los parámetros del bloque son de solo lectura. Después de mover el bloque al modelo, podrás cambiarlos. Si es necesario, puede utilizar el botón Ayuda para abrir una descripción detallada del bloque en el sistema de documentación.

1.2 Creación de modelos

Para crear un nuevo modelo, ejecute el comando del menú principal Archivo.

Nuevo modelo (Fig. 1.5) o presione Ctrl+N.

Figura 1.5 – Creando un nuevo modelo

El comando abrirá una nueva ventana sin título (Untitled) del modelo (Fig.

Figura 1.6 – Ventana vacía del nuevo modelo de Simulink

Antes de comenzar a crear un modelo, debe configurar los parámetros de modelado. Ejecute el comando del menú principal Simulación, Parámetros de configuración (Modelado, Parámetros de configuración) o

presione Ctrl+E.

Figura 1.7 – Parámetros de configuración

El proceso de configuración consiste en establecer los parámetros del proceso decisivo.

doula (solucionador):

Tiempo de simulación: establece el intervalo de tiempo de simulación en segundos. El margen izquierdo es cero por defecto, el derecho puede tomar cualquier valor, incluido infinito (inf). Si los valores inicial y final son iguales, solo se realizará un paso de simulación.

Opciones de Solver: parámetros del módulo que implementa uno de los métodos integracion numerica ecuaciones diferenciales ordinarias. Existen dos tipos (Type) de módulos de decisión: con un paso de modelado fijo (Fixed-step) y con un paso de modelado variable (Variable-step). Elegir la segunda opción permite que el sistema cambie de forma adaptativa el paso de tiempo de simulación durante la operación. En este caso, puede establecer los valores del paso mínimo y máximo.

división, así como el paso de modelado inicial en segundos (tamaño de paso máximo, tamaño de paso mínimo y tamaño de paso inicial). Si es necesario, puede configurar errores relativos y absolutos. método numérico soluciones diferenciales

ecuaciones especiales (tolerancia relativa y tolerancia absoluta). En la lista desplegable Solver puede especificar el tipo de solucionador para modelar. sistemas analógicos(oda...) o seleccione un solucionador para la simulación sistemas discretos (Discreto (sin estado continuo)).

Por primera vez, se recomienda dejar los parámetros de configuración predeterminados, cambiando solo el límite derecho del tiempo de simulación. Si es necesario, puede revisar los parámetros de configuración con más detalle en la Ayuda de MATLAB Simulink.

Figura 1.7 – Resultados de la búsqueda de la palabra “Scope”

Guarde la configuración del sistema y vaya a la ventana Biblioteca de Simulink. Escriba Alcance (osciloscopio) en la barra de búsqueda y presione Entrar. La pestaña Encontrado: "Alcance" muestra los resultados de la búsqueda agrupados por bibliotecas (Fig. 1.7). En la biblioteca base de Simulink, el bloque Scope se encuentra dos veces: en la sección Bloques comúnmente utilizados (los bloques más utilizados) y Sumideros (herramientas de análisis de señales). Por supuesto, esta es la misma unidad de osciloscopio. La lista de bloques encontrados también contiene

Hay un bloque Spectrum Scope de uso frecuente ubicado en la biblioteca. procesamiento digital señales (Procesamiento de Señales Digitales).

Puede agregar un bloque seleccionado al modelo de varias maneras: arrastrándolo a la hoja del modelo o seleccionando el elemento Agregar a sin título en el menú contextual haciendo clic derecho en el bloque. De manera similar, agregue un bloque Sine Wave desde la sección Fuentes.

La conexión de bloques entre sí se puede realizar de dos formas. método manual: Mueva el cursor del mouse sobre la salida de la fuente de señal y presione botón izquierdo mouse y dibuje una línea hacia la entrada del osciloscopio. Método automático: habiendo seleccionado el bloque fuente de señal con un solo clic del botón izquierdo del mouse, mantenga presionado el botón Ctrl y haga clic izquierdo en el segundo bloque, la conexión se realizará automáticamente.

Para configurar los parámetros del generador de señales sinusoidales, haga doble clic con el mouse para abrir la ventana de parámetros del bloque (Fig. 1.9.).

Figura 1.9 – Configuración de los parámetros del bloque Sine Wave

Establezca el parámetro basado en muestra de tipo sinusoidal en Representación discreta). El parámetro Tiempo de muestreo determina el período de muestreo de la señal, por ejemplo, configúrelo en un segundo; Así, con 10 muestras por periodo de una onda sinusoidal (Muestras por periodo) y con un periodo de muestreo de 1 segundo, el periodo de la oscilación armónica será de 10 segundos.

Inicie el proceso de simulación Simulación, Inicio (Ctrl+T) en un intervalo de tiempo de 0...10 segundos. Haga doble clic para abrir la ventana del osciloscopio (Fig. 1.10).

Figura 1.10 – Ejemplo de modelado de una fuente de señal sinusoidal discreta

Como se puede ver en la Figura 1.10, el oscilograma de la señal corresponde a los parámetros de oscilación armónica especificados en la configuración del bloque Sinusoidal. Si es necesario, puede ampliar el área con el fragmento de señal requerido usando los botones de control de la ventana Scope. El botón Autoscale le permite seleccionar automáticamente la escala a lo largo de dos ejes para mostrar toda la señal acumulada. Usando los botones Zoom X – eje y Zoom Y – eje, es posible cambiar la escala solo a lo largo de una de las coordenadas. En la configuración del bloque Alcance, puede configurar el número de entradas del osciloscopio (Número de ejes), parámetros para diezmar la señal de entrada (Diezmado, adelgazamiento de muestra), configuraciones para el volumen del búfer de almacenamiento de información ( Historial, limitar los puntos de datos para que duren) y otros.

1.3 Bibliotecas Simulink

La generación de señales en Simulink se realiza mediante generadores de señales Sources (Fig. 1.11).

Figura 1.11 – Biblioteca de fuentes de señales

La biblioteca incluye los siguientes bloques:

Ruido blanco de banda limitada: un generador de ruido blanco normal con una densidad espectral de potencia finita uniforme y tiempo dado correlaciones para sistemas analógicos;

Señal de chirrido: generador de oscilación sinusoidal con una frecuencia instantánea que aumenta linealmente;

Reloj – generador de señal analógica del tiempo de simulación actual (de acuerdo con el paso de simulación);

Constante – fuente de señal constante;

Counter Free-Running: acondicionador de señal basado en un contador de N bits y con reinicio por desbordamiento;

Counter Limited: acondicionador de señal basado en un contador con un valor de reinicio arbitrario;

Reloj digital – generador de una señal discreta del tiempo de simulación actual (de acuerdo con el paso de simulación);

INTRODUCCIÓN

Real pautas Servir de guía para los estudiantes del instituto que realizan trabajos de laboratorio y de curso sobre teoría. sistemas lineales Control automático y accionamiento eléctrico automatizado. El propósito del taller es consolidar material teórico sobre ecuaciones diferenciales, funciones de transferencia, características de tiempo y frecuencia de enlaces y sistemas automáticos, su estabilidad, la influencia de los parámetros y la estructura de los sistemas en los indicadores de calidad de los procesos de control en modos de operación transitorios y estacionarios, el estudio de sistemas con retardo.

Una característica especial de este taller es su implementación en computadoras personales utilizando el sistema MATLAB - Simulink, que permite automatizar el proceso de análisis de sistemas de control presentados en forma de diagramas dinámicos estructurales.

El taller implica la realización de seis trabajos de laboratorio para adquirir habilidades prácticas en el análisis de las propiedades básicas de sistemas de control lineal en los dominios del tiempo y la frecuencia.

TRABAJO DE LABORATORIO No. 1 ESTUDIO DEL SISTEMA DE SIMULACIÓN

MATLAB-SIMULINK

objetivo del trabajo

Familiarización con el sistema MATLAB, adquisición de habilidades prácticas en la investigación de sistemas de control automático (ACS) utilizando la aplicación MATLAB - sistema modelado de simulación Enlace simultáneo.

1.1. Información básica

MATLAB es un lenguaje de programación de nivel ultraalto diseñado para informática técnica. Implica cálculo, visualización y programación en un entorno fácil de usar donde los problemas y las soluciones se presentan en una forma matemática general. MATLAB es un sistema interactivo en el que los principales elementos de datos están representados por matrices que no requieren dimensionamiento previo. Esto le permite resolver muchos problemas técnicos, especialmente en matrices y forma vectorial, así como escribir un programa en lenguajes escalares tradicionales como C o Fortran.

El nombre "MATLAB" proviene de una abreviatura de las palabras "matrix Laboratory". El sistema MATLAB consta de cinco partes principales:

1. Lenguaje de programación MATLAB. Este Un lenguaje matricial de alto nivel con gestión de estados, funciones, estructuras de datos, entrada/salida y programación orientada a objetos.

2. Laboral entornoMATLAB. Esta es la interfaz gráfica con la que interactúa el usuario. Incluye escritorio MATLAB, ventana de comandos, editor y depurador. ArchivosMATLAB, navegador de referencia.

3. Sistema gráfico MATLAB. Contiene comandos de alto nivel para representación de datos bidimensionales y tridimensionales, procesamiento de imágenes y animación. También contiene un conjunto de comandos. nivel bajo, permitiendo al usuario construir su propia interfaz.

4. biblioteca de matemáticas funcionesMATLAB. Contiene un conjunto algoritmos computacionales, comenzando con primaria funciones aritméticas(suma/resta, funciones trigonométricas) hasta funciones complejas como inversión de matrices y transformadas de Fourier.

5. Interfaz de la aplicación programasMATLAB. Esta biblioteca le permite escribir programas en lenguajes C y Fortran que interactúan con MATLAB. Incluye dispositivos para llamar desde MATLAB (comunicación dinámica), llamar a MATLAB como motor informático y trabajar con Archivos MAT.

Simulink es un programa para modelado de simulación y análisis de sistemas dinámicos, parte del paquete MATLAB. Simulink permite construir un modelo en forma de bloques unificados en una pantalla de computadora y puede trabajar con modelos lineales, no lineales, continuos, discretos o combinaciones de ellos con una gran cantidad de variables.

1.2. Orden de trabajo

1. Enciende tu computadora.

2. Mientras esté en el sistema operativo Windows, inicie MATLAB haciendo doble clic con el botón izquierdo del mouse en el icono correspondiente en el escritorio. Esto abre la ventana principal de MATLAB.

3. Para iniciar Simulink, haga clic en el botón con un título emergente en la ventana principal de MATLAB Navegador de bibliotecas Simulink. Como resultado

Se abre la ventana Biblioteca de bloques de Simulink.

4. Para crear un nuevo modelo en la ventana del navegador de biblioteca de Simulink, haga clic en el botón con el título emergente Nuevo modelo. El programa se abrirá

ventana con una “hoja en blanco” sin nombre (sin título). Para abrir un modelo existente en la ventana de la biblioteca de bloques o en la ventana de comandos, haga clic en el botón con el título emergente Abrir un modelo y, en la ventana que aparece, seleccione

archivo requerido (los archivos creados en Simulink tienen una extensión .mdl).

5. Cree un diagrama de bloques como se muestra en la Fig. 1.1 y establecer los valores de sus parámetros especificados por el profesor.

Arroz. 1.1. Diagrama de bloques (a) y modelo Simulink (b) del sistema en estudio.

Equipo diagrama de bloques Esto se hace seleccionando los bloques requeridos en la ventana del navegador de la biblioteca de Simulink y arrastrándolos como

usando el mouse en la ventana donde se está construyendo el modelo. Para facilitar su uso, todos los bloques están divididos en grupos. En esto trabajo de laboratorio Se utilizaron bloques de grupo Simulink con subgrupos continuos.

(enlaces continuos), Operaciones Matemáticas (bloques matemáticos), Sumideros (receptores de datos), Fuentes (fuentes de señales). Se especifican los nombres de los bloques.

en la Fig. 1.1, b.

La edición de los parámetros del bloque se realiza haciendo doble clic con el botón izquierdo del mouse en el bloque requerido. Esto abre una ventana de parámetros de bloque, cuya apariencia depende del tipo de bloque.

Para conectar bloques, simplemente apunte el cursor del mouse a la salida del bloque fuente de señal y luego, con el botón del mouse presionado, dibuje la conexión a la entrada del bloque receptor de señal. También se pueden conectar bloques seleccionando los bloques requeridos con el botón izquierdo del mouse mientras presiona la tecla Ctrl. Para crear una curva, debe especificar el derecho

haga clic con el botón del mouse en la ubicación del grifo de conexión y, con el botón presionado, arrastre el grifo hasta la entrada del bloque requerido.

Para generar los resultados de la simulación, es necesario conectar bloques receptores de señal a las salidas de los bloques requeridos (ver párrafo 9).

La eliminación de bloques y conexiones innecesarios se produce seleccionando el objeto correspondiente y presionando la tecla Eliminar en el teclado.

Puede encontrar información adicional sobre la construcción de modelos, así como sobre el trabajo con MATLAB en general, en el menú de la Mesa de ayuda, así como en.

6. Guarde el modelo creado.

7. Establecer parámetros para el proceso de integración del modelo numérico. Para hacer esto, en el menú de la ventana del modelo, abra Parámetros de simulación. EN

En la ventana que aparece, se muestran las horas de inicio y finalización del cálculo, la precisión del cálculo y el método especificado por el profesor.

8. Calcule el modelo resultante. Iniciando el cálculo (integración) del modelo en el menú Simulación con el botón Iniciar. Proceso de cálculo del modelo.

mostrado mediante una escala progresiva en la parte inferior de la ventana. Si necesario

volver a la etapa anterior y cambiar el tiempo de finalización del cálculo para asegurar la estabilización de la variable de salida (fin del proceso de transición).

9. Al finalizar el cálculo, obtenga los resultados requeridos utilizando bloques de recepción de datos. La visualización e impresión de gráficos transitorios se realiza mediante el bloque Alcance. Ver numérico

Los valores de las variables durante el modelado se llevan a cabo mediante el bloque de visualización.

Para editar los gráficos recibidos o guardarlos en el formato archivo gráfico, se requiere la instalación de bloques de salida en Workspace.

Los parámetros de estos bloques indican el nombre de la variable de salida Nombre de la variable y el formato de los datos Formato de guardado (Array). A continuación, en la ventana de comandos de MATLAB o en el editor de archivos M, llamado mediante el comando de menú Nuevo archivo M, se escribe el comando para trazar. En el caso más simple, ella

tiene la forma: plot(x,y);

donde x,y son los nombres de las variables de salida.

Al trazar varios gráficos sobre los mismos ejes, el comando tomará la forma: plot(x,y,x,z,..);

donde x es el nombre de la variable común (independiente), y, z son variables dependientes.

Nota: Los comandos escritos en el símbolo del sistema se ejecutan después de presionar la tecla Intro. Para ejecutar comandos escritos en el editor M

La salida de varias variables a un bloque receptor de datos se realiza mediante un bloque para combinar señales en un busMux común.

La variable de tiempo en MATLAB se denomina tout. Después de guardar (el editor genera un archivo con la extensión .m) y ejecutar el programa (comando Ejecutar del menú Herramientas del editor), este último construye un gráfico en la ventana Figura.

que se puede procesar utilizando las herramientas disponibles en el menú de la ventana. El gráfico se guarda como un archivo con la extensión .fig (comando

Menú GuardarArchivo de la ventana del gráfico), en este caso estará disponible sólo desde MATLAB, o como un archivo gráfico con extensiones .bmp, .jpg y otras de su elección (comando Exportar del menú Archivo de la ventana del gráfico). En el último

En este caso, el gráfico se puede insertar en un documento de informe de laboratorio escrito, por ejemplo, en Word.

10. Para construir características de frecuencia logarítmica y de frecuencia de fase de amplitud (LFC y AFC) utilizando una función de transferencia polinómica, debe ingresar comandos en la ventana de comandos o en el archivo M, respectivamente.

denominador de la función de transferencia del sistema, escrito separado por un espacio. EN

Si hay dos o más coeficientes en un polinomio, estos últimos se escriben en corchetes a través de un espacio. Por ejemplo, para construir

LFC del enlace oscilatorio con la función de transferencia W (p) = 0,01 p 2 + 5 0,2 p + 1,

necesitas escribir el siguiente comando: bode(tf(5,));

Para construir características de frecuencia usando el modelo, en Simulink usando los bloques In y Out, debe especificar la entrada y la salida, respectivamente.

linealización del modelo en estudio y construcción de su LFC o AFC. Sintaxis

Linmod ("nombre de archivo del modelo")

cuadrícula de bode (A, B, C, D) o nyquist (A, B, C, D)

donde A, B, C, D son las matrices del espacio de estados del sistema obtenidas al ejecutar el comando linmod; grid es el comando para trazar una cuadrícula de coordenadas.

11. Cuando termine, salga de MATLAB cerrando todas las ventanas.

1.3. Contenido del informe de trabajo.

1. Objeto del trabajo.

2. Esquema del sistema estudiado con valores numéricos de parámetros.

3. Gráficos obtenidos experimentalmente del proceso transitorio, LFC, AFC.

4. Respuestas a preguntas de seguridad.

1.4. Preguntas de control

1. ¿Qué es el sistema MATLAB y cuál es su alcance?

2. ¿Con qué tipos de modelos puede trabajar Simulink?

3. ¿Cómo se construye un diagrama de bloques en Simulink?

4. ¿Cómo se ingresan y editan parámetros de bloque en Simulink?

5. ¿Cómo se construye el sistema LFC y AFC en MATLAB?

6. ¿Cómo se imprimen los gráficos transitorios?

TRABAJO DE LABORATORIO No. 2 ESTUDIO DE LAS PRINCIPALES CARACTERÍSTICAS DEL TÍPICO

ENLACES DINÁMICOS

Objeto del trabajo Estudio de la función de transición, amplitud-fase y

Características de frecuencia logarítmica de enlaces aperiódicos, diferenciadores reales y oscilatorios.

2.1. Información básica Los enlaces dinámicos típicos de ACS son enlaces, procesos en

que se describen mediante ecuaciones diferenciales lineales de primer y segundo orden con coeficientes constantes y en caso general tener la siguiente forma:

d 2 años

a0y= b2

re 2 x

B0x,

donde x (t),y (t) son las señales de entrada y salida del enlace, respectivamente;a 0,a 1,a 2;b 0,b ​​​​1,b 2 son coeficientes constantes.

Esta ecuación permite determinar la función de transferencia de un enlace típico en la forma

W(p)=

y(p)

segundo p2 + segundo p+ segundo

x(p)

un p2

un p +

El análisis de posibles opciones para especificar los coeficientes de la función de transferencia (2.2) muestra que para enlaces típicos de cero y primer orden,

aquellos. los enlaces descritos por ecuaciones de la forma (2.1) con a 2 = b 2 = 0 incluyen lo siguiente

1. Enlace libre de inercia (con a 1 = b 1 = 0)

W (p) = segundo 0 = k. a0

2. Vínculo diferenciador (con a 1 = b 0 = 0)

W(p)=

segundo 1 p =

kp,

donde k =

3. Forzar enlace (con un 1 =

W(p)=

b1p+

segundo 0 =

k (Tp + 1), donde k =

b 1.

4. Enlace integrador (en 0

B 1 = 0)

W(p)=

donde k =

segundo 0 .

Enlace aperiódico de primer orden (en b 1 = 0)

W(p)=

donde k =

un p +

Tp+1

Vínculo diferenciador real (en b 0 = 0)

W(p)=

donde k =

un p +

Tp+1

De típico

enlaces del segundo

encontró la mayor aplicación

enlace oscilatorio en b 1 = b 2 = 0 con una función de transferencia de la siguiente forma:

W(p)=

donde k =

; T=

; ξ =

una p + una

2ξ Tp +1

El conjunto considerado de enlaces dinámicos típicos de primer y segundo orden resulta suficiente para construir la estructura de casi cualquier sistema de control automático lineal. En este caso, los enlaces reales complejos pueden sustituirse por una conexión en serie o en paralelo de varios enlaces estándar.

Las características temporales son funciones de transición h(t) y peso ω(t) interconectadas, que representan las reacciones de los enlaces en estudio a impactos típicos en forma de una función de paso unitario 1(t) y una función δ δ(t). En este caso, la función de transición permite evaluar la estabilidad y calidad de los procesos de control que ocurren en los enlaces en estudio bajo influencias de entrada abruptas.

Las características de frecuencia basadas en el uso de la transformada de Fourier permiten evaluar los procesos de control que ocurren en los enlaces no solo con señales de entrada paso a paso, sino también con cualquier otra señal de entrada que opere en condiciones reales.

En este caso, cualquier señal de entrada x (t) se representa como una suma de armónicos de varias frecuencias con ciertos correspondientes. esta señal amplitudes y fases, y la respuesta a la suma de armónicos de entrada, es decir la señal de salida (t) es igual a la suma de las reacciones de cada uno de ellos.

Para un armónico separado en la entrada de un enlace lineal x (t) = x 0 (ω) × e j ω t

la reacción será una combinación de componentes forzados y de transición, el último de los cuales se desvanece después de un tiempo, y en la salida del enlace se establecerá una señal sinusoidal de la misma frecuencia que en la entrada, es decir

y (t) = y 0 (ω) × e j (ωt + ϕ(ω)).

La respuesta de un enlace a armónicos de varias frecuencias se caracteriza por su complejo coeficiente de transmisión, que es la respuesta de frecuencia amplitud-fase (APC) del enlace, determinada de la siguiente manera.

Última actualización: 31/10/2015

Concatenación

La concatenación o unión de cadenas se puede realizar utilizando el operador + o el método Concat:

Cadena s1 = "hola"; cadena s2 = "mundo"; cadena s3 = s1 + " " + s2; // resultado: cadena "hola mundo" cadena s4 = String.Concat(s3, "!!!"); // resultado: la cadena "¡¡¡hola mundo!!!" Consola.WriteLine(s4);

El método Concat es un método estático. clase cadena, que toma dos cadenas como parámetros. También existen otras versiones del método que toman una cantidad diferente de parámetros.

El método Join también se puede utilizar para unir cadenas:

Cadena s5 = "manzana"; cadena s6 = "un día"; cadena s7 = "mantiene"; cadena s8 = "un médico"; cadena s9 = "ausente"; valores de cadena = nueva cadena (s5, s6, s7, s8, s9); Cadena s10 = String.Join(" ", valores); // resultado: la cadena "una manzana al día mantiene alejado al médico"

El método Join también es estático. La versión del método utilizado anteriormente toma dos parámetros: una cadena separadora (en en este caso espacio) y una matriz de cadenas que se concatenarán y separarán por un delimitador.

Comparación de cadenas

Para comparar cadenas, utilice el método de comparación estático:

Cadena s1 = "hola"; cadena s2 = "mundo"; resultado int = String.Compare(s1, s2); si (resultado<0) { Console.WriteLine("Строка s1 перед строкой s2"); } else if (result >0) ( Console.WriteLine("La línea s1 viene después de la línea s2"); ) else ( Console.WriteLine("Las líneas s1 y s2 son idénticas"); ) // el resultado será "Línea s1 antes de la línea s2"

Esta versión del método Comparar toma dos cadenas y devuelve un número. Si la primera cadena es alfabéticamente mayor que la segunda, se devuelve un número menor que cero. De lo contrario, se devuelve un número mayor que cero. Y el tercer caso: si las cadenas son iguales, se devuelve el número 0.

En este caso, dado que el carácter h es alfabéticamente mayor que el carácter w, la primera línea será mayor.

Buscar en una cadena

Usando el método IndexOf, podemos determinar el índice de la primera aparición de un solo carácter o subcadena en una cadena:

Cadena s1 = "hola mundo"; char ch = "o"; int indexOfChar = s1.IndexOf(ch); // igual a 4 Console.WriteLine(indexOfChar); cadena subString = "trabajo"; int indexOfSubstring = s1.IndexOf(subString); // igual a 6 Console.WriteLine(indexOfSubstring);

El método LastIndexOf funciona de manera similar, excepto que busca el índice de la última aparición de un carácter o subcadena en una cadena.

Otro grupo de métodos le permite saber si una cadena comienza o termina con una subcadena específica. Los métodos StartsWith y EndsWith están diseñados para esto. Por ejemplo, tenemos la tarea de eliminar todos los archivos con la extensión .exe de una carpeta:

Ruta de cadena = @"C:\SomeDir"; archivos de cadena = Directory.GetFiles(ruta); para (int i = 0; i< files.Length; i++) { if(files[i].EndsWith(".exe")) File.Delete(files[i]); }

División de cuerdas

Usando la función Dividir podemos dividir una cadena en una matriz de subcadenas. La función Dividir toma una matriz de caracteres o cadenas como parámetro, que servirán como delimitadores. Por ejemplo, contamos el número de palabras de un término dividiéndolo por espacios en blanco:

String text = "Y por eso sucedió todo"; palabras de cadena = text.Split(new char ( " " )); foreach (cadena s en palabras) ( Console.WriteLine(s); )

Esta no es la mejor manera de dividir por espacios, ya que podríamos tener varios espacios consecutivos en la cadena de entrada y el array resultante también contendría espacios, por lo que es mejor usar otra versión del método:

Palabras de cadena = text.Split(new char ( " " ), StringSplitOptions.RemoveEmptyEntries);

El segundo parámetro StringSplitOptions.RemoveEmptyEntries dice que se deben eliminar todas las subcadenas vacías.

Recortando una línea

Para recortar caracteres iniciales o finales, utilice la función Recortar:

Texto de cadena = "hola mundo"; texto = texto.Recortar(); // resultado "hola mundo" texto = text.Trim(new char ("d", "h" )); // resultado "hola mundo"

La función Recortar, sin parámetros, recorta los espacios iniciales y finales y devuelve la cadena recortada. Para especificar explícitamente qué caracteres iniciales y finales deben recortarse, podemos pasar una matriz de esos caracteres a la función.

Esta función tiene análogos parciales: la función TrimStart recorta los caracteres iniciales y la función TrimEnd recorta los caracteres finales.

La función Subcadena le permite recortar una parte específica de una cadena:

Texto de cadena = "Buenos días"; // corta a partir del tercer carácter text = text.Substring(2); // resultado "buen día" Console.WriteLine(texto); // corta primero a los dos últimos caracteres text = text.Substring(0, text.Length - 2); // resultado "roshy de" Console.WriteLine(texto);

La función Substring también devuelve la cadena truncada. La primera versión utilizada utiliza el índice como parámetro, a partir del cual se debe recortar la cadena. La segunda versión utiliza dos parámetros: el índice de inicio del recorte y la longitud de la parte cortada de la cuerda.

Insertar

Para insertar una fila en otra, use la función Insertar:

Texto de cadena = "Buenos días"; cadena subString = "maravilloso"; texto = texto.Insert(8, subcadena); Consola.WriteLine(texto);

El primer parámetro en Insertar funciones es el índice en el que se debe insertar la subcadena y el segundo parámetro es la subcadena misma.

Eliminando filas

El método Remove ayuda a eliminar parte de una cadena:

Texto de cadena = "Buenos días"; // índice del último carácter int ind = text.Length - 1; // recorta el último carácter text = text.Remove(ind); Consola.WriteLine(texto); // recorta los dos primeros caracteres text = text.Remove(0, 2);

La primera versión del método Remove toma un índice en la cadena, a partir del cual se deben eliminar todos los caracteres. La segunda versión toma un parámetro más: cuántos caracteres se deben eliminar.

Reemplazo

Para reemplazar un carácter o subcadena por otro, use el método Reemplazar:

Texto de cadena = "buen día"; texto = texto.Replace("bueno", "malo"); Consola.WriteLine(texto); texto = texto.Reemplazar("o", ""); Consola.WriteLine(texto);

En el segundo caso de utilizar la función Reemplazar, una cadena de un carácter "o" se reemplaza por una cadena vacía, es decir, en realidad se elimina del texto. De esta manera es fácil eliminar algunos texto específico en lineas.

Cambiar caso

Para lanzar una cuerda a la cima y minúscula Las funciones ToUpper() y ToLower() se utilizan respectivamente:

String hola = "¡Hola mundo!"; Console.WriteLine(hola.ToLower()); // ¡Hola Mundo! Console.WriteLine(hola.ToUpper()); // ¡HOLA MUNDO!

Las siguientes operaciones están definidas en cadenas:

asignación(=);

Dos operaciones de verificación de equivalencia (= =) y (!=);

Concatenación o concatenación de cadenas (+);

Tomando índice().

Empecemos por la tarea, que tiene una característica importante. Porque el cadena es un tipo de referencia, la asignación crea una referencia a una cadena constante almacenada en el montón. Con el mismo constante de cadena Se pueden asociar varias variables en el montón. tipo de cadena. Pero estas variables no son alias: nombres diferentes para el mismo objeto. El hecho es que las constantes de cadena en el montón no cambian (hablaremos sobre la inmutabilidad del tipo de cadena en detalle más adelante), por lo tanto, cuando una de las variables recibe un nuevo valor, se asocia con un nuevo objeto constante en el montón. montón. Las variables restantes mantienen sus relaciones. Lo que esto significa para un programador es que la semántica de una asignación de cadena es similar a la semántica de una asignación significativa.

A diferencia de otros tipos de referencias, las operaciones de equivalencia comparan valores de cadenas en lugar de referencias. Estas operaciones se realizan como en tipos de valor.

El operador binario "+" concatena dos cadenas, añadiendo la segunda cadena al final de la primera.

La capacidad de tomar un índice cuando se trabaja con cadenas refleja el hecho agradable de que una cadena puede tratarse como una matriz y recuperar fácilmente cada uno de sus caracteres. Cada carácter en una cadena tiene un tipo. carbonizarse, sólo lectura, no escritura.

A continuación se muestra un ejemplo en el que estas operaciones se realizan en cadenas:

públicovacíoOperadores de prueba() {
//operaciones sobre cadenas
cadena s1= "ABC", t2= "CDE";
cadena s3= s1+ s2;
booleano b1= (t1== s2);
personaje ch1= T1, canal 2= s2;
+
s2= s1;
b1= (t1!= s2);
cap2= s2;
Console.WriteLine("s1=(0), s2=(1), b1=(2),"+ "canal1=(3), canal2=(4)", s1, s2, b1, canal1, canal2);
//Valores inmutables
s1 = " Zenón";
// s1=" l";
}

Métodos de clase estáticaCadena

Resumen métodos estáticos clase Cadena se da en la Tabla 6.

Tabla 6. Métodos estáticos de la clase String

Método

Descripción

Devoluciones linea vacia. Propiedad con estado de solo lectura

Comparando dos cuerdas. El método está sobrecargado. Las implementaciones del método le permiten comparar cadenas y subcadenas. En este caso, se pueden tener en cuenta o no las mayúsculas y minúsculas, las características del formato nacional de fechas, números, etc.

Comparando dos cuerdas. El método está sobrecargado. Las implementaciones del método le permiten comparar cadenas y subcadenas. Se comparan los códigos de caracteres.

Concatenación de cadenas. El método está sobrecargado y permite la concatenación de un número arbitrario de cadenas.

Se crea una copia de la cadena.

Realiza el formateo de acuerdo con las especificaciones de formato especificadas. A continuación hay más Descripción completa método

Pasante, Interno

Se encuentra una referencia a una fila y se devuelve si ya hay una almacenada en el grupo de datos interno. Si no hay línea, entonces el primero de los métodos agrega la línea al grupo interno, el segundo devuelve nulo. Los métodos se utilizan normalmente cuando se crea una cadena utilizando un generador de cadenas: la clase StringBuilder.

Concatenar una serie de cadenas en una sola cadena. Al concatenar, se insertan delimitadores entre los elementos de la matriz. La operación especificada por el método Join es la inversa de la operación especificada por el método Split. Este último es un método dinámico y, utilizando delimitadores, divide la cadena en elementos.

MétodosUnirseYDividir

Métodos Unirse Y Dividir realizar en una línea de texto mutuamente transformaciones inversas. método dinámico Dividir le permite analizar el texto en elementos. método estático Unirse realiza la operación inversa, ensamblando una cadena de elementos.

El texto especificado por una cadena suele ser una colección de elementos estructurados: párrafos, oraciones, palabras, expresiones entre paréntesis, etc. Cuando se trabaja con dicho texto, es necesario dividirlo en elementos utilizando separadores de elementos especiales: pueden ser espacios, corchetes o signos de puntuación. Prácticamente tareas similares surgen constantemente cuando se trabaja con textos estructurados. Los métodos Dividir y Unir facilitan la resolución de estos problemas.

método dinámico Dividir, como siempre, sobrecargado. La implementación más utilizada tiene la siguiente sintaxis:

cadena pública [] Dividir(parámetros char[])

A la entrada del método Dividir Se transmiten uno o más caracteres, interpretados como delimitadores. Un objeto cadena, el método de llamada se divide en subcadenas delimitadas por estos delimitadores. Se crea una matriz a partir de estas subcadenas y se devuelve como resultado del método. Otra implementación le permite limitar la cantidad de elementos de la matriz devuelta.

Sintaxis del método estático Unirse es:

unión de cadena estática pública (delimitadores de cadena, cadena [] elementos)

Como resultado, el método devuelve una cadena obtenida al concatenar elementos de la matriz. elementos, entre los cuales se inserta una línea de delimitadores delimitadores. Normalmente la línea delimitadores consta de un carácter, que separa los elementos de la matriz en la cadena resultante elementos; pero en algunos casos el delimitador puede ser una cadena de varios caracteres.

Veamos ejemplos del uso de estos métodos. En el primero de ellos, la línea representa una oración compleja, que se divide en oraciones simples. En el segundo, la frase se divide en palabras. Luego se vuelve a ensamblar el texto analizado. Aquí está el código para el procedimiento correspondiente:

públicovacíoPruebaSplitAndJoin() {
cadenaTXT= "Y este es trigo, que está guardado en un armario oscuro" +
", en la casa que construyó Jack!";
Consola. Línea de escritura(" TXT={0}", TXT);
Consola. Línea de escritura("Dividir texto en oraciones simples:");
cadena[] Oraciones simples, palabras;
// dimensiónmatricesOraciones simplesYPalabras
//se establece automáticamente según
//dimensión del array devuelto por el método
Dividir oraciones simples= txt.Dividir(",");
para (int i= 0; i< Frases simples.Longitud; yo ++)
Console.WriteLine("Sentencias simples[(0)]={1}", i, Frases Simples[i]);
unión de texto de cadena= string.Join(",", SimpleSentences);
Palabras= txt.Dividir(","," ");
para (int i= 0; i< Palabras.Longitud; yo ++)
Console.WriteLine("Palabras[(0)]={1}", yo, Palabras[i]);
unirse a txt= cadena.Unir("", Palabras);
Console.WriteLine("txtjoin=(0)", txtjoin);
} // PruebaSplitAndJoin

Los resultados de este procedimiento se muestran en la Fig. treinta.

Figura 30. Analizar y ensamblar una línea de texto

Tenga en cuenta que los métodos Dividir Y Unirse funciona bien cuando el análisis utiliza solo un delimitador. En este caso, el reensamblaje es realmente la operación inversa y permite restaurar la cadena original. Si durante el análisis se especifica un determinado conjunto de separadores, surgen dos problemas:

1. Es imposible restaurar una línea en en la misma forma, ya que no se almacena información sobre qué delimitador se utilizó al analizar la cadena. Por lo tanto, durante el ensamblaje, se inserta entre los elementos un único separador, posiblemente compuesto por varios caracteres;

2. Al analizar dos delimitadores consecutivos, se supone que hay una palabra vacía entre ellos. Tenga en cuenta que en el texto de nuestro ejemplo, como era de esperar, hay un espacio después de la coma. Al analizar el texto en palabras, se utilizan espacios y comas como delimitadores. Por esta razón, la matriz de palabras obtenida como resultado del análisis contiene palabras vacías.

Si, al dividir una oración en palabras, usa solo un espacio como separador, las palabras vacías no aparecerán, pero la coma será parte de algunas palabras.

Como siempre, hay varias formas de abordar el problema. Una es escribir su propia implementación de estas funciones, otra es ajustar los resultados obtenidos y la tercera es utilizar un motor de expresiones regulares más potente.

Métodos de clase dinámicaCadena

Las operaciones permitidas sobre cadenas en C# son variadas. Los métodos de esta clase le permiten insertar, eliminar, reemplazar y buscar la aparición de una subcadena en una cadena. Clase Cadena hereda métodos de clase Objeto, redefinirlos parcialmente. Clase Cadena hereda y por lo tanto implementa los métodos de cuatro interfaces: Comparable, IClonable, IConvertible, Enumerable. Ya se han considerado tres de ellos al describir las clases de matrices.

Veamos los métodos más comunes al trabajar con cadenas.

El resumen de métodos proporcionado en la Tabla 7 ofrece una imagen bastante completa de la amplia gama de posibilidades disponibles cuando se trabaja con cadenas en C#. Cabe recordar que la clase cadena es inmutable. Es por eso Reemplazar, Insertar y otros métodos son funciones que devuelven nueva línea como resultado y no cambie la línea que llamó al método.

Tabla 7. Métodos de clase dinámicaCadena

Método

Descripción

Inserta una subcadena en una posición determinada.

Elimina una subcadena en una posición determinada

Reemplaza una subcadena en una posición determinada con una nueva subcadena

Selecciona una subcadena en una posición determinada

Índice de, Índice de cualquiera, Último índice de, Último índice de cualquiera

Se determinan los índices de la primera y última aparición de una subcadena determinada o de cualquier carácter de un conjunto determinado.

Comienza con, termina con

Devuelve verdadero o falso, dependiendo de si la cadena comienza o termina con la subcadena dada

PadIzquierda, PadDerecha

Rellena el número requerido de espacios al principio y al final de una línea

Recortar, RecortarInicio, RecortarFin

Operaciones inversas a métodos Pad. Los espacios se eliminan al principio y al final de una línea, o solo desde un extremo de la misma.

Convertir una cadena en una matriz de caracteres




Arriba