Modelisation et Commande des Systemes Lineaires Continus - S5

Annee: 2022-2023 (Semestre 5)
Credits: 3 ECTS
Type: Automatique et Systemes
Enseignant: Subias


PART A: PRESENTATION GENERALE

Objectifs du cours

Ce cours approfondit la commande des systemes lineaires continus avec une approche complementaire au cours de representation d'etat. Il se concentre sur les techniques de commande classiques (PID, correcteurs frequentiels) et leur application pratique sur des systemes reels. Le cours couvre la modelisation de systemes physiques, l'analyse de stabilite et de performances, ainsi que la conception de lois de commande adaptees.

Competences visees

  • Modeliser des systemes physiques continus (mecaniques, electriques, thermiques)
  • Concevoir et regler des correcteurs PID pour des applications industrielles
  • Analyser la stabilite par methodes frequentielles (Bode, Nyquist)
  • Dimensionner des compensateurs (avance, retard de phase)
  • Utiliser MATLAB/Simulink pour la simulation et l'analyse
  • Evaluer les performances temporelles et frequentielles
  • Implementer des lois de commande sur systemes reels

Organisation

  • Volume horaire: Cours magistraux, TD et TP MATLAB/Simulink
  • Evaluation: Examen ecrit, TPs notes, Projet robot
  • Semestre: 5 (2022-2023)
  • Prerequis: Transformee de Laplace, systemes du 1er et 2nd ordre, algebre

PART B: EXPERIENCE, CONTEXTE ET FONCTION

Contenu pedagogique

Le cours se structure autour de la modelisation, l'analyse et la commande de systemes continus.

1. Modelisation de Systemes Physiques

Systemes mecaniques:

Systeme masse-ressort-amortisseur:

  • m : masse
  • k : raideur du ressort
  • f : coefficient d'amortissement

Equation: m x d²x/dt² + f x dx/dt + k x x = F(t)

Fonction de transfert: H(s) = 1 / (m x s² + f x s + k)

Systemes electriques (circuit RLC):

Equation: L x d²i/dt² + R x di/dt + i/C = dV/dt

Similitude avec systeme mecanique (L ↔ m, R ↔ f, 1/C ↔ k).

Moteur a courant continu:

Modele simplifie du TP:

  • Constante de temps: Tm = 0.3s
  • Gain: Km = 47.8
  • Fonction de transfert: H(s) = Km / (Tm x s + 1)

2. Analyse Temporelle

Reponse indicielle d'un systeme du 2nd ordre:

Parametres caracteristiques:

  • Temps de montee (rise time)
  • Depassement (overshoot): D = exp(-pi x zeta / sqrt(1-zeta²))
  • Temps de reponse a 5% (settling time)
  • Erreur statique

Pour un systeme bien amorti: zeta = 0.7 donne D ≈ 5%.

Classe d'un systeme:

Determine l'erreur statique selon le type d'entree:

  • Classe 0: erreur pour echelon
  • Classe 1: erreur pour rampe
  • Classe 2: erreur pour parabole

3. Analyse Frequentielle

Diagrammes de Bode (TP1):

Representation du gain et de la phase en fonction de la frequence.

Systeme identifie experimentalement: H(s) = 0.717 / (0.0033 x s + 1)

Mesures realisees:

  • Frequences: 0.05 Hz a 10 Hz
  • Gain: de -3.5 dB a -24 dB
  • Phase: de -2.2 deg a -90 deg

Marges de stabilite (TP2):

Marge de gain (Gm): gain supplementaire avant instabilite.

Marge de phase (Pm): phase supplementaire avant instabilite.

Criteres de robustesse:

  • Pm > 45 deg : bon amortissement
  • Gm > 6 dB : bonne marge

Commande MATLAB:

[Gm, Pm, Wcg, Wcp] = margin(sys);

Resultats typiques du TP: Pm ≈ 60 deg (systeme robuste).

Diagramme de Nyquist:

Trace de H(jω) dans le plan complexe.

Critere de Nyquist: nombre d'encerclements du point critique (-1, 0) determine la stabilite.

4. Commande PID

Structure du PID:

Correcteur Proportionnel-Integral-Derive:

u(t) = Kp x e(t) + Ki x ∫e(t)dt + Kd x de(t)/dt

En transfert: C(s) = Kp + Ki/s + Kd x s

Actions du PID:

ActionEffetUtilisation
P (Proportionnel)Reduit l'erreur, augmente rapiditeToujours present
I (Integral)Annule erreur statiqueErreur permanente
D (Derive)Reduit depassement, ameliore stabiliteSystemes oscillants

Reglage par Ziegler-Nichols:

Methode empirique pour determiner Kp, Ki, Kd:

  1. Mettre Ki = 0, Kd = 0
  2. Augmenter Kp jusqu'a oscillations (Kp critique)
  3. Mesurer periode d'oscillation Tu
  4. Appliquer les formules de reglage

Pour PID: Kp = 0.6 x Kpcritique, Ti = 0.5 x Tu, Td = 0.125 x Tu.

Limitation anti-windup:

Probleme: l'integrale continue a s'accumuler meme si la commande sature.

Solution: limiter l'integrateur quand la sortie sature.

5. Correcteurs Frequentiels

Correcteur a avance de phase:

Forme: C(s) = K x (1 + a x T x s) / (1 + T x s) avec a > 1

Effet: augmente la marge de phase, ameliore rapidite.

Utilise quand: systeme trop lent ou marge de phase insuffisante.

Correcteur a retard de phase:

Forme: C(s) = K x (1 + T x s) / (1 + a x T x s) avec a > 1

Effet: augmente la marge de gain, reduit erreur statique.

Utilise quand: erreur statique trop importante.

Correcteur avance-retard:

Combinaison des deux pour ameliorer simultanement rapidite et precision.

6. Projet Robot Auto-Equilibre

Systeme du pendule inverse:

Modelisation du robot NXT Way (Lego Mindstorms):

Parametres physiques:

  • Masse roues: m = 0.03 kg
  • Rayon roues: R = 0.042 m
  • Masse corps: M = 0.67 kg
  • Hauteur: H = 0.152 m
  • Gravite: g = 9.81 m/s²

Objectif: maintenir le robot en equilibre vertical (angle θ = 0 deg).

Strategie de commande:

Systeme instable en boucle ouverte → necessite commande active.

Approches possibles:

  • Retour d'etat (placement de poles)
  • Correcteur PID sur l'angle
  • Observateur pour estimer vitesse angulaire

Simulation Simulink:

Fichiers du projet:

  • NXTwaySim.slx: modele complet du robot
  • NXP_robot_parameters.m: parametres physiques
  • PlayAnimation.m: visualisation 3D

Tests effectues:

  • Stabilisation apres perturbation
  • Robustesse aux variations de parametres
  • Rejection de perturbations externes

PART C: ASPECTS TECHNIQUES

Travaux Pratiques MATLAB

TP1: Identification experimentale:

Objectif: determiner la fonction de transfert d'un systeme reel a partir de mesures frequentielles.

Donnees mesurees (gains et phases a differentes frequences):

freq = [0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 7.5, 10];
G = [0.669, 0.659, 0.609, 0.528, 0.396, 0.242, 0.119, 0.083, 0.061];

Trace du diagramme de Bode:

G_dB = 20*log10(G);
semilogx(freq, G_dB);
xlabel('Frequence (Hz)');
ylabel('Gain (dB)');

Modele identifie: systeme du 1er ordre avec gain 0.717 et constante de temps 3.3 ms.

TP2: Analyse de stabilite:

Systeme en boucle fermee avec capteur et moteur:

Ks = 1.55;   % Gain capteur
Km = 47.8;   % Gain moteur
Tm = 0.3;    % Constante de temps

num = [Km*K/9];
den = [Tm, 1, Km*K*Ks/9];
sys = tf(num, den);

[Gm, Pm, Wcg, Wcp] = margin(sys);

Analyse des poles:

P = pole(sys);

Si partie reelle negative → systeme stable.

TP3: Commande par retour d'etat:

Systeme d'ordre 2:

A = [0 1; -10 -6.316];
B = [0; 1];
C = [k/0.1001 0];

% Placement de poles
poles_desired = [-2+2i, -2-2i];
K = place(A, B, poles_desired);

% Simulation
sys_cl = ss(A-B*K, B, C, 0);
step(sys_cl);

Choix des poles selon performances souhaitees:

  • Partie reelle: rapidite
  • Partie imaginaire: oscillations

Outils MATLAB Essentiels

Creation de modeles:

sys = tf(num, den);        % Fonction de transfert
sys = ss(A, B, C, D);      % Representation d'etat

Analyse:

pole(sys);                 % Poles
zero(sys);                 % Zeros
step(sys);                 % Reponse indicielle
bode(sys);                 % Diagramme de Bode
nyquist(sys);              % Diagramme de Nyquist
margin(sys);               % Marges de stabilite

Conception:

K = place(A, B, poles);    % Placement de poles
pidtune(sys, 'PID');       % Reglage PID automatique

Methodologie de Conception

Etapes de conception d'un asservissement:

  1. Modelisation: obtenir H(s) du systeme
  2. Analyse BO: stabilite, performances en boucle ouverte
  3. Specifications: definir depassement, temps de reponse, erreur admissible
  4. Choix correcteur: PID, avance/retard selon besoins
  5. Reglage: calcul des parametres (Kp, Ki, Kd)
  6. Simulation: validation avec Simulink
  7. Tests: robustesse, perturbations, variations parametres

Compromis a gerer:

  • Rapidite vs stabilite
  • Precision vs robustesse
  • Complexite vs performances

PART D: ANALYSE ET REFLEXION

Competences acquises

Modelisation:

  • Passage du systeme physique au modele mathematique
  • Identification experimentale de parametres
  • Validation par comparaison mesures/simulation

Analyse:

  • Stabilite par Routh, Bode, Nyquist
  • Performances temporelles et frequentielles
  • Evaluation de robustesse (marges)

Commande:

  • Conception de correcteurs PID
  • Reglage par methodes empiriques et theoriques
  • Placement de poles pour specifications donnees

Outils:

  • Maitrise de MATLAB/Simulink
  • Interpretation de diagrammes (Bode, Nyquist)
  • Simulation et validation

Applications pratiques

Les techniques de ce cours s'appliquent a de nombreux domaines:

Industrie:

  • Regulation de temperature, pression, debit
  • Controle de vitesse de moteurs
  • Positionnement de systemes mecaniques

Robotique:

  • Stabilisation (pendule inverse, robot equilibre)
  • Suivi de trajectoire
  • Controle de force

Aeronautique:

  • Pilote automatique
  • Stabilisation d'attitude
  • Controle de vol

Automobile:

  • Regulateur de vitesse (cruise control)
  • Suspension active
  • Controle de moteur

Liens avec autres cours

CoursLien
Circuits et Filtres Analogiques (S5)Analyse frequentielle, Bode
Modelisation Systemes Lineaires (S5)Representation d'etat
Systemes Boucles (S5)Asservissements
Commande Numerique (S8)Discretisation, PID numerique
Temps Reel (S8)Implementation des lois de commande

Mon opinion

Ce cours est complementaire au cours de representation d'etat en apportant les outils classiques de l'automatique industrielle.

Points forts:

  • Approche tres pratique (PID, reglages empiriques)
  • Outils directement utilisables en industrie
  • TPs concrets avec identification et commande
  • Projet robot motivant et formateur

Complementarite:

Le PID reste le correcteur le plus utilise industriellement (>90% des boucles de regulation). La representation d'etat apporte la theorie moderne, le PID apporte la pratique immediate.

Importance professionnelle:

Competences tres recherchees dans l'automatisation industrielle, la robotique et les systemes embarques. Le reglage de PID est une competence de base pour tout ingenieur en automatique.


Bilan personnel: Ce cours a apporte les techniques classiques et eprouvees de l'automatique. La complementarite avec l'approche moderne (etat) offre une boite a outils complete. Les TPs MATLAB et le projet robot ont permis d'appliquer concretement ces concepts sur des systemes reels, preparant bien aux applications industrielles.


Rapports et Projets

Compte Rendu TP1 - Identification et Analyse Frequentielle

Rapport de TP sur l'identification experimentale de systemes, trace de diagrammes de Bode et analyse de stabilite avec MATLAB.

Telecharger le rapport PDF

Compte Rendu TP3 - Commande par Retour d'Etat

Rapport de TP sur la commande de systemes lineaires continus : placement de poles, simulation Simulink et validation experimentale.

Telecharger le rapport PDF

Modeling and Control of Continuous Linear Systems - S5

Year: 2022-2023 (Semester 5)
Credits: 3 ECTS
Type: Control Systems and Automation
Instructor: Subias


PART A: GENERAL OVERVIEW

Course Objectives

This course deepens the study of continuous linear system control with an approach complementary to the state-space representation course. It focuses on classical control techniques (PID, frequency-domain controllers) and their practical application to real systems. The course covers physical system modeling, stability and performance analysis, as well as the design of suitable control laws.

Target Skills

  • Model continuous physical systems (mechanical, electrical, thermal)
  • Design and tune PID controllers for industrial applications
  • Analyze stability using frequency-domain methods (Bode, Nyquist)
  • Size compensators (lead, lag phase)
  • Use MATLAB/Simulink for simulation and analysis
  • Evaluate time-domain and frequency-domain performance
  • Implement control laws on real systems

Organization

  • Hours: Lectures, tutorials and MATLAB/Simulink lab sessions
  • Assessment: Written exam, graded lab sessions, Robot project
  • Semester: 5 (2022-2023)
  • Prerequisites: Laplace transform, 1st and 2nd order systems, algebra

PART B: EXPERIENCE, CONTEXT AND FUNCTION

Pedagogical Content

The course is structured around modeling, analysis and control of continuous systems.

1. Physical System Modeling

Mechanical systems:

Mass-spring-damper system:

  • m: mass
  • k: spring stiffness
  • f: damping coefficient

Equation: m x d²x/dt² + f x dx/dt + k x x = F(t)

Transfer function: H(s) = 1 / (m x s² + f x s + k)

Electrical systems (RLC circuit):

Equation: L x d²i/dt² + R x di/dt + i/C = dV/dt

Analogy with mechanical system (L ↔ m, R ↔ f, 1/C ↔ k).

DC motor:

Simplified lab model:

  • Time constant: Tm = 0.3s
  • Gain: Km = 47.8
  • Transfer function: H(s) = Km / (Tm x s + 1)

2. Time-Domain Analysis

Step response of a 2nd order system:

Characteristic parameters:

  • Rise time
  • Overshoot: D = exp(-pi x zeta / sqrt(1-zeta²))
  • 5% settling time
  • Steady-state error

For a well-damped system: zeta = 0.7 gives D ≈ 5%.

System type:

Determines the steady-state error depending on input type:

  • Type 0: error for step input
  • Type 1: error for ramp input
  • Type 2: error for parabolic input

3. Frequency-Domain Analysis

Bode diagrams (Lab 1):

Representation of gain and phase as a function of frequency.

Experimentally identified system: H(s) = 0.717 / (0.0033 x s + 1)

Measurements taken:

  • Frequencies: 0.05 Hz to 10 Hz
  • Gain: from -3.5 dB to -24 dB
  • Phase: from -2.2 deg to -90 deg

Stability margins (Lab 2):

Gain margin (Gm): additional gain before instability.

Phase margin (Pm): additional phase before instability.

Robustness criteria:

  • Pm > 45 deg: good damping
  • Gm > 6 dB: good margin

MATLAB command:

[Gm, Pm, Wcg, Wcp] = margin(sys);

Typical lab results: Pm ≈ 60 deg (robust system).

Nyquist diagram:

Plot of H(jω) in the complex plane.

Nyquist criterion: the number of encirclements of the critical point (-1, 0) determines stability.

4. PID Control

PID structure:

Proportional-Integral-Derivative controller:

u(t) = Kp x e(t) + Ki x ∫e(t)dt + Kd x de(t)/dt

Transfer form: C(s) = Kp + Ki/s + Kd x s

PID actions:

ActionEffectUsage
P (Proportional)Reduces error, increases speedAlways present
I (Integral)Eliminates steady-state errorPermanent error
D (Derivative)Reduces overshoot, improves stabilityOscillating systems

Ziegler-Nichols tuning:

Empirical method to determine Kp, Ki, Kd:

  1. Set Ki = 0, Kd = 0
  2. Increase Kp until oscillations (critical Kp)
  3. Measure oscillation period Tu
  4. Apply tuning formulas

For PID: Kp = 0.6 x Kp_critical, Ti = 0.5 x Tu, Td = 0.125 x Tu.

Anti-windup limitation:

Problem: the integral keeps accumulating even when the control signal saturates.

Solution: limit the integrator when the output saturates.

5. Frequency-Domain Controllers

Lead compensator:

Form: C(s) = K x (1 + a x T x s) / (1 + T x s) with a > 1

Effect: increases phase margin, improves speed.

Used when: system is too slow or phase margin is insufficient.

Lag compensator:

Form: C(s) = K x (1 + T x s) / (1 + a x T x s) with a > 1

Effect: increases gain margin, reduces steady-state error.

Used when: steady-state error is too large.

Lead-lag compensator:

Combination of both to simultaneously improve speed and precision.

6. Self-Balancing Robot Project

Inverted pendulum system:

Modeling of the NXT Way robot (Lego Mindstorms):

Physical parameters:

  • Wheel mass: m = 0.03 kg
  • Wheel radius: R = 0.042 m
  • Body mass: M = 0.67 kg
  • Height: H = 0.152 m
  • Gravity: g = 9.81 m/s²

Objective: keep the robot in vertical balance (angle θ = 0 deg).

Control strategy:

Open-loop unstable system → requires active control.

Possible approaches:

  • State feedback (pole placement)
  • PID controller on the angle
  • Observer to estimate angular velocity

Simulink simulation:

Project files:

  • NXTwaySim.slx: complete robot model
  • NXP_robot_parameters.m: physical parameters
  • PlayAnimation.m: 3D visualization

Tests performed:

  • Stabilization after perturbation
  • Robustness to parameter variations
  • External disturbance rejection

PART C: TECHNICAL ASPECTS

MATLAB Lab Sessions

Lab 1: Experimental identification:

Objective: determine the transfer function of a real system from frequency measurements.

Measured data (gains and phases at various frequencies):

freq = [0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 7.5, 10];
G = [0.669, 0.659, 0.609, 0.528, 0.396, 0.242, 0.119, 0.083, 0.061];

Bode diagram plot:

G_dB = 20*log10(G);
semilogx(freq, G_dB);
xlabel('Frequency (Hz)');
ylabel('Gain (dB)');

Identified model: 1st order system with gain 0.717 and time constant 3.3 ms.

Lab 2: Stability analysis:

Closed-loop system with sensor and motor:

Ks = 1.55;   % Sensor gain
Km = 47.8;   % Motor gain
Tm = 0.3;    % Time constant

num = [Km*K/9];
den = [Tm, 1, Km*K*Ks/9];
sys = tf(num, den);

[Gm, Pm, Wcg, Wcp] = margin(sys);

Pole analysis:

P = pole(sys);

If real part is negative → system is stable.

Lab 3: State feedback control:

2nd order system:

A = [0 1; -10 -6.316];
B = [0; 1];
C = [k/0.1001 0];

% Pole placement
poles_desired = [-2+2i, -2-2i];
K = place(A, B, poles_desired);

% Simulation
sys_cl = ss(A-B*K, B, C, 0);
step(sys_cl);

Pole selection based on desired performance:

  • Real part: speed
  • Imaginary part: oscillations

Essential MATLAB Tools

Model creation:

sys = tf(num, den);        % Transfer function
sys = ss(A, B, C, D);      % State-space representation

Analysis:

pole(sys);                 % Poles
zero(sys);                 % Zeros
step(sys);                 % Step response
bode(sys);                 % Bode diagram
nyquist(sys);              % Nyquist diagram
margin(sys);               % Stability margins

Design:

K = place(A, B, poles);    % Pole placement
pidtune(sys, 'PID');       % Automatic PID tuning

Design Methodology

Steps for designing a control system:

  1. Modeling: obtain H(s) of the system
  2. Open-loop analysis: stability, open-loop performance
  3. Specifications: define overshoot, settling time, allowable error
  4. Controller selection: PID, lead/lag as needed
  5. Tuning: parameter calculation (Kp, Ki, Kd)
  6. Simulation: validation with Simulink
  7. Testing: robustness, disturbances, parameter variations

Trade-offs to manage:

  • Speed vs stability
  • Precision vs robustness
  • Complexity vs performance

PART D: ANALYSIS AND REFLECTION

Acquired Skills

Modeling:

  • Going from physical system to mathematical model
  • Experimental parameter identification
  • Validation through measurement/simulation comparison

Analysis:

  • Stability via Routh, Bode, Nyquist
  • Time-domain and frequency-domain performance
  • Robustness evaluation (margins)

Control:

  • PID controller design
  • Tuning via empirical and theoretical methods
  • Pole placement for given specifications

Tools:

  • Proficiency in MATLAB/Simulink
  • Interpretation of diagrams (Bode, Nyquist)
  • Simulation and validation

Practical Applications

The techniques from this course apply to many fields:

Industry:

  • Temperature, pressure, and flow regulation
  • Motor speed control
  • Mechanical system positioning

Robotics:

  • Stabilization (inverted pendulum, balanced robot)
  • Trajectory tracking
  • Force control

Aerospace:

  • Autopilot
  • Attitude stabilization
  • Flight control

Automotive:

  • Cruise control
  • Active suspension
  • Engine control

Links with Other Courses

CourseLink
Analog Circuits and Filters (S5)Frequency analysis, Bode
Linear System Modeling (S5)State-space representation
Feedback Systems (S5)Servo control
Digital Control (S8)Discretization, digital PID
Real-Time Systems (S8)Control law implementation

My Opinion

This course complements the state-space representation course by providing the classical tools of industrial control.

Strengths:

  • Very practical approach (PID, empirical tuning)
  • Tools directly usable in industry
  • Hands-on lab sessions with identification and control
  • Motivating and educational robot project

Complementarity:

The PID remains the most widely used controller in industry (>90% of regulation loops). State-space representation provides modern theory, while PID provides immediate practice.

Professional importance:

Highly sought-after skills in industrial automation, robotics and embedded systems. PID tuning is a fundamental skill for any control engineer.


Personal assessment: This course provided the classical and proven techniques of control engineering. The complementarity with the modern approach (state-space) offers a complete toolbox. The MATLAB labs and robot project allowed for concrete application of these concepts on real systems, providing good preparation for industrial applications.


Reports and Projects

Lab Report 1 - Identification and Frequency Analysis

Lab report on experimental system identification, Bode diagram plotting and stability analysis with MATLAB.

Download PDF report

Lab Report 3 - State Feedback Control

Lab report on continuous linear system control: pole placement, Simulink simulation and experimental validation.

Download PDF report