Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > MATLAB > Simulink
Simulink Forum d'entraide sur la plate-forme Simulink
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 15/10/2012, 16h59   #1
jul89
Invité de passage
 
Inscription : octobre 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2012
Messages : 15
Points : 0
Points : 0
Par défaut [simscape] modélisation d'une chaudière

Bonjour,

je travaille actuellement sur la modélisation d'un système de cogénération thermique sous Simscape.
Je voudrais créer chaque objet composant le système ( par exemple la chaudière, un échangeur, un ballon tampon,...)
j'ai actuellement modélisé la chaudière. je pense qu'elle devrait fonctionner et elle se compile bien.
mais au moment de l'intégrer dans un système simple, j'ai une erreur qui me dit:

 Initial condition solve failed. Equations are not consistent.
Equations of one or more components may be dependent or inconsistent. This can cause problems in transient initialization. Here is the set of components involved:'essaichaudiere/chaudi' 
mon but par ce système est juste de vérifier si mon objet fonctionne.
voici mon code pour la chaudière:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
component chaudiaveccreationflux
% chaudi
% Ce bloc modélise le fonctionnement d'une chaudière. 

inputs
    S = { 0, '1' };   % S:left
end
  
nodes
    A = foundation.thermal.thermal; % A:left
    B = foundation.thermal.thermal; % B:right
end
  
variables
    Pp = { 0, 'W' }; % puissance produite   
    T = { 0, 'K' }; % température
    Q = { 0, 'J/s' }; % flux thermique
end
  
parameters
    q = { 10, 'm^3/s' }; % Débit d'eau
    Cp = { 4.1868, 'J/kg/K' }; % Cp eau
    rho = { 1000, 'kg/m^3' }; % rho eau
    Pnp = {10000, 'W' }; % Puissance nominale de la chaudiere
    T0 = {333, 'K' }; % consigne de T° de départ
end
  
function setup
    if q < 0
    error ('débit d eau doit etre plus grand que 0')
    end
    if Cp < 0
    error ('Cp eau doit etre plus grand que 0')
    end
    if rho < 0
    error ('rho eau doit etre plus grand que 0')
    end
    if Pnp < 0
    error ('puissance nominale chaudiere doit etre plus grande que 0')
    end
    
    through( Q, B.Q, A.Q );
    across( T, A.T, B.T );
    
    A.T = T0;
end

equations
    Pp==Pnp*S;
    B.T==A.T+Pp/(Cp*q*rho);
end
end
Le système modélisé est joint.

J'utilise matlab version 7.11 R2010b

Je débute dans l'utilisation de ce logiciel mais je ne parviens pas à trouver mon erreur.
Je pense avoir été complet dite moi si il manque quelque chose.

Merci d'avance pour l'aide que vous pourrez m'apporter.
Fichiers attachés
Type de fichier : zip chaudiere.zip (16,5 Ko, 8 affichages)
jul89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2012, 20h29   #2
duf42
Modérateur
 
Avatar de duf42
 
Homme
Formateur en informatique
Inscription : novembre 2007
Messages : 2 908
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2007
Messages : 2 908
Points : 4 381
Points : 4 381
Bonjour,

Je suis loin d'être un expert en thermique mais es-tu sûr que cette équation
Citation:
B.T==A.T+Pp/(Cp*q*rho);
est consistante au niveau des unités?

D'après ton code (ce que j'ai compris), il me semble qu'en terme d'unités çà donne:
Code :
K = K + W / (J/kg/K*m^3/s*kg/m^3)
Ce qui après simplification revient à:
Ne pourrait-il pas être la source de l'erreur?

Duf
__________________
Définir les signaux d’entrée d’un modèle Simulink sur le blog Vers MATLAB et au-delà

Modérateur MATLAB

Au boulot : Windows 7 , MATLAB 8.00 (r2012b)
A la maison : ArchLinux mais pas MATLAB
duf42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 09h09   #3
jul89
Invité de passage
 
Inscription : octobre 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2012
Messages : 15
Points : 0
Points : 0
bonjour Duf,

merci pour ta réponse.

mais en thermique, les unités d'un Cp sont les J/(kg*K) et l'unité que matlab me propose ( J/kg/K ) correspond bien à ce Cp. On peut constater que les 2 sont les même. Si on tape 6/2/3 sur matlab et on obtient bien 1 (6/(2*3)).

pour l'analyse dimensionnelle, on a (voir le fichier pdf joint qui est beaucoup plus lisible:

Code :
1
2
3
4
5
6
 K=K+ (J/s)/(J/(kg*K)*m^3/s*kg/m^3 )

 K=K+ 1/(1/K)

 K=K+K
dis moi si je me trompe.
merci quand même.
Fichiers attachés
Type de fichier : pdf analyse dimensionnelle.pdf (187,5 Ko, 4 affichages)
jul89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 17h53   #4
duf42
Modérateur
 
Avatar de duf42
 
Homme
Formateur en informatique
Inscription : novembre 2007
Messages : 2 908
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2007
Messages : 2 908
Points : 4 381
Points : 4 381
Au temps pour moi, j'ai dû me tromper dans la simplification...

As-tu essayé d'écrire l'équation en une seule ligne:
Code :
1
2
B.T==A.T+(Pnp*S)/(Cp*q*rho);
__________________
Définir les signaux d’entrée d’un modèle Simulink sur le blog Vers MATLAB et au-delà

Modérateur MATLAB

Au boulot : Windows 7 , MATLAB 8.00 (r2012b)
A la maison : ArchLinux mais pas MATLAB
duf42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 08h33   #5
jul89
Invité de passage
 
Inscription : octobre 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2012
Messages : 15
Points : 0
Points : 0
Je viens de l'essayer ( en supprimant également Pp des variables vu qu'il n'apparait plus) mais toujours la même erreur.
jul89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2012, 09h35   #6
jul89
Invité de passage
 
Inscription : octobre 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2012
Messages : 15
Points : 0
Points : 0
petit up

je tente des autres montages, mais c'est toujours le même style de message d'erreur qui revient.
jul89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2012, 14h44   #7
tachmou
Membre éclairé
 
Jean-Charles
Doctorant automatique aéronautique
Inscription : janvier 2012
Messages : 243
Détails du profil
Informations personnelles :
Nom : Jean-Charles

Informations professionnelles :
Activité : Doctorant automatique aéronautique

Informations forums :
Inscription : janvier 2012
Messages : 243
Points : 301
Points : 301
Salut,

Je ne connais pas du tout Simscape, donc je ne peux pas te donner de réponse... cependant, si la mentalité de ceux qui l'ont codé est la même que ceux qui ont fait Simulink, je peux peut-être te donner une piste :

Dans simulink, parmis les choses à la con, que tu pourrais trouver (voire retrouver dans Simscape) :
- définition des variables en int/double
- synchronisation (rajouter des blocs d'attente) pour que simulink sache réellement où il est en dans la simulation et quoi calculer en premier avant de calculer la suite
- dans les options, tu peux avoir des outils de débogage qu'il faut prendre le courage d'explorer, quitte à copier ton projet dans un nouveau dossier et faire ton trifouillage dans les options sereinement

Bon courage.

Cordialement,
__________________
Je ne réponds pas aux MP techniques. Le forum est là pour ça.
La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3
tachmou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2012, 11h07   #8
jul89
Invité de passage
 
Inscription : octobre 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2012
Messages : 15
Points : 0
Points : 0
afin de ne pas rester bloqué sur ce genre de problème indéfiniment, je vais formuler ma demande autrement.
Je cherche une personne à proximité (+- 50 km) de Mons et ayant de bonnes bases en simulation Simscape afin de m'apprendre à simuler correctement un modèle hydraulique-thermique. Rémunération à convenir.
jul89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2012, 11h19   #9
duf42
Modérateur
 
Avatar de duf42
 
Homme
Formateur en informatique
Inscription : novembre 2007
Messages : 2 908
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2007
Messages : 2 908
Points : 4 381
Points : 4 381
Il y a des formations chez Mathworks à propos de Simscape: http://www.mathworks.com/training-schedule/

Une session est prévue le 23 novembre prochain.
__________________
Définir les signaux d’entrée d’un modèle Simulink sur le blog Vers MATLAB et au-delà

Modérateur MATLAB

Au boulot : Windows 7 , MATLAB 8.00 (r2012b)
A la maison : ArchLinux mais pas MATLAB
duf42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2012, 13h52   #10
jul89
Invité de passage
 
Inscription : octobre 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2012
Messages : 15
Points : 0
Points : 0
merci pour l'info,

mais je préfèrerais quelque chose de plus personnalisé et plus interactif afin de vraiment se pencher sur le cas qui m’intéresse vraiment
jul89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h25.


 
 
 
 
Partenaires

Hébergement Web