Viotar/Model: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
No edit summary
No edit summary
 
(27 intermediate revisions by 2 users not shown)
Line 6: Line 6:
| rowspan="2" class="BGorange1" valign="middle" style="text-align:center; padding:.6em 10px .6em 10px; background-color:#A9D0F5; border-top:2px solid #2E9AFE; border-bottom:2px solid #2E9AFE" |
| rowspan="2" class="BGorange1" valign="middle" style="text-align:center; padding:.6em 10px .6em 10px; background-color:#A9D0F5; border-top:2px solid #2E9AFE; border-bottom:2px solid #2E9AFE" |
<h1 style="font-size:180%; border:none; margin:0; padding:0">
<h1 style="font-size:180%; border:none; margin:0; padding:0">
'''Viotar project group'''
'''Model
'''
</h1>
</h1>
<div style="position:relative; top:.25em; font-size:100%">'''<br/>William Schattevoet<br/>David Duwaer<br/>Eric Backx<br/> Arjan de Visser'''</div>
<div style="position:relative; top:.25em; font-size:100%">'''<br/>William Schattevoet<br/>David Duwaer<br/>Eric Backx<br/> Arjan de Visser'''</div>
Line 23: Line 24:
'''Subpages:'''
'''Subpages:'''
</h1><br/>
</h1><br/>
[http://cstwiki.wtb.tue.nl/index.php/Viotar Main page]
[http://cstwiki.wtb.tue.nl/index.php?title=Viotar Main page]


[http://cstwiki.wtb.tue.nl/index.php/Viotar/Patent_Research Patent Research]
[http://cstwiki.wtb.tue.nl/index.php?title=Viotar/Working_of_the_violin Working principle of the violin and predicting it’s behavior]


[http://cstwiki.wtb.tue.nl/index.php/Viotar/Werking_van_de_viool Working of the violin]
[http://cstwiki.wtb.tue.nl/index.php?title=Viotar/_Ways_To_Exite_The_String Ways to exite the string]


[http://cstwiki.wtb.tue.nl/index.php/Viotar/Quantifying_the_signal Software Design (Quantifying the signal we want to see)]
[http://cstwiki.wtb.tue.nl/index.php?title=Viotar/Hardware_Design Hardware Design]


[http://cstwiki.wtb.tue.nl/index.php/Viotar/Hardware_Design Hardware Design]
[http://cstwiki.wtb.tue.nl/index.php?title=Viotar/Quantifying_the_signal Software Design (Quantifying the signal we want to see)]


[http://cstwiki.wtb.tue.nl/index.php/Viotar/Interview_met_Eindhovens_vioolbouwe_Hendrik_Zick Interview met Eindhovens vioolbouwer Hendrik Zick]
[http://cstwiki.wtb.tue.nl/index.php?title=Viotar/Patent_Research Patent Research]


[http://cstwiki.wtb.tue.nl/index.php/Viotar/_Ways_To_Exite_The_String Ways to exite the string]
[http://cstwiki.wtb.tue.nl/index.php?title=Viotar/Background_information:_Interview_with_Hendrik_Zick Background information: Interview with Hendrick Zick]


[http://cstwiki.wtb.tue.nl/index.php/Viotar/Model Model]
[http://cstwiki.wtb.tue.nl/index.php?title=Viotar/Model Model]




Line 44: Line 45:
<h1 style="font-size:180%; border:none; margin:0; padding:0">
<h1 style="font-size:180%; border:none; margin:0; padding:0">
'''Overview:'''
'''Overview:'''
</h1><br/>
</h1><br/>In order to predict the behavior of the Viotar, when it’s made, and to predict the outcome of experiments a model has been made of the motion of the string. With this model it will also be possible to make a controller for the Viotar. With this controller, we want the Viotar to be able to gain a Helmholtz motion within one vibration. The model will be made in Matlab and the theory behind this model will be listed below.
|}<br/>
|}<br/>


==Model==
==Model==


===Model voor de frictiecurve===
In order to predict the results of experiments for validation and to make the designing of the controller more easy, a model of the vibration of a bowed string will be made. This model is made in matlab and will be discussed in the following chapter.
Om de resultaten van eventuele experimenten te kunnen voorspellen en het maken van een regelaar makkelijker te maken zal een model gemaakt worden van de Helmholtz trilling van de snaar. Dit model word in matlab gemaakt en de theorie achter het model word in het volgende stuk besproken.
 
====Eenvoudige benadering====
===Friction curve model===
In simpele modellen van de interactie tussen boog en snaar, wordt ervan uitgegaan dat de wrijvingskracht tussen beide alleen afhangt van de relatieve snelheid van de snaar ten opzichte van de boog. Het verband heeft volgens deze modellen een exponentiële vorm zoals in onderstaand figuur 3. Hierin is v de snelheid van de snaar en vb de snelheid van de boog. Deze wrijvingskracht op het interactievlak tussen boog en snaar is te berekenen volgens:<br/><br/>[[File:eq1.PNG]]<br/><br/>
====Simple approximation====
In simple models of the interaction between bow and string, it is asumed that the friction force between both only depends on the relative speed of the string in relation to the bow. The relation between the relative speed and friction force has an exponential shape in these models. This can also be seen in figure 3. In this figure v is the speed of the string, where vb is the bowing speed. The friction force on the interaction area of the bow and the string, can be calculated using:
 
<math>f = \mu(v-v_b)f_b</math>
 
Where µ is the friction coefficient and f<sub>b</sub> is the applied force on the bow.
 
[[File:verband.PNG|frame| Border|center| Figure 3:  a) The relation between the relative speed of the string (regarding to the speed of the bow) and the friction force b) Release velocity vr and capture velocity vc]]
 
There are several models for the friction coefficient µ. The hyperbolic model is described as follows:
 
<math>\mu = \mu_d + {{(\mu_s-\mu_d)v_0} \over {v_0 + v + v_b}}</math>
 
where:
 
v<sub>o</sub> = initial bowing speed
 
µ<sub>d</sub> = dynamic friction coefficient


Waarbij µ de wrijvingscoëfficiënt is en fb de kracht waarmee de boog op de snaar wordt gedrukt.
µ<sub>s</sub> = static friction coefficient


[[File:verband.PNG|frame| Border|center| Figuur 3:  a) Het verband tussen de relatieve snelheid van de snaar, t.o.v. de boog, en de wrijvingskracht. b) Release velocity vr en capture velocity vc .]]
(In most cases, the values µ<sub>d</sub> = 0.3 and µ<sub>s</sub> = 0.8 are used)


Er zijn verschillende modellen voor de wrijvingscoëfficiënt. Het hyperbolische model wordt gegeven door de relatie:<br/><br/>[[File:eq2.PNG]]<br/><br/>
Hierin is v0 de initiële boogsnelheid, µd de dynamische frictiecoëfficiënt en µs de statische frictiecoëfficiënt. In de meeste modellen wordt µd = 0.3 en µs = 0.8 gebruikt.
Het exponentiële frictiemodel wordt gegeven door:<br/><br/>[[File:eq3.PNG]]<br/>[[File:verband2.PNG|frame|Border|Figuur 4: Het verband tussen snaarsnelheid v en wrijvingscoëfficiënt µ volgens het model (gestippeld) en volgens experimentele bepaling (getrokken).]]
[[File:verband3.PNG|frame|Border|Figuur 5: Schematische weergave van het strijken van een snaar. De gestippelde lijn in situatie 2 geeft de werkelijke situatie weer, de getrokken lijn geeft de versimpelde voorstelling waarin zonder slip gestreken kan worden.]] <br/>
In figuur 3 is tevens een verband weergegeven tussen de kracht die op de snaar wordt uitgeoefend en de snelheid die de snaar hierdoor krijgt. Dit dynamische gedrag van de snaar is volgens experimenteel onderzoek in benadering lineair. In figuur 3 b) zijn ook de release velocity vr en de capture velocity vc getekend. Dit zijn de snelheden waarbij de snaar respectievelijk losgelaten en meegenomen wordt door de boog. Dit kan als volgt worden uitgelegd. Als de snelheid van de snaar toeneemt, zal deze over de boog blijven slippen totdat de capture velocity vc is bereikt. Op dat moment blijft de snaar aan de boog plakken (‘stick’) waardoor de snaarsnelheid een sprong maakt naar de boogsnelheid vb. De snaar zal blijven plakken totdat deze de release velocity vr bereikt. Dit betekent dus dat de oplossing van de krachtsvergelijking een andere route over de grafiek volgt als de relatieve snelheid toeneemt dan wanneer deze afneemt.


====Frictiemodel vs. Experiment====
The exponential friction model is described as:


In het eenvoudige model dat in figuur 3 is afgebeeld, is ervan uitgegaan dat de wrijvingskracht alleen afhangt van de relatieve snelheid tussen de boog en de snaar. Uit metingen is echter gebleken dat het verband niet zo eenvoudig is. De gestippelde lijn in figuur 4 laat het verband tussen snaarsnelheid en wrijvingscoëfficiënt zien zoals dat uit het bovengenoemde model komt. De getrokken lijn geeft het werkelijke verband, welke experimenteel is bepaald. Uit deze figuur blijkt duidelijk dat de klassieke benadering niet klopt.
<math>\mu = 0.4e^{{v-v_b}\over{0.01}} + 0.45e^{{v-v_b}\over{0.1}} + 0.35</math>


====Verklaringen voor fouten in het frictiemodel====
[[File:verband2.PNG|frame|Border|Figure 4: The relation between the string speed v and the friction coefficient µ according to the model (dotted) and according to experiments(continuous)]]
[[File:verband3.PNG|frame|Border|Figure 5: Bowing of a string schematically. The dotted line in situation 2 indicates the real behaviour whereas the continuous line indicates the simplified situation where bowing without slip exists.]] <br/>


Een van de verklaringen hiervoor is dat de temperatuur van het interactievlak een sterke invloed heeft. De verklaring hiervoor is dat als de snaar een relatief kleine snelheid heeft ten opzicht van de boog, de contactlaag afkoelt door geleiding naar het materiaal buiten het contactgebied. Hierdoor nemen de schuifsterkte en de wrijvingscoëfficiënt op het contactgebied toe. Zodra er meer ‘slip’ plaatsvindt, warmt het contactgebied op door de arbeid die tegen de wrijving in wordt geleverd. Door deze warmteproductie wordt de hars in het contactgebied zachter en neemt de wrijvingscoëfficiënt snel af.  
In figure 3, also the relation between applied force and caused velocity of the string is shown. This dynamical behaviour of the string is approximately linear,  
Een ander verschijnsel dat veel invloed blijkt te hebben op de wrijvingskracht tussen boog en snaar, is de zogenaamde bow hair-compliance. Deze afwijking wordt veroorzaakt door het feit dat de boog niet op één punt contact maakt met de snaar, zoals verondersteld in het klassieke model, maar een contactgebied heeft. Het verschil is dat het voor een contactpunt wel mogelijk is dat de snaar zonder ‘slip’ de boog volgt, terwijl dit voor een contactgebied niet mogelijk is. In figuur 5 wordt aangegeven waarom dit niet mogelijk is. Situatie 1 is hierbij de uitgangssituatie. Hierin staat de boog op de snaar en is de snaar geëxciteerd. Een tijdsinterval later (situatie 2) is de boog met een snelheid vb omhoog bewogen en is de snaar door ‘stick’ gedrag meegenomen. De gestippelde lijn geeft de situatie weer zoals deze in werkelijkheid optreedt. De getrokken lijn geeft weer hoe vorm van de snaar zou moeten zijn als de snaar zonder enige vorm van ‘slip’ meegnomen zou zijn. Het moge duidelijk zijn dat deze situatie niet optreedt en er dus nooit geheel zonder ‘slip’ gestreken kan worden.  
as experiments proved. The release velocity v<sub>r</sub> and capture velocity v<sub>c</sub> are shown in figure 3 b). The are the
velocities at which the string respectively slips of the bow or sticks on it. This phenomenon can be explained as follows. When the velocity of the string increases, the string keeps slipping on the bow until the capture velocity is reached. At this velocity the string sticks on the bow and therefor has the same velocity. The string will remain sticking until the release velocity is reached. At that point, the string starts slipping over the bow. This means that the force equation has a different solution when the relative speed increases than it has when the relative speed decreases. This is due the fact that the friction coefficient for slipping differs from the friction coefficient for sticking.


Uit experimenten is echter wel gebleken dat de simpele voorstelling van de wrijvingscurve voldoende is om te kunnen simuleren wat de invloed is van het veranderen van wrijvingssnelheid en –druk op het al dan niet plaatsvinden van een Helmholtz beweging. Voor de toepassing van ons computermodel zal de wrijvingscurve zoals deze in figuur 3 is voorgesteld dus wel voldoen.
====Friction model vs. Experiment====
In the simple friction curve model, like it is presented in figure 3, it is assumed that the friction force only depends on the relative force between the string and the bow. However, experiments have proved that the true situation is not quite as simple as that. The dotted line in figure 4 shows the relation between string velocity and friction coefficient as described by the model above. The continuous line shows the real situation, which has been measured experimentally. From this figure it can be concluded that the classical approach is quite unprecise.


===Computermodel===
====Explanations for errors in the friction model====


====Variabelen====
One of the reasons for this, is that the temperature of the interaction area is of very high importance. This is because of the melting temperature of the rosin. When the relative speed is low, the contact area cools down due to conductance in the string and bow. This causes the friction coefficient to increase. When more 'slip' behaviour occurs, this causes the temperature to raise and therefor the friction coefficient tot decrease rapidly.


Er zijn 3 waarden in te stellen in het model. Dit zijn de snelheid van de boog (vb), de druk die met de boog op de snaar uitgeoefend wordt (Fb) en als laatste een factor die de afstand tussen de boog en de kam ten opzichte van de lengte van de snaar aangeeft (beta).
Another phenomenon that turns out to have a lot of influence, is the so called hair-compliance. This error is occured by the fact that the bow doesn't have one single contact point with the string (like assumed in the simple model), but in fact has a whole contact area. The difference is that for the first case it is possible to have absolutely no slip while the string follows the bow, while in the second case slip is always present. This difference is also shown in figure 5. In this figure, situation 1 indicates the initial string and bow. One time step later (situation 2) the bow has moved upwards with velocity v<sub>b</sub> and the string has sticked on the bow. Now, the dashed line represents the real situation, like it would be in realtity, where the continuous line indicates what shape the string should have as no slip had occured. It should be clear that this 'no slip situation' would never occur in reality and therefor bowing without any slip is impossible.


====Werking van het programma====
However, experiments proved that the simple representation of the friction curve model is precise enough to simulate what the influence of changing the bowing speed and force is, on the occurence of a Helmholtz vibration. For our computer model we will use the friction curve, like it is presented in figure 3 which will satisfy.


[[File:Gauss.PNG|frame| Border|right| Figuur 6: De symmetrische Gauss-kromme.]]
===Computer model===


In het programma wordt het simulatiegebied opgedeeld in n intervallen, met een grootte dt. Het programma doorloopt voor elke tijdstap dt een loop waarin met behulp van bekende waarden voor de positie, kracht en snelheid uit het verleden de nieuwe waarden voor deze grootheden bepaald kunnen worden. Van belang hierbij is dat de snelheid waarmee een op de snaar uitgeoefende kracht zich door de snaar beweegt bekend is. Zo kan er op tijdstip i altijd terug gekeken worden in de geschiedenis welke krachten uit het verleden op tijdstip i teruggekaatst zijn en dus weer van invloed zijn op de beweging van het gesimuleerde punt. Om de exacte werking van het model te illustreren, zal hieronder de loop van één tijdstap doorlopen worden. Het model zelf is ook bijgevoegd. (Let op! Het model is nog niet werkend of voorzien van commentaar).
====Variabels====
De snaar wordt bekeken op positie x op tijdstip i. Trillingen die op positie x veroorzaakt worden, gaan via de snaar naar de uiteinden van de snaar, van waar ze teruggekaatst worden naar positie x. Op tijdstip i wordt eerst uitgerekend op welk tijdstip de trillingen die op dat moment terugkomen op positie x uitgezonden werden. Dit is dus een tijdstip in het verleden. Aangezien de snelheid waarmee de golf zich voortplant geen meervoud is van dt, zal er meestal geïnterpoleerd moeten worden tussen twee tijdstippen. Omdat trillingen die nog niet helemaal teruggekeerd zijn, of juist alweer voorbij positie x zijn ook invloed hebben op de beweging op positie x, wordt er ook rekening gehouden met deze trillingen. Met behulp van een symmetrische Gauss-kromme (zie figuur 6) wordt de invloed van deze trillingen uitgerekend en opgeteld bij de trilling die precies op tijdstip i is teruggekeerd. Al deze trillingen zijn in feite krachten die van invloed zijn op de snaarsnelheid v op tijdstip i. Met behulp van het frictiemodel kunnen de resulterende kracht omgezet worden in een nieuwe snaarsnelheid. Dit is dus de snaarsnelheid vi op tijdstip i.
There are 3 variables that can be set in this model. These are the bowing speed v<sub>b</sub>, bowing force f<sub>b</sub> and a factor that indicates the distance between the bow and the bridge and the bow, in relation to the length of the string (β).


====Working of the program====


Als deze loop voor alle tijdstappen doorlopen is, is er dus een vector v gemaakt met daarin voor elke tijdstap i de bijbehorende snelheid vi. Uit deze snelheidsvector kan eenvoudig de positievector u bepaald worden door middel van integratie over alle tijdstappen dt.
[[File:Gauss.PNG|frame| Border|right| Figure 6: Symmetric Gauss curve]]


Als de complete trilling van de snaar bekend is (positie als functie van de tijd), kan door een fouriertransformatie toe te passen een powerspectrum gemaakt worden waarin de amplitude verhoudingen te zien zijn in het frequentiedomein.
In the computer program, the simulation is devided into n intervals of size dt. The program runs through a loop for every time step dt. Using the known values (from earlier time steps)for position of the string, velocity of the string and applied force on the bow, new values for these quantities are calculated. Important is that the speed at which an applied force moves through the string, is known. With this structure it is always possible to calculate the new values on time i, using the values from the past. To illustrate the working of the program, one loop will be run through in the following part.


====Problemen====
The string will be evaluated at position x on time i. Vibrations caused at position x, will move along the string to the ends, where the vibrations are reflected to position x. On time i, the time is calculated at which the vibrations that arrive on time i where caused on position x. So, this is a moment in the past. Beacause the travelling time of the waves is usually not a multiple of dt, the real time should most of the time be interpolated between two values. Beacuse of the fact that vibrations that are nearly at position x are also important for the movement of position x, also these vibrations are taken into account. Using a symmetric Gauss curve (figure 6), the influence of these vibrations is calculated and added to the vibration that has exactly returned on time i. All these vibrations together are forces that influence the vibration (velocity) of position x. Using the friction curve model, this resulting force can be converted to a new string velocity. This gives the string velocity v<sub>i</sub> on time i.


Het grootste probleem tot nu toe is dat de frequentie van de snaartrilling steeds afhankelijk blijkt te zijn van de strijksnelheid en –druk. In de werkelijkheid is dit niet het geval en wordt de frequentie slechts beïnvloed door de lengte van de snaar. Met het variëren van de strijksnelheid en –druk wordt in werkelijkheid alleen de amplitude en dus de luidheid van de trilling beïnvloed.
When this loop is run through for all time steps, there is a vector v which contains the string velocity for every time i. The position of point x can easily be calculated using this vector by integrating over the time steps dt.
Dit probleem wordt waarschijnlijk veroorzaakt door een ander probleem. Namelijk het modelleren van de snaarstijfheid, dus welke kracht de snaarstijfheid genereert als functie van de tijd. Hiervoor moet nog een oplossing gevonden worden.
When the complete vibration of the string is known (postion as a function of time), a powerspectrum can be made using fourier transformation. This gives the amplitude ratios in the frequency domain.


===Analyses met het model===
====Problems====
The biggest problem so far, is that the frequency of the vibration seems to be depending on the bowing speed and force. In reality this is not the case, and is the frequency only depending on the length and the width of the string. Varying the bowing speed and force, only changes the amplitude and therefor the loudness of the vibration in reality.
This problem is most probably caused by another problem, being the stiffness of the string. This stiffness plays an important role in the vibration of the string as it adds another force to force equation.


Met behulp van het werkende model kan een Helmholtz trilling gegenereerd worden. Deze trilling kan daarna geanalyseerd worden met behulp van matlab. Het model herkent een trilling en kan deze klassificeren in een aantal groepen. Uit alle gemodeleerde trillingen is een zuivere Helmholttrilling gepakt, deze ziet er uit als in de linker plot hier onder. Daarna is er een m-file gemaakt die een Fourier transformatie uitvoerd op deze trilling en een frequentiedomein plot. Dit frequentiedomein is weergegeven in de rechter plot hieronder.
===New computer model===
[[File:HEL.PNG|frame|border|left|Figuur X: Helmholtztrilling met bijbehorend frequentiespectrum.]]
Since the model we made did not satisfy the fact that frequency should not depend on bowing speed and force, we contacted an expert for help. This expert, J. Woodhouse from the Cambridge University, has done several studies about the behaviour of a bowed string. He helped us a lot by sending a model he made years ago for recognizing Helmholtz vibration. He also used this model to define the Helmholtz region as a function of bowing speed, applied force and β. We adapted and used this model for our controller and to do analysis of Helmholtz vibrations.
<br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/>


===Region of Helmholtz motion in parameter space===
====Analysis with the new model====


The model has been run for a 20x20 grid of bowing speeds and bow forces. This has yielded the plot of Figure 1.
With the right model a Helmholtz vibration can be generated. This vibration can be analysed afterwards using matlab. The model itself recognises if the generated vibration is a Helmholtz vibration or a noisy type of vibration. We took a Helmholtz vibration, which looks like the left figure below, and made an m-file that generates a fourier transformation of that vibration. The powerspectrum that was generated is shown in the right figure below. These type of figures will be very important later on as we will see in the chapter 'Software Design (Quantifying the signal we want to see)'.
 
[[File:HEL.PNG|frame|border|center|Figure 7: Helmholtz vibration and it's powerspectrum]]
 
====Region of Helmholtz motion in parameter space====
 
The model has been run for a 20x20 grid of bowing speeds and bow forces. This has yielded the plot of Figure 7.
   
   
[[File:Helmholtzregion.png|frame|Border|center|Figure 1: Model-generated plot. Where there’s blue, there’s no Helmholtz motion. The other colors indicate note flattening effect. The darker red, the bigger the flattening.]]
[[File:Helmholtzregion.png|frame|Border|center|Figure 7: Model-generated plot. Where there’s blue, there’s no Helmholtz motion. The other colors indicate note flattening effect. The darker red, the bigger the flattening.]]


It’s interesting that there are exceptions to the main trend in the figure, that is, the “holes” in the Helmholtz region and the occurrences of Helmholtz outside the main region. This is strange because in a mathematical model, unlike in “reality”, there’s no noise or chaos. Probably, the reason why the results may be unpredictable is that these are not steady-state results, so there may still be startup phenomena. A way we may solve it in the future is to use “perfect transients”, in which Helmholtz motion is obtained within one period by following a certain acceleration path for the bow speed. Restrain should also be kept regarding the accuracy of the algorithm that “recognizes” if there is a Helmholtz vibration or not.
It’s interesting that there are exceptions to the main trend in the figure, that is, the “holes” in the Helmholtz region and the occurrences of Helmholtz outside the main region. This is strange because in a mathematical model, unlike in “reality”, there’s no noise or chaos. Probably, the reason why the results may be unpredictable is that these are not steady-state results, so there may still be startup phenomena. A way we may solve it in the future is to use “perfect transients”, in which Helmholtz motion is obtained within one period by following a certain acceleration path for the bow speed. Restrain should also be kept regarding the accuracy of the algorithm that “recognizes” if there is a Helmholtz vibration or not.


Despite the inaccuracies, there is already valuable info in this plot. It becomes very clear “where” in the parameter space you want to be, as the lower part of the Helmholtz region has the smallest note flattening. When modulating the note intensity, the ideal path that should be taken would be somewhat like the green line drawn in Figure 2.
Despite the inaccuracies, there is already valuable info in this plot. It becomes very clear “where” in the parameter space you want to be, as the lower part of the Helmholtz region has the smallest note flattening. When modulating the note intensity, the ideal path that should be taken would be somewhat like the green line drawn in Figure 8.
 
[[File:Helmholtzregionmodpath.png|frame|Border|center|Figure 8: The green path indicates the ideal modulation path.]]


[[File:Helmholtzregionmodpath.png|frame|Border|center|Figure 2: The green path indicates the ideal modulation path.]]
==== Adapting the model for the controller ====
The model is a practical instrument for designing a controller. This gives the ability to design a controller without actually having the real prototype. Besides the advantage that both the prototype and the controller can be designed simultaneously, it also has the advantage that the influence of a certain input on the output can be checked very easily. This will also become clear in the chapter 'Software Design (Quantifying the signal we want to see)'. The model as we received from mr. Woodhouse, contains a loop to generate vibrations for varying β, bowing speed and force. To make the model suitable for the controller, we adapted it and removed the loop. The simulation model is a function that has bowing speed and force as input variables, while β is kept constant. We run this function file in simulink, where the input parameters can be changed on the fly. Every time step, the function is called, which calculates the new location of the simulated bowing point. This gives the ability to construct a controller which adapts the input variables for the function every time step. In this way, the model simulates the response of the guitar to certain input variables.

Latest revision as of 15:31, 25 January 2011

Model


William Schattevoet
David Duwaer
Eric Backx
Arjan de Visser


Subpages:


Main page

Working principle of the violin and predicting it’s behavior

Ways to exite the string

Hardware Design

Software Design (Quantifying the signal we want to see)

Patent Research

Background information: Interview with Hendrick Zick

Model


Overview:


In order to predict the behavior of the Viotar, when it’s made, and to predict the outcome of experiments a model has been made of the motion of the string. With this model it will also be possible to make a controller for the Viotar. With this controller, we want the Viotar to be able to gain a Helmholtz motion within one vibration. The model will be made in Matlab and the theory behind this model will be listed below.

Model

In order to predict the results of experiments for validation and to make the designing of the controller more easy, a model of the vibration of a bowed string will be made. This model is made in matlab and will be discussed in the following chapter.

Friction curve model

Simple approximation

In simple models of the interaction between bow and string, it is asumed that the friction force between both only depends on the relative speed of the string in relation to the bow. The relation between the relative speed and friction force has an exponential shape in these models. This can also be seen in figure 3. In this figure v is the speed of the string, where vb is the bowing speed. The friction force on the interaction area of the bow and the string, can be calculated using:

[math]\displaystyle{ f = \mu(v-v_b)f_b }[/math]

Where µ is the friction coefficient and fb is the applied force on the bow.

Figure 3: a) The relation between the relative speed of the string (regarding to the speed of the bow) and the friction force b) Release velocity vr and capture velocity vc

There are several models for the friction coefficient µ. The hyperbolic model is described as follows:

[math]\displaystyle{ \mu = \mu_d + {{(\mu_s-\mu_d)v_0} \over {v_0 + v + v_b}} }[/math]

where:

vo = initial bowing speed

µd = dynamic friction coefficient

µs = static friction coefficient

(In most cases, the values µd = 0.3 and µs = 0.8 are used)


The exponential friction model is described as:

[math]\displaystyle{ \mu = 0.4e^{{v-v_b}\over{0.01}} + 0.45e^{{v-v_b}\over{0.1}} + 0.35 }[/math]

Figure 4: The relation between the string speed v and the friction coefficient µ according to the model (dotted) and according to experiments(continuous)
Figure 5: Bowing of a string schematically. The dotted line in situation 2 indicates the real behaviour whereas the continuous line indicates the simplified situation where bowing without slip exists.

In figure 3, also the relation between applied force and caused velocity of the string is shown. This dynamical behaviour of the string is approximately linear, as experiments proved. The release velocity vr and capture velocity vc are shown in figure 3 b). The are the velocities at which the string respectively slips of the bow or sticks on it. This phenomenon can be explained as follows. When the velocity of the string increases, the string keeps slipping on the bow until the capture velocity is reached. At this velocity the string sticks on the bow and therefor has the same velocity. The string will remain sticking until the release velocity is reached. At that point, the string starts slipping over the bow. This means that the force equation has a different solution when the relative speed increases than it has when the relative speed decreases. This is due the fact that the friction coefficient for slipping differs from the friction coefficient for sticking.

Friction model vs. Experiment

In the simple friction curve model, like it is presented in figure 3, it is assumed that the friction force only depends on the relative force between the string and the bow. However, experiments have proved that the true situation is not quite as simple as that. The dotted line in figure 4 shows the relation between string velocity and friction coefficient as described by the model above. The continuous line shows the real situation, which has been measured experimentally. From this figure it can be concluded that the classical approach is quite unprecise.

Explanations for errors in the friction model

One of the reasons for this, is that the temperature of the interaction area is of very high importance. This is because of the melting temperature of the rosin. When the relative speed is low, the contact area cools down due to conductance in the string and bow. This causes the friction coefficient to increase. When more 'slip' behaviour occurs, this causes the temperature to raise and therefor the friction coefficient tot decrease rapidly.

Another phenomenon that turns out to have a lot of influence, is the so called hair-compliance. This error is occured by the fact that the bow doesn't have one single contact point with the string (like assumed in the simple model), but in fact has a whole contact area. The difference is that for the first case it is possible to have absolutely no slip while the string follows the bow, while in the second case slip is always present. This difference is also shown in figure 5. In this figure, situation 1 indicates the initial string and bow. One time step later (situation 2) the bow has moved upwards with velocity vb and the string has sticked on the bow. Now, the dashed line represents the real situation, like it would be in realtity, where the continuous line indicates what shape the string should have as no slip had occured. It should be clear that this 'no slip situation' would never occur in reality and therefor bowing without any slip is impossible.

However, experiments proved that the simple representation of the friction curve model is precise enough to simulate what the influence of changing the bowing speed and force is, on the occurence of a Helmholtz vibration. For our computer model we will use the friction curve, like it is presented in figure 3 which will satisfy.

Computer model

Variabels

There are 3 variables that can be set in this model. These are the bowing speed vb, bowing force fb and a factor that indicates the distance between the bow and the bridge and the bow, in relation to the length of the string (β).

Working of the program

Figure 6: Symmetric Gauss curve

In the computer program, the simulation is devided into n intervals of size dt. The program runs through a loop for every time step dt. Using the known values (from earlier time steps)for position of the string, velocity of the string and applied force on the bow, new values for these quantities are calculated. Important is that the speed at which an applied force moves through the string, is known. With this structure it is always possible to calculate the new values on time i, using the values from the past. To illustrate the working of the program, one loop will be run through in the following part.

The string will be evaluated at position x on time i. Vibrations caused at position x, will move along the string to the ends, where the vibrations are reflected to position x. On time i, the time is calculated at which the vibrations that arrive on time i where caused on position x. So, this is a moment in the past. Beacause the travelling time of the waves is usually not a multiple of dt, the real time should most of the time be interpolated between two values. Beacuse of the fact that vibrations that are nearly at position x are also important for the movement of position x, also these vibrations are taken into account. Using a symmetric Gauss curve (figure 6), the influence of these vibrations is calculated and added to the vibration that has exactly returned on time i. All these vibrations together are forces that influence the vibration (velocity) of position x. Using the friction curve model, this resulting force can be converted to a new string velocity. This gives the string velocity vi on time i.

When this loop is run through for all time steps, there is a vector v which contains the string velocity for every time i. The position of point x can easily be calculated using this vector by integrating over the time steps dt. When the complete vibration of the string is known (postion as a function of time), a powerspectrum can be made using fourier transformation. This gives the amplitude ratios in the frequency domain.

Problems

The biggest problem so far, is that the frequency of the vibration seems to be depending on the bowing speed and force. In reality this is not the case, and is the frequency only depending on the length and the width of the string. Varying the bowing speed and force, only changes the amplitude and therefor the loudness of the vibration in reality. This problem is most probably caused by another problem, being the stiffness of the string. This stiffness plays an important role in the vibration of the string as it adds another force to force equation.

New computer model

Since the model we made did not satisfy the fact that frequency should not depend on bowing speed and force, we contacted an expert for help. This expert, J. Woodhouse from the Cambridge University, has done several studies about the behaviour of a bowed string. He helped us a lot by sending a model he made years ago for recognizing Helmholtz vibration. He also used this model to define the Helmholtz region as a function of bowing speed, applied force and β. We adapted and used this model for our controller and to do analysis of Helmholtz vibrations.

Analysis with the new model

With the right model a Helmholtz vibration can be generated. This vibration can be analysed afterwards using matlab. The model itself recognises if the generated vibration is a Helmholtz vibration or a noisy type of vibration. We took a Helmholtz vibration, which looks like the left figure below, and made an m-file that generates a fourier transformation of that vibration. The powerspectrum that was generated is shown in the right figure below. These type of figures will be very important later on as we will see in the chapter 'Software Design (Quantifying the signal we want to see)'.

Figure 7: Helmholtz vibration and it's powerspectrum

Region of Helmholtz motion in parameter space

The model has been run for a 20x20 grid of bowing speeds and bow forces. This has yielded the plot of Figure 7.

Figure 7: Model-generated plot. Where there’s blue, there’s no Helmholtz motion. The other colors indicate note flattening effect. The darker red, the bigger the flattening.

It’s interesting that there are exceptions to the main trend in the figure, that is, the “holes” in the Helmholtz region and the occurrences of Helmholtz outside the main region. This is strange because in a mathematical model, unlike in “reality”, there’s no noise or chaos. Probably, the reason why the results may be unpredictable is that these are not steady-state results, so there may still be startup phenomena. A way we may solve it in the future is to use “perfect transients”, in which Helmholtz motion is obtained within one period by following a certain acceleration path for the bow speed. Restrain should also be kept regarding the accuracy of the algorithm that “recognizes” if there is a Helmholtz vibration or not.

Despite the inaccuracies, there is already valuable info in this plot. It becomes very clear “where” in the parameter space you want to be, as the lower part of the Helmholtz region has the smallest note flattening. When modulating the note intensity, the ideal path that should be taken would be somewhat like the green line drawn in Figure 8.

Figure 8: The green path indicates the ideal modulation path.

Adapting the model for the controller

The model is a practical instrument for designing a controller. This gives the ability to design a controller without actually having the real prototype. Besides the advantage that both the prototype and the controller can be designed simultaneously, it also has the advantage that the influence of a certain input on the output can be checked very easily. This will also become clear in the chapter 'Software Design (Quantifying the signal we want to see)'. The model as we received from mr. Woodhouse, contains a loop to generate vibrations for varying β, bowing speed and force. To make the model suitable for the controller, we adapted it and removed the loop. The simulation model is a function that has bowing speed and force as input variables, while β is kept constant. We run this function file in simulink, where the input parameters can be changed on the fly. Every time step, the function is called, which calculates the new location of the simulated bowing point. This gives the ability to construct a controller which adapts the input variables for the function every time step. In this way, the model simulates the response of the guitar to certain input variables.