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:
| Action | Effet | Utilisation |
|---|---|---|
| P (Proportionnel) | Reduit l'erreur, augmente rapidite | Toujours present |
| I (Integral) | Annule erreur statique | Erreur permanente |
| D (Derive) | Reduit depassement, ameliore stabilite | Systemes oscillants |
Reglage par Ziegler-Nichols:
Methode empirique pour determiner Kp, Ki, Kd:
- Mettre Ki = 0, Kd = 0
- Augmenter Kp jusqu'a oscillations (Kp critique)
- Mesurer periode d'oscillation Tu
- 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:
- Modelisation: obtenir H(s) du systeme
- Analyse BO: stabilite, performances en boucle ouverte
- Specifications: definir depassement, temps de reponse, erreur admissible
- Choix correcteur: PID, avance/retard selon besoins
- Reglage: calcul des parametres (Kp, Ki, Kd)
- Simulation: validation avec Simulink
- 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
| Cours | Lien |
|---|---|
| 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.
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.
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:
| Action | Effect | Usage |
|---|---|---|
| P (Proportional) | Reduces error, increases speed | Always present |
| I (Integral) | Eliminates steady-state error | Permanent error |
| D (Derivative) | Reduces overshoot, improves stability | Oscillating systems |
Ziegler-Nichols tuning:
Empirical method to determine Kp, Ki, Kd:
- Set Ki = 0, Kd = 0
- Increase Kp until oscillations (critical Kp)
- Measure oscillation period Tu
- 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:
- Modeling: obtain H(s) of the system
- Open-loop analysis: stability, open-loop performance
- Specifications: define overshoot, settling time, allowable error
- Controller selection: PID, lead/lag as needed
- Tuning: parameter calculation (Kp, Ki, Kd)
- Simulation: validation with Simulink
- 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
| Course | Link |
|---|---|
| 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.
Lab Report 3 - State Feedback Control
Lab report on continuous linear system control: pole placement, Simulink simulation and experimental validation.